comment { Coloring schemes developed by Kerry Mitchell. These are only for version 3 and will not work in version 2. Compilation updated 22 May 2021 Includes: Symmetric Icons Buddhabrot Basic 3 Smooth Tanh Symmetric Paired Dissection General Paired Dissection Guilloche Curve Find the Focal Point Two Count Mandelbrot/Julia Trap Buddhabrot 2 Super Mandelbrot Karakusa Ellipses Cardioid Boundary Orbits Scribble Generalized de Jong Dynamic Chaos Game Square Space-Filling Curves Connector Whirls Edit Distance Guilloche Spiral 4d Attractors } symmetric-icons { ; Kerry Mitchell 08Sep2002 ; ; Creates "icon" fractals like those in "Symmetry in Chaos" ; by Field and Golubitsky ; ; Works like a "flame" fractal: the image is represented by ; an array that is computed globally. The image may take ; several seconds to several minutes to come up, depending on ; the parameters. ; ; This version takes the center, magnification and angle ; coordinates from the Location layer, but does not support ; stretch or skew values. Use it as an inside coloring with ; the "pixel" formula in the "mt" folder. ; ; Updated 19 Sep 2002 to fix the way rotation is handled. ; $define debug global: int gi=0 int gipix=0 int gjpix=0 int gn=round(#width*#height*@samplefac) int hits[#width,#height] int np=@n*@p float p=0.0 float xold=0.0 float yold=0.0 float xnew=0.0 float ynew=0.0 float realznm1=0.0 float imagznm1=0.0 float realzn=0.0 float zzbar=0.0 float pnp=0.0 float fac=4/#magn float xmin=real(#center)-fac/2 float xmax=xmin+fac*(#width-1)/#width float rdx=(#width-1)/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac*(#width-1)/#width float rdy=(#height-1)/(ymax-ymin) zorbit=@zinitial worbit=(0,0) rot=cos(#angle)-flip(sin(#angle)) ; ; clear out array ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; let transients settle out ; gi=0 while(gi<@ntrans) gi=gi+1 xold=real(zorbit) yold=imag(zorbit) zzbar=|zorbit| realznm1=real(zorbit^(@n-1)) imagznm1=imag(zorbit^(@n-1)) realzn=real(zorbit^@n) p=@lambda+@alpha*zzbar+@beta*realzn pnp=cos(atan2(zorbit)*np) pnp=@delta*pnp*cabs(zorbit) xnew=p*xold+@gamma*realznm1+pnp*xold-@omega*yold ynew=p*yold-@gamma*imagznm1+pnp*yold+@omega*xold zorbit=xnew+flip(ynew) endwhile ; ; compute orbit ; gi=0 while(gixmin)&&(xnewymin)&&(ynew ; ; The basic algorithm works like this: Pick a point at ; random in the view window and iterate it using the ; standard Mandelbrot formula. If the orbit diverges, then ; re-iterate the point and color the image according to ; how often each pixel is visited by the divergent orbits. ; ; The algorithm has been modified to: ; vary the exponent (default = 2) ; use inside points, outside, or both ; pick random points either from the view window or from ; any arbitrary (non-rotated) rectangle ; scale the frequencies into colors in various ways ; ; Do not use this coloring when rendering images to disk. ; $define debug global: int gipix=0 int gjpix=0 int girp=0 int hits[#width,#height] int randseed=@seed int gn=round(@sampfac*#width*#height) float fac=4/#magn float xmin=real(#center)-fac/2 float xmax=xmin+fac*(#width-1)/#width float rdx=(#width-1)/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac*(#width-1)/#width float rdy=(#height-1)/(ymax-ymin) float xnew=0.0 float ynew=0.0 float xrpscale=0.0 float xrpmin=0.0 float yrpscale=0.0 float yrpmin=0.0 rot=cos(#angle)-flip(sin(#angle)) bool gdone=false bool ginside=false bool goutside=false bool gredo=false ; ; set parameters for random point selection ; if(@rptype==1) ; all space xrpscale=(imag(@xrp)-real(@xrp))/#randomrange xrpmin=real(@xrp) yrpscale=(imag(@yrp)-real(@yrp))/#randomrange yrpmin=real(@yrp) else ; zoom window xrpscale=(xmax-xmin)/#randomrange xrpmin=xmin yrpscale=(ymax-ymin)/#randomrange yrpmin=ymin endif ; ; clear out array ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; iterate random point ; girp=-1 while(girp@bailout) gdone=true goutside=true endif if(giter==@niter) gdone=true ginside=true endif endwhile if(@pointtype==2) ; both gredo=true elseif((@pointtype==1)&&(ginside==true)) ; inside gredo=true elseif((@pointtype==0)&&(goutside==true)) ; outside gredo=true endif ; ; reiterate point ; if(gredo==true) gz=0 giter=0 gdone=false while(gdone==false) giter=giter+1 gz=gz^@power+gc ; ; find pixel ; worbit=(gz-#center)*rot+#center xnew=real(worbit) ynew=imag(worbit) if((xnew>xmin)&&(xnewymin)&&(ynew@bailout)||(giter==@niter)) gdone=true endif endwhile endif endwhile init: int nin=0 loop: final: nin=hits[#x,#y] if((nin==0)&&(@solidbg==true)) #solid=true else if(@scaletype==1) ; logarithmic scaling #index=log(nin+1) elseif(@scaletype==2) ; hyperbolic tangent #index=tanh(nin/32) else ; linear #index=abs(nin)/100 endif endif default: title="Buddhabrot" render=false int param niter caption="# iterations" default=100 endparam param power caption="power" default=(2,0) endparam float param bailout caption="bailout" default=1000.0 endparam param pointtype caption="point type" default=0 enum="outside" "inside" "both" endparam float param sampfac caption="sampling factor" default=5.0 endparam param rptype caption="random point type" default=0 enum="taken from zoom" "specify range" endparam param xrp caption="x range min, max" default=(-4,4) hint="Real part is xmin, imaginary is xmax" visible=@rptype==1 endparam param yrp caption="y range min, max" default=(-3,3) hint="Real part is ymin, imaginary is ymax" visible=@rptype==1 endparam int param seed caption="random seed" default=2357 endparam param scaletype caption="scaling type" default=0 enum="linear" "logarithmic" "tanh" endparam param solidbg caption="solid background?" default=true endparam } basic-3 { ; Kerry Mitchell 09aug2003 ; ; The standard coloring parameters: ; polar angle, magnitude, real part, imaginary part ; for iteratin number and combinations of z, pixel ; and a user-specified constant. ; ; Replaces the "Basic" & "Basic Plus" coloring formulas ; ; Updated 09 August 2003 to UF3 syntax and functionality. ; init: complex var=(0.0,0.0) float t=0.0 loop: final: ; ; establish variable used for coloring ; if(@vartype==1) ; pixel var=#pixel elseif(@vartype==2) ; z+pixel var=#z+#pixel elseif(@vartype==3) ; z-pixel var=#z-#pixel elseif(@vartype==4) ; z*pixel var=#z*#pixel elseif(@vartype==5) ; z/pixel var=#z/#pixel elseif(@vartype==6) ; z+constant var=#z+@const elseif(@vartype==7) ; z-constant var=#z-@const elseif(@vartype==8) ; z*constant var=#z*@const elseif(@vartype==9) ; z/constant var=#z/@const else ; z var=#z endif ; ; pick coloring characteristic ; if(@colorby==1) ; polar angle t=atan2(var) t=t/#pi if(t<0.0) t=t+2.0 endif #index=0.5*t elseif(@colorby==2) ; magnitude #index=cabs(var) elseif(@colorby==3) ; real part #index=real(var) elseif(@colorby==4) ; imaginary part #index=imag(var) elseif(@colorby==5) ; f(angle) t=atan2(var) t=t/#pi if(t<0.0) t=t+2.0 endif #index=real(@fofvar(t)) elseif(@colorby==6) ; f(magnitude) #index=real(@fofvar(cabs(var))) elseif(@colorby==7) ; f(real part) #index=real(@fofvar(real(var))) elseif(@colorby==8) ; f(imaginary part) #index=real(@fofvar(imag(var))) elseif(@colorby==9) ; f(iteration) #index=real(@fofvar(#numiter)) else ; iteration #index=0.01*#numiter endif default: title="Basic 3" param vartype caption="variable" default=0 enum="z" "pixel"\ "z + pixel" "z - pixel" "z * pixel" "z / pixel"\ "z + constant" "z - constant" "z * constant" "z / constant" endparam complex param const caption="constant" default=(0,0) visible=(@vartype>5) endparam param colorby caption="color by" default=0 enum="iterations"\ "polar angle" "magnitude" "real part" "imag part"\ "f(angle)" "f(magnitude)" "f(real part)" "f(imag. part)"\ "f(iterations)" endparam func fofvar caption="modifying function" default=ident() visible=(@colorby>4) endfunc } smooth-tanh { ; Kerry Mitchell 18oct2003 ; ; This coloring method is based on Damien Jones' smooth ; coloring routine. It adds a hyperbolic tangent function ; (tanh) to make it so that large iteration numbers always ; correspond to an #index of 1, and some minimum iterations ; corresponds t0 an #index of 0. ; ; You typically want to use this with the "Repeat Gradient" ; boxed cleared, and a gradient that is not symmetric, like ; black at position 0 and white at position 399. ; ; Updated 14jan2009 to add logarithmic functionality. ; init: complex il=1/log(@power) ; reciprocal log (power) float lp=log(log(@bailout)) ; log(log bailout) final: if(#numiter<@minskip) #index=0 ; skip low iterations else lp=0.05*real(#numiter+il*lp-il*log(log(cabs(#z)))) if(@mode=="tanh") #index=tanh(@density*lp) ; apply tanh after smoothing elseif(@mode=="log") #index=@density*log(lp+1) ; apply log after smoothing elseif(@mode=="linear") #index=@density*lp endif endif default: title="Smooth Tanh" complex param power caption="Exponent" default=(2,0) hint="This should be set to match the exponent of the \ formula you are using. For Mandelbrot, this is 2." endparam float param bailout caption="Bail-out value" default=1000 min=1 hint="This should be set to match the bail-out value in \ the Formula tab. This formula works best with bail-out \ values higher than 100." endparam param mode caption="mode" default=0 enum="tanh" "log" "linear" hint="Clear 'Repeat Gradient' with tanh; set it with log" endparam float param density caption="Density" default=0.1 hint="Change this to vary how the function is applied \ to the gradient." endparam int param minskip caption="Iterations to skip" default=0 hint="Iterations less than this amount are colored with \ color 0 from the gradient." endparam } general-paired-dissection { ; Kerry Mitchell 25Apr2005 ; ; Creates fractal tessellations by breaking up quadrilaterals and triangles ; into more quadrilaterals and triangles. ; ; See the tutorial for more information: ; http://www.fractalus.com/kerry/tutorials/gpd/gpd-tutorial.html ; ; Updated 10Jun2012 to allow for drawing space-filling curves by ; connecting the "center" points of each region. The "center" is ; the weighted arithmetic mean of the 3 or 4 corner points. ; $define debug global: bool fromtriangle=false bool istoosmall=false complex zkpq[21] complex zkpt[21] complex zz[2,@nshape,4] int ilevel=0 int indexa=0 int indexb=0 int inew=0 int iold=0 int jnew=0 int jold=0 int kkp=0 int kpqia[21] int kpqib[21] int kptia[21] int kptib[21] int ksub=0 int n=0 int nmax=0 int nsubqm1=@nsubq-1 int nsubtm1=@nsubt-1 int ssqci[20,4] int sstci[20,4] int ssttype[20] int ssqtype[20] float kptf[21] float kpqf[21] float len=0.0 float r=0.0 float rmax=0.0 ; ; generator ; ; write key point parameters into arrays ; ; triangle ; kptia[1]=1 kptia[2]=2 kptia[3]=3 kptia[4]=@keyt4a kptia[5]=@keyt5a kptia[6]=@keyt6a kptia[7]=@keyt7a kptia[8]=@keyt8a kptia[9]=@keyt9a kptia[10]=@keyt10a kptia[11]=@keyt11a kptia[12]=@keyt12a kptia[13]=@keyt13a kptia[14]=@keyt14a kptia[15]=@keyt15a kptia[16]=@keyt16a kptia[17]=@keyt17a kptia[18]=@keyt18a kptia[19]=@keyt19a kptia[20]=@keyt20a kptib[1]=1 kptib[2]=2 kptib[3]=3 kptib[4]=@keyt4b kptib[5]=@keyt5b kptib[6]=@keyt6b kptib[7]=@keyt7b kptib[8]=@keyt8b kptib[9]=@keyt9b kptib[10]=@keyt10b kptib[11]=@keyt11b kptib[12]=@keyt12b kptib[13]=@keyt13b kptib[14]=@keyt14b kptib[15]=@keyt15b kptib[16]=@keyt16b kptib[17]=@keyt17b kptib[18]=@keyt18b kptib[19]=@keyt19b kptib[20]=@keyt20b kptf[1]=0 kptf[2]=0 kptf[3]=0 kptf[4]=@keyt4f kptf[5]=@keyt5f kptf[6]=@keyt6f kptf[7]=@keyt7f kptf[8]=@keyt8f kptf[9]=@keyt9f kptf[10]=@keyt10f kptf[11]=@keyt11f kptf[12]=@keyt12f kptf[13]=@keyt13f kptf[14]=@keyt14f kptf[15]=@keyt15f kptf[16]=@keyt16f kptf[17]=@keyt17f kptf[18]=@keyt18f kptf[19]=@keyt19f kptf[20]=@keyt20f ssttype[0]=@sst1type ssttype[1]=@sst2type ssttype[2]=@sst3type ssttype[3]=@sst4type ssttype[4]=@sst5type ssttype[5]=@sst6type ssttype[6]=@sst7type ssttype[7]=@sst8type ssttype[8]=@sst9type ssttype[9]=@sst10type ssttype[10]=@sst11type ssttype[11]=@sst12type ssttype[12]=@sst13type ssttype[13]=@sst14type ssttype[14]=@sst15type ssttype[15]=@sst16type ssttype[16]=@sst17type ssttype[17]=@sst18type ssttype[18]=@sst19type ssttype[19]=@sst20type ; ; quadrilateral ; kpqia[1]=1 kpqia[2]=2 kpqia[3]=3 kpqia[4]=4 kpqia[5]=@keyq5a kpqia[6]=@keyq6a kpqia[7]=@keyq7a kpqia[8]=@keyq8a kpqia[9]=@keyq9a kpqia[10]=@keyq10a kpqia[11]=@keyq11a kpqia[12]=@keyq12a kpqia[13]=@keyq13a kpqia[14]=@keyq14a kpqia[15]=@keyq15a kpqia[16]=@keyq16a kpqia[17]=@keyq17a kpqia[18]=@keyq18a kpqia[19]=@keyq19a kpqia[20]=@keyq20a kpqib[1]=1 kpqib[2]=2 kpqib[3]=3 kpqib[4]=4 kpqib[5]=@keyq5b kpqib[6]=@keyq6b kpqib[7]=@keyq7b kpqib[8]=@keyq8b kpqib[9]=@keyq9b kpqib[10]=@keyq10b kpqib[11]=@keyq11b kpqib[12]=@keyq12b kpqib[13]=@keyq13b kpqib[14]=@keyq14b kpqib[15]=@keyq15b kpqib[16]=@keyq16b kpqib[17]=@keyq17b kpqib[18]=@keyq18b kpqib[19]=@keyq19b kpqib[20]=@keyq20b kpqf[1]=0 kpqf[2]=0 kpqf[3]=0 kpqf[4]=0 kpqf[5]=@keyq5f kpqf[6]=@keyq6f kpqf[7]=@keyq7f kpqf[8]=@keyq8f kpqf[9]=@keyq9f kpqf[10]=@keyq10f kpqf[11]=@keyq11f kpqf[12]=@keyq12f kpqf[13]=@keyq13f kpqf[14]=@keyq14f kpqf[15]=@keyq15f kpqf[16]=@keyq16f kpqf[17]=@keyq17f kpqf[18]=@keyq18f kpqf[19]=@keyq19f kpqf[20]=@keyq20f ssqtype[0]=@ssq1type ssqtype[1]=@ssq2type ssqtype[2]=@ssq3type ssqtype[3]=@ssq4type ssqtype[4]=@ssq5type ssqtype[5]=@ssq6type ssqtype[6]=@ssq7type ssqtype[7]=@ssq8type ssqtype[8]=@ssq9type ssqtype[9]=@ssq10type ssqtype[10]=@ssq11type ssqtype[11]=@ssq12type ssqtype[12]=@ssq13type ssqtype[13]=@ssq14type ssqtype[14]=@ssq15type ssqtype[15]=@ssq16type ssqtype[16]=@ssq17type ssqtype[17]=@ssq18type ssqtype[18]=@ssq19type ssqtype[19]=@ssq20type ; ; write array of sub-shape corner point indices ; ; triangle ; sstci[0,0]=@sst1c1 sstci[0,1]=@sst1c2 sstci[0,2]=@sst1c3 sstci[0,3]=@sst1c4 sstci[1,0]=@sst2c1 sstci[1,1]=@sst2c2 sstci[1,2]=@sst2c3 sstci[1,3]=@sst2c4 sstci[2,0]=@sst3c1 sstci[2,1]=@sst3c2 sstci[2,2]=@sst3c3 sstci[2,3]=@sst3c4 sstci[3,0]=@sst4c1 sstci[3,1]=@sst4c2 sstci[3,2]=@sst4c3 sstci[3,3]=@sst4c4 sstci[4,0]=@sst5c1 sstci[4,1]=@sst5c2 sstci[4,2]=@sst5c3 sstci[4,3]=@sst5c4 sstci[5,0]=@sst6c1 sstci[5,1]=@sst6c2 sstci[5,2]=@sst6c3 sstci[5,3]=@sst6c4 sstci[6,0]=@sst7c1 sstci[6,1]=@sst7c2 sstci[6,2]=@sst7c3 sstci[6,3]=@sst7c4 sstci[7,0]=@sst8c1 sstci[7,1]=@sst8c2 sstci[7,2]=@sst8c3 sstci[7,3]=@sst8c4 sstci[8,0]=@sst9c1 sstci[8,1]=@sst9c2 sstci[8,2]=@sst9c3 sstci[8,3]=@sst9c4 sstci[9,0]=@sst10c1 sstci[9,1]=@sst10c2 sstci[9,2]=@sst10c3 sstci[9,3]=@sst10c4 sstci[10,0]=@sst11c1 sstci[10,1]=@sst11c2 sstci[10,2]=@sst11c3 sstci[10,3]=@sst11c4 sstci[11,0]=@sst12c1 sstci[11,1]=@sst12c2 sstci[11,2]=@sst12c3 sstci[11,3]=@sst12c4 sstci[12,0]=@sst13c1 sstci[12,1]=@sst13c2 sstci[12,2]=@sst13c3 sstci[12,3]=@sst13c4 sstci[13,0]=@sst14c1 sstci[13,1]=@sst14c2 sstci[13,2]=@sst14c3 sstci[13,3]=@sst14c4 sstci[14,0]=@sst15c1 sstci[14,1]=@sst15c2 sstci[14,2]=@sst15c3 sstci[14,3]=@sst15c4 sstci[15,0]=@sst16c1 sstci[15,1]=@sst16c2 sstci[15,2]=@sst16c3 sstci[15,3]=@sst16c4 sstci[16,0]=@sst17c1 sstci[16,1]=@sst17c2 sstci[16,2]=@sst17c3 sstci[16,3]=@sst17c4 sstci[17,0]=@sst18c1 sstci[17,1]=@sst18c2 sstci[17,2]=@sst18c3 sstci[17,3]=@sst18c4 sstci[18,0]=@sst19c1 sstci[18,1]=@sst19c2 sstci[18,2]=@sst19c3 sstci[18,3]=@sst19c4 sstci[19,0]=@sst20c1 sstci[19,1]=@sst20c2 sstci[19,2]=@sst20c3 sstci[19,3]=@sst20c4 ; ; quadrilateral ; ssqci[0,0]=@ssq1c1 ssqci[0,1]=@ssq1c2 ssqci[0,2]=@ssq1c3 ssqci[0,3]=@ssq1c4 ssqci[1,0]=@ssq2c1 ssqci[1,1]=@ssq2c2 ssqci[1,2]=@ssq2c3 ssqci[1,3]=@ssq2c4 ssqci[2,0]=@ssq3c1 ssqci[2,1]=@ssq3c2 ssqci[2,2]=@ssq3c3 ssqci[2,3]=@ssq3c4 ssqci[3,0]=@ssq4c1 ssqci[3,1]=@ssq4c2 ssqci[3,2]=@ssq4c3 ssqci[3,3]=@ssq4c4 ssqci[4,0]=@ssq5c1 ssqci[4,1]=@ssq5c2 ssqci[4,2]=@ssq5c3 ssqci[4,3]=@ssq5c4 ssqci[5,0]=@ssq6c1 ssqci[5,1]=@ssq6c2 ssqci[5,2]=@ssq6c3 ssqci[5,3]=@ssq6c4 ssqci[6,0]=@ssq7c1 ssqci[6,1]=@ssq7c2 ssqci[6,2]=@ssq7c3 ssqci[6,3]=@ssq7c4 ssqci[7,0]=@ssq8c1 ssqci[7,1]=@ssq8c2 ssqci[7,2]=@ssq8c3 ssqci[7,3]=@ssq8c4 ssqci[8,0]=@ssq9c1 ssqci[8,1]=@ssq9c2 ssqci[8,2]=@ssq9c3 ssqci[8,3]=@ssq9c4 ssqci[9,0]=@ssq10c1 ssqci[9,1]=@ssq10c2 ssqci[9,2]=@ssq10c3 ssqci[9,3]=@ssq10c4 ssqci[10,0]=@ssq11c1 ssqci[10,1]=@ssq11c2 ssqci[10,2]=@ssq11c3 ssqci[10,3]=@ssq11c4 ssqci[11,0]=@ssq12c1 ssqci[11,1]=@ssq12c2 ssqci[11,2]=@ssq12c3 ssqci[11,3]=@ssq12c4 ssqci[12,0]=@ssq13c1 ssqci[12,1]=@ssq13c2 ssqci[12,2]=@ssq13c3 ssqci[12,3]=@ssq13c4 ssqci[13,0]=@ssq14c1 ssqci[13,1]=@ssq14c2 ssqci[13,2]=@ssq14c3 ssqci[13,3]=@ssq14c4 ssqci[14,0]=@ssq15c1 ssqci[14,1]=@ssq15c2 ssqci[14,2]=@ssq15c3 ssqci[14,3]=@ssq15c4 ssqci[15,0]=@ssq16c1 ssqci[15,1]=@ssq16c2 ssqci[15,2]=@ssq16c3 ssqci[15,3]=@ssq16c4 ssqci[16,0]=@ssq17c1 ssqci[16,1]=@ssq17c2 ssqci[16,2]=@ssq17c3 ssqci[16,3]=@ssq17c4 ssqci[17,0]=@ssq18c1 ssqci[17,1]=@ssq18c2 ssqci[17,2]=@ssq18c3 ssqci[17,3]=@ssq18c4 ssqci[18,0]=@ssq19c1 ssqci[18,1]=@ssq19c2 ssqci[18,2]=@ssq19c3 ssqci[18,3]=@ssq19c4 ssqci[19,0]=@ssq20c1 ssqci[19,1]=@ssq20c2 ssqci[19,2]=@ssq20c3 ssqci[19,3]=@ssq20c4 ; ; initial shape ; iold=0 inew=1 n=0 if(@dissecttype<2) ; triangle axiom zz[inew,n,0]=@taxc1 zz[inew,n,1]=@taxc2 zz[inew,n,2]=@taxc3 zz[inew,n,3]=(9999,9999) else ; quadrilateral axiom zz[inew,n,0]=@qaxc1 zz[inew,n,1]=@qaxc2 zz[inew,n,2]=@qaxc3 zz[inew,n,3]=@qaxc4 endif ; ; iterate ; ilevel=0 while(ilevel<@nlevel) ilevel=ilevel+1 iold=1-iold inew=1-inew jnew=-1 jold=-1 while(jold999) ; from triangle fromtriangle=true zkpt[1]=zz[iold,jold,0] zkpt[2]=zz[iold,jold,1] zkpt[3]=zz[iold,jold,2] zkpt[0]=(zkpt[1]+zkpt[2]+zkpt[3])/3 kkp=3 while(kkp<@nkeyt) kkp=kkp+1 indexa=kptia[kkp] indexb=kptib[kkp] zkpt[kkp]=kptf[kkp]*(zkpt[indexb]-zkpt[indexa])\ +zkpt[indexa] endwhile else ; from quadrilateral fromtriangle=false zkpq[1]=zz[iold,jold,0] zkpq[2]=zz[iold,jold,1] zkpq[3]=zz[iold,jold,2] zkpq[4]=zz[iold,jold,3] zkpq[0]=(zkpq[1]+zkpq[2]+zkpq[3]+zkpq[4])/4 kkp=4 while(kkp<@nkeyq) kkp=kkp+1 indexa=kpqia[kkp] indexb=kpqib[kkp] zkpq[kkp]=kpqf[kkp]*(zkpq[indexb]-zkpq[indexa])\ +zkpq[indexa] endwhile endif ; ; check size for "too small" ; istoosmall=false r=cabs(zz[iold,jold,0]-zz[iold,jold,1]) if(r<@toosmall) istoosmall=true endif r=cabs(zz[iold,jold,1]-zz[iold,jold,2]) if(r<@toosmall) istoosmall=true endif if(fromtriangle) r=cabs(zz[iold,jold,2]-zz[iold,jold,0]) if(r<@toosmall) istoosmall=true endif else r=cabs(zz[iold,jold,2]-zz[iold,jold,3]) if(r<@toosmall) istoosmall=true endif r=cabs(zz[iold,jold,3]-zz[iold,jold,0]) if(r<@toosmall) istoosmall=true endif endif if(istoosmall==false) ; ; if big enough, generate new sub shapes ; if(fromtriangle==true) ; triangle dissection ksub=-1 while(ksubnmax) nmax=n endif endwhile ; close iteration level loop ; ; if the curve is drawn, determine the center as the weighted ; mean of the corner points and write to 0th element ; if((@colorby=="curve outline")||(@colorby=="curve number")) jnew=-1 while(jnew999) zz[inew,jnew,0]=(@weight0*zz[inew,jnew,0]+@weight1*zz[inew,jnew,1]+\ @weight2*zz[inew,jnew,2])/(@weight0+@weight1+@weight2) else zz[inew,jnew,0]=(@weight0*zz[inew,jnew,0]+@weight1*zz[inew,jnew,1]+\ @weight2*zz[inew,jnew,2]+@weight3*zz[inew,jnew,3])/\ (@weight0+@weight1+@weight2+@weight3) endif endwhile endif ; ; print diagnostics ; if(@printn) nmax=nmax+1 print("Set memory >= ",nmax) endif if(@printmin) jnew=-1 rmax=1e20 while(jnew<(n-1)) jnew=jnew+1 len=cabs(zz[inew,jnew,0]-zz[inew,jnew,1]) if(len ",rmax) endif init: complex tl=(0,0) float x=0 float x1=0 float x2=0 float xnode=0 float y=0 float y1=0 float y2=0 float rl=0 float rmin=1e20 int jin=0 int jpoint=0 int k1=0 int k2=0 int kmax=0 int kmaxin=0 int leftnode=0 int rightnode=0 loop: final: ; ; curve outline or curve number ; if((@colorby=="curve outline")||(@colorby=="curve number")) jpoint=0 while(jpoint0)) tl=(#pixel-z1)/(z2-z1) x=real(tl) y=imag(tl) if(x<0) rl=sqr(x)+sqr(y) elseif(x>1) rl=sqr(x-1)+sqr(y) else rl=sqr(y) endif rl=sqrt(rl)*cabs(z2-z1) if(rl1) rl=sqr(x-1)+sqr(y) else rl=sqr(y) endif rl=sqrt(rl)*cabs(z2-z1) if(rl@thick) #solid=true else if(@colorby=="curve outline") #index=rmin/@thick elseif(@colorby=="curve number") #index=abs(jin)/abs(n) endif endif else ; ; march through all the shapes ; jpoint=-1 jin=-1 while(jpoint999) kmax=2 endif leftnode=0 rightnode=0 ; ; march through all the sides of the shape ; k1=-1 while(k10)) ; ; color by outlining shapes ; if(@colorby=="outline") ; ; find complex parameter for pixel wrt line ; tl=(#pixel-z1)/(z2-z1) x=real(tl) y=imag(tl) if(x<0.0) rl=sqr(x)+sqr(y) elseif(x>1.0) rl=sqr(x-1.0)+sqr(y) else rl=sqr(y) endif rl=sqrt(rl)*cabs(z2-z1) if(rl0) ; ; does side have a node? ; x1=real(z1) y1=imag(z1) x2=real(z2) y2=imag(z2) x=real(#pixel) y=imag(#pixel) if(((y>=y1)&&(y=y2)&&(y0) if(((leftnode%2)==1)&&((rightnode%2)==1)) jin=jpoint kmaxin=kmax endif endif endwhile ; shape loop ; ; perform coloring ; if(@colorby=="outline") if(rmin>@thick) #solid=true else #index=rmin/@thick endif elseif(@colorby=="shape number") if(jin<0) #solid=true else #index=jin/n endif elseif(@colorby=="shape size") if(jin<0) #solid=true else #index=cabs(zz[inew,jin,0]-zz[inew,jin,kmax]) endif elseif(@colorby=="shape type") if(jin<0) #solid=true else #index=kmaxin-2 endif endif endif default: title="General Paired Dissection" ; ; general parameters ; heading caption="General parameters" endheading int param nlevel caption="# of levels" default=4 min=0 endparam float param toosmall caption="minimum size" default=0 min=0 endparam bool param printmin caption="print smallest" default=false endparam int param nshape caption="how much memory" default=1000 min=1 endparam bool param printn caption="print memory" default=false endparam float param speedup caption="speedup threshold" default=1 min=0 hint="Larger is slower but more accurate, smaller is \ faster but less accurate." endparam bool param printlen caption="print speedup" default=false endparam param colorby caption="color by" default=0 enum="outline" "shape number" "shape size" "shape type" "curve outline" "curve number" endparam float param thick caption="line thickness" default=0.01 visible=((@colorby=="outline")||(@colorby=="curve outline")||(@colorby=="curve number")) min=0 endparam complex param weight0 caption="curve weight 1" default=1 visible=((@colorby=="curve outline")||(@colorby=="curve number")) endparam complex param weight1 caption="curve weight 2" default=1 visible=((@colorby=="curve outline")||(@colorby=="curve number")) endparam complex param weight2 caption="curve weight 3" default=1 visible=((@colorby=="curve outline")||(@colorby=="curve number")) endparam complex param weight3 caption="curve weight 4" default=1 visible=((@colorby=="curve outline")||(@colorby=="curve number")) endparam bool param close_loop caption="close loop" default=false visible=((@colorby=="curve outline")||(@colorby=="curve number")) endparam ; ; axiom parameters ; heading caption="Axiom parameters" endheading param dissecttype caption="dissection type" default=3 enum="triangle -> triangle" "triangle -> both"\ "quad -> quad" "quad -> both" endparam ; ; triangle axiom ; heading caption=" Triangle axiom" visible=(@dissecttype!=2) endheading complex param taxc1 caption="corner 1" default=(0,0) visible=(@dissecttype!=2) endparam complex param taxc2 caption="corner 2" default=(2,0) visible=(@dissecttype!=2) endparam complex param taxc3 caption="corner 3" default=(0,2) visible=(@dissecttype!=2) endparam complex param taxc4 caption="corner 4" default=(9999,9999) visible=(0==1) endparam ; ; quadrilateral axiom ; heading caption=" Quadrilateral axiom" visible=(@dissecttype!=0) endheading complex param qaxc1 caption="corner 1" default=(0,0) visible=(@dissecttype!=0) endparam complex param qaxc2 caption="corner 2" default=(2,0) visible=(@dissecttype!=0) endparam complex param qaxc3 caption="corner 3" default=(2,2) visible=(@dissecttype!=0) endparam complex param qaxc4 caption="corner 4" default=(0,2) visible=(@dissecttype!=0) endparam ; ; generator parameters ; heading caption="Generator parameters" endheading ; ; triangle generator ; heading caption=" Triangle generator" visible=(@dissecttype!=2) endheading int param nkeyt caption="# key points" default=6 min=3 max=20 visible=(@dissecttype!=2) endparam int param nsubt caption="# sub shapes" default=3 min=2 max=20 visible=(@dissecttype!=2) endparam ; ; triangle key point 4 ; heading caption="key point 4" visible=((@dissecttype!=2)&&(@nkeyt>3)) endheading int param keyt4a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>3)) endparam int param keyt4b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>3)) endparam float param keyt4f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>3)) endparam ; ; triangle key point 5 ; heading caption="key point 5" visible=((@dissecttype!=2)&&(@nkeyt>4)) endheading int param keyt5a caption="beginning endpoint" default=2 visible=((@dissecttype!=2)&&(@nkeyt>4)) endparam int param keyt5b caption="ending point" default=3 visible=((@dissecttype!=2)&&(@nkeyt>4)) endparam float param keyt5f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>4)) endparam ; ; triangle key point 6 ; heading caption="key point 6" visible=((@dissecttype!=2)&&(@nkeyt>5)) endheading int param keyt6a caption="beginning endpoint" default=3 visible=((@dissecttype!=2)&&(@nkeyt>5)) endparam int param keyt6b caption="ending point" default=1 visible=((@dissecttype!=2)&&(@nkeyt>5)) endparam float param keyt6f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>5)) endparam ; ; triangle key point 7 ; heading caption="key point 7" visible=((@dissecttype!=2)&&(@nkeyt>6)) endheading int param keyt7a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>6)) endparam int param keyt7b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>6)) endparam float param keyt7f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>6)) endparam ; ; triangle key point 8 ; heading caption="key point 8" visible=((@dissecttype!=2)&&(@nkeyt>7)) endheading int param keyt8a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>7)) endparam int param keyt8b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>7)) endparam float param keyt8f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>7)) endparam ; ; triangle key point 9 ; heading caption="key point 9" visible=((@dissecttype!=2)&&(@nkeyt>8)) endheading int param keyt9a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>8)) endparam int param keyt9b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>8)) endparam float param keyt9f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>8)) endparam ; ; triangle key point 10 ; heading caption="key point 10" visible=((@dissecttype!=2)&&(@nkeyt>9)) endheading int param keyt10a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>9)) endparam int param keyt10b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>9)) endparam float param keyt10f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>9)) endparam ; ; triangle key point 11 ; heading caption="key point 11" visible=((@dissecttype!=2)&&(@nkeyt>10)) endheading int param keyt11a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>10)) endparam int param keyt11b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>10)) endparam float param keyt11f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>10)) endparam ; ; triangle key point 12 ; heading caption="key point 12" visible=((@dissecttype!=2)&&(@nkeyt>11)) endheading int param keyt12a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>11)) endparam int param keyt12b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>11)) endparam float param keyt12f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>11)) endparam ; ; triangle key point 13 ; heading caption="key point 13" visible=((@dissecttype!=2)&&(@nkeyt>12)) endheading int param keyt13a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>12)) endparam int param keyt13b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>12)) endparam float param keyt13f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>12)) endparam ; ; triangle key point 14 ; heading caption="key point 14" visible=((@dissecttype!=2)&&(@nkeyt>13)) endheading int param keyt14a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>13)) endparam int param keyt14b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>13)) endparam float param keyt14f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>13)) endparam ; ; triangle key point 15 ; heading caption="key point 15" visible=((@dissecttype!=2)&&(@nkeyt>14)) endheading int param keyt15a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>14)) endparam int param keyt15b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>14)) endparam float param keyt15f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>14)) endparam ; ; triangle key point 16 ; heading caption="key point 16" visible=((@dissecttype!=2)&&(@nkeyt>15)) endheading int param keyt16a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>15)) endparam int param keyt16b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>15)) endparam float param keyt16f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>15)) endparam ; ; triangle key point 17 ; heading caption="key point 17" visible=((@dissecttype!=2)&&(@nkeyt>16)) endheading int param keyt17a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>16)) endparam int param keyt17b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>16)) endparam float param keyt17f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>16)) endparam ; ; triangle key point 18 ; heading caption="key point 18" visible=((@dissecttype!=2)&&(@nkeyt>17)) endheading int param keyt18a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>17)) endparam int param keyt18b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>17)) endparam float param keyt18f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>17)) endparam ; ; triangle key point 19 ; heading caption="key point 19" visible=((@dissecttype!=2)&&(@nkeyt>18)) endheading int param keyt19a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>18)) endparam int param keyt19b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>18)) endparam float param keyt19f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>18)) endparam ; ; triangle key point 20 ; heading caption="key point 20" visible=((@dissecttype!=2)&&(@nkeyt>19)) endheading int param keyt20a caption="beginning endpoint" default=1 visible=((@dissecttype!=2)&&(@nkeyt>19)) endparam int param keyt20b caption="ending point" default=2 visible=((@dissecttype!=2)&&(@nkeyt>19)) endparam float param keyt20f caption="fraction along" default=0.5 visible=((@dissecttype!=2)&&(@nkeyt>19)) endparam ; ; triangle sub-shape 1 ; heading caption="sub-shape 1" visible=(@dissecttype!=2) endheading param sst1type caption="type" default=1 enum="triangle" "quadrilateral" visible=(@dissecttype!=2) endparam int param sst1c1 caption="corner 1 index" default=1 min=0 visible=(@dissecttype!=2) endparam int param sst1c2 caption="corner 2 index" default=4 min=0 visible=(@dissecttype!=2) endparam int param sst1c3 caption="corner 3 index" default=5 min=0 visible=(@dissecttype!=2) endparam int param sst1c4 caption="corner 4 index" default=6 min=0 visible=((@dissecttype!=2)&&(@sst1type=="quadrilateral")) endparam ; ; triangle sub-shape 2 ; heading caption="sub-shape 2" visible=(@dissecttype!=2) endheading param sst2type caption="type" default=0 enum="triangle" "quadrilateral" visible=(@dissecttype!=2) endparam int param sst2c1 caption="corner 1 index" default=4 min=0 visible=(@dissecttype!=2) endparam int param sst2c2 caption="corner 2 index" default=2 min=0 visible=(@dissecttype!=2) endparam int param sst2c3 caption="corner 3 index" default=5 min=0 visible=(@dissecttype!=2) endparam int param sst2c4 caption="corner 4 index" default=0 min=0 visible=((@dissecttype!=2)&&(@sst2type=="quadrilateral")) endparam ; ; triangle sub-shape 3 ; heading caption="sub-shape 3" visible=((@dissecttype!=2)&&(@nsubt>2)) endheading param sst3type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>2)) endparam int param sst3c1 caption="corner 1 index" default=6 min=0 visible=((@dissecttype!=2)&&(@nsubt>2)) endparam int param sst3c2 caption="corner 2 index" default=5 min=0 visible=((@dissecttype!=2)&&(@nsubt>2)) endparam int param sst3c3 caption="corner 3 index" default=3 min=0 visible=((@dissecttype!=2)&&(@nsubt>2)) endparam int param sst3c4 caption="corner 4 index" default=0 min=0 visible=((@dissecttype!=2)&&(@sst3type=="quadrilateral")\ &&(@nsubt>2)) endparam ; ; triangle sub-shape 4 ; heading caption="sub-shape 4" visible=((@dissecttype!=2)&&(@nsubt>3)) endheading param sst4type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>3)) endparam int param sst4c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>3)) endparam int param sst4c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>3)) endparam int param sst4c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>3)) endparam int param sst4c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst4type=="quadrilateral")\ &&(@nsubt>3)) endparam ; ; triangle sub-shape 5 ; heading caption="sub-shape 5" visible=((@dissecttype!=2)&&(@nsubt>4)) endheading param sst5type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>4)) endparam int param sst5c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>4)) endparam int param sst5c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>4)) endparam int param sst5c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>4)) endparam int param sst5c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst5type=="quadrilateral")\ &&(@nsubt>4)) endparam ; ; triangle sub-shape 6 ; heading caption="sub-shape 6" visible=((@dissecttype!=2)&&(@nsubt>5)) endheading param sst6type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>5)) endparam int param sst6c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>5)) endparam int param sst6c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>5)) endparam int param sst6c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>5)) endparam int param sst6c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst6type=="quadrilateral")\ &&(@nsubt>5)) endparam ; ; triangle sub-shape 7 ; heading caption="sub-shape 7" visible=((@dissecttype!=2)&&(@nsubt>6)) endheading param sst7type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>6)) endparam int param sst7c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>6)) endparam int param sst7c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>6)) endparam int param sst7c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>6)) endparam int param sst7c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst7type=="quadrilateral")\ &&(@nsubt>6)) endparam ; ; triangle sub-shape 8 ; heading caption="sub-shape 8" visible=((@dissecttype!=2)&&(@nsubt>7)) endheading param sst8type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>7)) endparam int param sst8c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>7)) endparam int param sst8c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>7)) endparam int param sst8c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>7)) endparam int param sst8c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst8type=="quadrilateral")\ &&(@nsubt>7)) endparam ; ; triangle sub-shape 9 ; heading caption="sub-shape 9" visible=((@dissecttype!=2)&&(@nsubt>8)) endheading param sst9type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>8)) endparam int param sst9c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>8)) endparam int param sst9c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>8)) endparam int param sst9c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>8)) endparam int param sst9c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst9type=="quadrilateral")\ &&(@nsubt>8)) endparam ; ; triangle sub-shape 10 ; heading caption="sub-shape 10" visible=((@dissecttype!=2)&&(@nsubt>9)) endheading param sst10type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>9)) endparam int param sst10c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>9)) endparam int param sst10c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>9)) endparam int param sst10c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>9)) endparam int param sst10c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst10type=="quadrilateral")\ &&(@nsubt>9)) endparam ; ; triangle sub-shape 11 ; heading caption="sub-shape 11" visible=((@dissecttype!=2)&&(@nsubt>10)) endheading param sst11type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>10)) endparam int param sst11c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>10)) endparam int param sst11c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>10)) endparam int param sst11c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>10)) endparam int param sst11c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst11type=="quadrilateral")\ &&(@nsubt>10)) endparam ; ; triangle sub-shape 12 ; heading caption="sub-shape 12" visible=((@dissecttype!=2)&&(@nsubt>11)) endheading param sst12type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>11)) endparam int param sst12c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>11)) endparam int param sst12c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>11)) endparam int param sst12c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>11)) endparam int param sst12c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst12type=="quadrilateral")\ &&(@nsubt>11)) endparam ; ; triangle sub-shape 13 ; heading caption="sub-shape 13" visible=((@dissecttype!=2)&&(@nsubt>12)) endheading param sst13type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>12)) endparam int param sst13c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>12)) endparam int param sst13c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>12)) endparam int param sst13c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>12)) endparam int param sst13c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst13type=="quadrilateral")\ &&(@nsubt>12)) endparam ; ; triangle sub-shape 14 ; heading caption="sub-shape 14" visible=((@dissecttype!=2)&&(@nsubt>13)) endheading param sst14type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>13)) endparam int param sst14c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>13)) endparam int param sst14c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>13)) endparam int param sst14c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>13)) endparam int param sst14c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst14type=="quadrilateral")\ &&(@nsubt>13)) endparam ; ; triangle sub-shape 15 ; heading caption="sub-shape 15" visible=((@dissecttype!=2)&&(@nsubt>14)) endheading param sst15type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>14)) endparam int param sst15c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>14)) endparam int param sst15c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>14)) endparam int param sst15c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>14)) endparam int param sst15c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst15type=="quadrilateral")\ &&(@nsubt>14)) endparam ; ; triangle sub-shape 16 ; heading caption="sub-shape 16" visible=((@dissecttype!=2)&&(@nsubt>15)) endheading param sst16type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>15)) endparam int param sst16c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>15)) endparam int param sst16c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>15)) endparam int param sst16c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>15)) endparam int param sst16c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst16type=="quadrilateral")\ &&(@nsubt>15)) endparam ; ; triangle sub-shape 17 ; heading caption="sub-shape 17" visible=((@dissecttype!=2)&&(@nsubt>16)) endheading param sst17type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>16)) endparam int param sst17c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>16)) endparam int param sst17c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>16)) endparam int param sst17c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>16)) endparam int param sst17c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst17type=="quadrilateral")\ &&(@nsubt>16)) endparam ; ; triangle sub-shape 18 ; heading caption="sub-shape 18" visible=((@dissecttype!=2)&&(@nsubt>17)) endheading param sst18type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>17)) endparam int param sst18c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>17)) endparam int param sst18c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>17)) endparam int param sst18c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>17)) endparam int param sst18c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst18type=="quadrilateral")\ &&(@nsubt>17)) endparam ; ; triangle sub-shape 19 ; heading caption="sub-shape 19" visible=((@dissecttype!=2)&&(@nsubt>18)) endheading param sst19type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>18)) endparam int param sst19c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>18)) endparam int param sst19c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>18)) endparam int param sst19c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>18)) endparam int param sst19c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst19type=="quadrilateral")\ &&(@nsubt>18)) endparam ; ; triangle sub-shape 20 ; heading caption="sub-shape 20" visible=((@dissecttype!=2)&&(@nsubt>19)) endheading param sst20type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=2)&&(@nsubt>19)) endparam int param sst20c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>19)) endparam int param sst20c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>19)) endparam int param sst20c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=2)&&(@nsubt>19)) endparam int param sst20c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=2)&&(@sst20type=="quadrilateral")\ &&(@nsubt>19)) endparam ; ; quadrilateral generator ; heading caption=" Quadrilateral generator" visible=(@dissecttype!=0) endheading int param nkeyq caption="# key points" default=4 min=4 max=20 visible=(@dissecttype!=0) endparam int param nsubq caption="# sub shapes" default=2 min=2 max=20 visible=(@dissecttype!=0) endparam ; ; quadrilateral key point 5 ; heading caption="key point 5" visible=((@dissecttype!=0)&&(@nkeyq>4)) endheading int param keyq5a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>4)) endparam int param keyq5b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>4)) endparam float param keyq5f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>4)) endparam ; ; quadrilateral key point 6 ; heading caption="key point 6" visible=((@dissecttype!=0)&&(@nkeyq>5)) endheading int param keyq6a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>5)) endparam int param keyq6b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>5)) endparam float param keyq6f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>5)) endparam ; ; quadrilateral key point 7 ; heading caption="key point 7" visible=((@dissecttype!=0)&&(@nkeyq>6)) endheading int param keyq7a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>6)) endparam int param keyq7b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>6)) endparam float param keyq7f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>6)) endparam ; ; quadrilateral key point 8 ; heading caption="key point 8" visible=((@dissecttype!=0)&&(@nkeyq>7)) endheading int param keyq8a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>7)) endparam int param keyq8b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>7)) endparam float param keyq8f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>7)) endparam ; ; quadrilateral key point 9 ; heading caption="key point 9" visible=((@dissecttype!=0)&&(@nkeyq>8)) endheading int param keyq9a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>8)) endparam int param keyq9b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>8)) endparam float param keyq9f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>8)) endparam ; ; quadrilateral key point 10 ; heading caption="key point 10" visible=((@dissecttype!=0)&&(@nkeyq>9)) endheading int param keyq10a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>9)) endparam int param keyq10b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>9)) endparam float param keyq10f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>9)) endparam ; ; quadrilateral key point 11 ; heading caption="key point 11" visible=((@dissecttype!=0)&&(@nkeyq>10)) endheading int param keyq11a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>10)) endparam int param keyq11b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>10)) endparam float param keyq11f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>10)) endparam ; ; quadrilateral key point 12 ; heading caption="key point 12" visible=((@dissecttype!=0)&&(@nkeyq>11)) endheading int param keyq12a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>11)) endparam int param keyq12b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>11)) endparam float param keyq12f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>11)) endparam ; ; quadrilateral key point 13 ; heading caption="key point 13" visible=((@dissecttype!=0)&&(@nkeyq>12)) endheading int param keyq13a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>12)) endparam int param keyq13b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>12)) endparam float param keyq13f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>12)) endparam ; ; quadrilateral key point 14 ; heading caption="key point 14" visible=((@dissecttype!=0)&&(@nkeyq>13)) endheading int param keyq14a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>13)) endparam int param keyq14b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>13)) endparam float param keyq14f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>13)) endparam ; ; quadrilateral key point 15 ; heading caption="key point 15" visible=((@dissecttype!=0)&&(@nkeyq>14)) endheading int param keyq15a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>14)) endparam int param keyq15b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>14)) endparam float param keyq15f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>14)) endparam ; ; quadrilateral key point 16 ; heading caption="key point 16" visible=((@dissecttype!=0)&&(@nkeyq>15)) endheading int param keyq16a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>15)) endparam int param keyq16b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>15)) endparam float param keyq16f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>15)) endparam ; ; quadrilateral key point 17 ; heading caption="key point 17" visible=((@dissecttype!=0)&&(@nkeyq>16)) endheading int param keyq17a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>16)) endparam int param keyq17b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>16)) endparam float param keyq17f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>16)) endparam ; ; quadrilateral key point 18 ; heading caption="key point 18" visible=((@dissecttype!=0)&&(@nkeyq>17)) endheading int param keyq18a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>17)) endparam int param keyq18b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>17)) endparam float param keyq18f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>17)) endparam ; ; quadrilateral key point 19 ; heading caption="key point 19" visible=((@dissecttype!=0)&&(@nkeyq>18)) endheading int param keyq19a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>18)) endparam int param keyq19b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>18)) endparam float param keyq19f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>18)) endparam ; ; quadrilateral key point 20 ; heading caption="key point 20" visible=((@dissecttype!=0)&&(@nkeyq>19)) endheading int param keyq20a caption="beginning endpoint" default=1 visible=((@dissecttype!=0)&&(@nkeyq>19)) endparam int param keyq20b caption="ending point" default=2 visible=((@dissecttype!=0)&&(@nkeyq>19)) endparam float param keyq20f caption="fraction along" default=0.5 visible=((@dissecttype!=0)&&(@nkeyq>19)) endparam ; ; quadrilateral sub-shape 1 ; heading caption="sub-shape 1" visible=(@dissecttype!=0) endheading param ssq1type caption="type" default=0 enum="triangle" "quadrilateral" visible=(@dissecttype!=0) endparam int param ssq1c1 caption="corner 1 index" default=1 min=0 visible=(@dissecttype!=0) endparam int param ssq1c2 caption="corner 2 index" default=2 min=0 visible=(@dissecttype!=0) endparam int param ssq1c3 caption="corner 3 index" default=4 min=0 visible=(@dissecttype!=0) endparam int param ssq1c4 caption="corner 4 index" default=0 min=0 visible=((@dissecttype!=0)&&(@ssq1type=="quadrilateral")) endparam ; ; quadrilateral sub-shape 2 ; heading caption="sub-shape 2" visible=(@dissecttype!=0) endheading param ssq2type caption="type" default=0 enum="triangle" "quadrilateral" visible=(@dissecttype!=0) endparam int param ssq2c1 caption="corner 1 index" default=3 min=0 visible=(@dissecttype!=0) endparam int param ssq2c2 caption="corner 2 index" default=4 min=0 visible=(@dissecttype!=0) endparam int param ssq2c3 caption="corner 3 index" default=2 min=0 visible=(@dissecttype!=0) endparam int param ssq2c4 caption="corner 4 index" default=0 min=0 visible=((@dissecttype!=0)&&(@ssq2type=="quadrilateral")) endparam ; ; quadrilateral sub-shape 3 ; heading caption="sub-shape 3" visible=((@dissecttype!=0)&&(@nsubq>2)) endheading param ssq3type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>2)) endparam int param ssq3c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>2)) endparam int param ssq3c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>2)) endparam int param ssq3c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>2)) endparam int param ssq3c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq3type=="quadrilateral")\ &&(@nsubq>2)) endparam ; ; quadrilateral sub-shape 4 ; heading caption="sub-shape 4" visible=((@dissecttype!=0)&&(@nsubq>3)) endheading param ssq4type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>3)) endparam int param ssq4c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>3)) endparam int param ssq4c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>3)) endparam int param ssq4c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>3)) endparam int param ssq4c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq4type=="quadrilateral")\ &&(@nsubq>3)) endparam ; ; quadrilateral sub-shape 5 ; heading caption="sub-shape 5" visible=((@dissecttype!=0)&&(@nsubq>4)) endheading param ssq5type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>4)) endparam int param ssq5c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>4)) endparam int param ssq5c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>4)) endparam int param ssq5c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>4)) endparam int param ssq5c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq5type=="quadrilateral")\ &&(@nsubq>4)) endparam ; ; quadrilateral sub-shape 6 ; heading caption="sub-shape 6" visible=((@dissecttype!=0)&&(@nsubq>5)) endheading param ssq6type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>5)) endparam int param ssq6c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>5)) endparam int param ssq6c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>5)) endparam int param ssq6c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>5)) endparam int param ssq6c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq6type=="quadrilateral")\ &&(@nsubq>5)) endparam ; ; quadrilateral sub-shape 7 ; heading caption="sub-shape 7" visible=((@dissecttype!=0)&&(@nsubq>6)) endheading param ssq7type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>6)) endparam int param ssq7c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>6)) endparam int param ssq7c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>6)) endparam int param ssq7c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>6)) endparam int param ssq7c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq7type=="quadrilateral")\ &&(@nsubq>6)) endparam ; ; quadrilateral sub-shape 8 ; heading caption="sub-shape 8" visible=((@dissecttype!=0)&&(@nsubq>7)) endheading param ssq8type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>7)) endparam int param ssq8c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>7)) endparam int param ssq8c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>7)) endparam int param ssq8c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>7)) endparam int param ssq8c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq8type=="quadrilateral")\ &&(@nsubq>7)) endparam ; ; quadrilateral sub-shape 9 ; heading caption="sub-shape 9" visible=((@dissecttype!=0)&&(@nsubq>8)) endheading param ssq9type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>8)) endparam int param ssq9c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>8)) endparam int param ssq9c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>8)) endparam int param ssq9c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>8)) endparam int param ssq9c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq9type=="quadrilateral")\ &&(@nsubq>8)) endparam ; ; quadrilateral sub-shape 10 ; heading caption="sub-shape 10" visible=((@dissecttype!=0)&&(@nsubq>9)) endheading param ssq10type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>9)) endparam int param ssq10c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>9)) endparam int param ssq10c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>9)) endparam int param ssq10c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>9)) endparam int param ssq10c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq10type=="quadrilateral")\ &&(@nsubq>9)) endparam ; ; quadrilateral sub-shape 11 ; heading caption="sub-shape 11" visible=((@dissecttype!=0)&&(@nsubq>10)) endheading param ssq11type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>10)) endparam int param ssq11c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>10)) endparam int param ssq11c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>10)) endparam int param ssq11c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>10)) endparam int param ssq11c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq11type=="quadrilateral")\ &&(@nsubq>10)) endparam ; ; quadrilateral sub-shape 12 ; heading caption="sub-shape 12" visible=((@dissecttype!=0)&&(@nsubq>11)) endheading param ssq12type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>11)) endparam int param ssq12c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>11)) endparam int param ssq12c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>11)) endparam int param ssq12c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>11)) endparam int param ssq12c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq12type=="quadrilateral")\ &&(@nsubq>11)) endparam ; ; quadrilateral sub-shape 13 ; heading caption="sub-shape 13" visible=((@dissecttype!=0)&&(@nsubq>12)) endheading param ssq13type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>12)) endparam int param ssq13c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>12)) endparam int param ssq13c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>12)) endparam int param ssq13c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>12)) endparam int param ssq13c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq13type=="quadrilateral")\ &&(@nsubq>12)) endparam ; ; quadrilateral sub-shape 14 ; heading caption="sub-shape 14" visible=((@dissecttype!=0)&&(@nsubq>13)) endheading param ssq14type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>13)) endparam int param ssq14c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>13)) endparam int param ssq14c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>13)) endparam int param ssq14c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>13)) endparam int param ssq14c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq14type=="quadrilateral")\ &&(@nsubq>13)) endparam ; ; quadrilateral sub-shape 15 ; heading caption="sub-shape 15" visible=((@dissecttype!=0)&&(@nsubq>14)) endheading param ssq15type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>14)) endparam int param ssq15c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>14)) endparam int param ssq15c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>14)) endparam int param ssq15c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>14)) endparam int param ssq15c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq15type=="quadrilateral")\ &&(@nsubq>14)) endparam ; ; quadrilateral sub-shape 16 ; heading caption="sub-shape 16" visible=((@dissecttype!=0)&&(@nsubq>15)) endheading param ssq16type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>15)) endparam int param ssq16c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>15)) endparam int param ssq16c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>15)) endparam int param ssq16c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>15)) endparam int param ssq16c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq16type=="quadrilateral")\ &&(@nsubq>15)) endparam ; ; quadrilateral sub-shape 17 ; heading caption="sub-shape 17" visible=((@dissecttype!=0)&&(@nsubq>16)) endheading param ssq17type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>16)) endparam int param ssq17c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>16)) endparam int param ssq17c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>16)) endparam int param ssq17c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>16)) endparam int param ssq17c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq17type=="quadrilateral")\ &&(@nsubq>16)) endparam ; ; quadrilateral sub-shape 18 ; heading caption="sub-shape 18" visible=((@dissecttype!=0)&&(@nsubq>17)) endheading param ssq18type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>17)) endparam int param ssq18c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>17)) endparam int param ssq18c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>17)) endparam int param ssq18c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>17)) endparam int param ssq18c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq18type=="quadrilateral")\ &&(@nsubq>17)) endparam ; ; quadrilateral sub-shape 19 ; heading caption="sub-shape 19" visible=((@dissecttype!=0)&&(@nsubq>18)) endheading param ssq19type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>18)) endparam int param ssq19c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>18)) endparam int param ssq19c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>18)) endparam int param ssq19c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>18)) endparam int param ssq19c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq19type=="quadrilateral")\ &&(@nsubq>18)) endparam ; ; quadrilateral sub-shape 20 ; heading caption="sub-shape 20" visible=((@dissecttype!=0)&&(@nsubq>19)) endheading param ssq20type caption="type" default=0 enum="triangle" "quadrilateral" visible=((@dissecttype!=0)&&(@nsubq>19)) endparam int param ssq20c1 caption="corner 1 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>19)) endparam int param ssq20c2 caption="corner 2 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>19)) endparam int param ssq20c3 caption="corner 3 index" default=1 min=0 visible=((@dissecttype!=0)&&(@nsubq>19)) endparam int param ssq20c4 caption="corner 4 index" default=1 min=0 visible=((@dissecttype!=0)&&(@ssq20type=="quadrilateral")\ &&(@nsubq>19)) endparam } similar-paired-dissection { ; Kerry Mitchell 25Apr2005 ; ; Creates fractal tessellations by breaking up squares and isosceles right ; triangles into more squares and isosceles right triangles. ; ; See the tutorial for more information: ; http://www.fractalus.com/kerry/tutorials/spd/spd-tutorial.html ; $define debug global: bool fromtriangle=false bool istoosmall=false complex dr=(0,0) complex dzt[20,4] complex dzq[20,4] complex ssqc[20,4] complex sstc[20,4] complex zz[2,@nshape,4] int inew=0 int iold=0 int iss=0 int iter=0 int jnew=0 int jold=0 int jss=0 int ksub=0 int n=0 int nmax=0 int nsubqm1=@nsubq-1 int nsubtm1=@nsubt-1 int ssttype[20] int ssqtype[20] float len=0.0 float r=0.0 float rmax=0.0 ; ; generator ; ; write array of sub-shape corner point coordinates ; ; triangle ; ssttype[0]=@sst1type ssttype[1]=@sst2type ssttype[2]=@sst3type ssttype[3]=@sst4type ssttype[4]=@sst5type ssttype[5]=@sst6type ssttype[6]=@sst7type ssttype[7]=@sst8type ssttype[8]=@sst9type ssttype[9]=@sst10type ssttype[10]=@sst11type ssttype[11]=@sst12type ssttype[12]=@sst13type ssttype[13]=@sst14type ssttype[14]=@sst15type ssttype[15]=@sst16type ssttype[16]=@sst17type ssttype[17]=@sst18type ssttype[18]=@sst19type ssttype[19]=@sst20type sstc[0,0]=@sst1c1 sstc[0,1]=@sst1c2 sstc[0,2]=@sst1c3 sstc[0,3]=@sst1c4 sstc[1,0]=@sst2c1 sstc[1,1]=@sst2c2 sstc[1,2]=@sst2c3 sstc[1,3]=@sst2c4 sstc[2,0]=@sst3c1 sstc[2,1]=@sst3c2 sstc[2,2]=@sst3c3 sstc[2,3]=@sst3c4 sstc[3,0]=@sst4c1 sstc[3,1]=@sst4c2 sstc[3,2]=@sst4c3 sstc[3,3]=@sst4c4 sstc[4,0]=@sst5c1 sstc[4,1]=@sst5c2 sstc[4,2]=@sst5c3 sstc[4,3]=@sst5c4 sstc[5,0]=@sst6c1 sstc[5,1]=@sst6c2 sstc[5,2]=@sst6c3 sstc[5,3]=@sst6c4 sstc[6,0]=@sst7c1 sstc[6,1]=@sst7c2 sstc[6,2]=@sst7c3 sstc[6,3]=@sst7c4 sstc[7,0]=@sst8c1 sstc[7,1]=@sst8c2 sstc[7,2]=@sst8c3 sstc[7,3]=@sst8c4 sstc[8,0]=@sst9c1 sstc[8,1]=@sst9c2 sstc[8,2]=@sst9c3 sstc[8,3]=@sst9c4 sstc[9,0]=@sst10c1 sstc[9,1]=@sst10c2 sstc[9,2]=@sst10c3 sstc[9,3]=@sst10c4 sstc[10,0]=@sst11c1 sstc[10,1]=@sst11c2 sstc[10,2]=@sst11c3 sstc[10,3]=@sst11c4 sstc[11,0]=@sst12c1 sstc[11,1]=@sst12c2 sstc[11,2]=@sst12c3 sstc[11,3]=@sst12c4 sstc[12,0]=@sst13c1 sstc[12,1]=@sst13c2 sstc[12,2]=@sst13c3 sstc[12,3]=@sst13c4 sstc[13,0]=@sst14c1 sstc[13,1]=@sst14c2 sstc[13,2]=@sst14c3 sstc[13,3]=@sst14c4 sstc[14,0]=@sst15c1 sstc[14,1]=@sst15c2 sstc[14,2]=@sst15c3 sstc[14,3]=@sst15c4 sstc[15,0]=@sst16c1 sstc[15,1]=@sst16c2 sstc[15,2]=@sst16c3 sstc[15,3]=@sst16c4 sstc[16,0]=@sst17c1 sstc[16,1]=@sst17c2 sstc[16,2]=@sst17c3 sstc[16,3]=@sst17c4 sstc[17,0]=@sst18c1 sstc[17,1]=@sst18c2 sstc[17,2]=@sst18c3 sstc[17,3]=@sst18c4 sstc[18,0]=@sst19c1 sstc[18,1]=@sst19c2 sstc[18,2]=@sst19c3 sstc[18,3]=@sst19c4 sstc[19,0]=@sst20c1 sstc[19,1]=@sst20c2 sstc[19,2]=@sst20c3 sstc[19,3]=@sst20c4 ; ; quadrilateral ; ssqtype[0]=@ssq1type ssqtype[1]=@ssq2type ssqtype[2]=@ssq3type ssqtype[3]=@ssq4type ssqtype[4]=@ssq5type ssqtype[5]=@ssq6type ssqtype[6]=@ssq7type ssqtype[7]=@ssq8type ssqtype[8]=@ssq9type ssqtype[9]=@ssq10type ssqtype[10]=@ssq11type ssqtype[11]=@ssq12type ssqtype[12]=@ssq13type ssqtype[13]=@ssq14type ssqtype[14]=@ssq15type ssqtype[15]=@ssq16type ssqtype[16]=@ssq17type ssqtype[17]=@ssq18type ssqtype[18]=@ssq19type ssqtype[19]=@ssq20type ssqc[0,0]=@ssq1c1 ssqc[0,1]=@ssq1c2 ssqc[0,2]=@ssq1c3 ssqc[0,3]=@ssq1c4 ssqc[1,0]=@ssq2c1 ssqc[1,1]=@ssq2c2 ssqc[1,2]=@ssq2c3 ssqc[1,3]=@ssq2c4 ssqc[2,0]=@ssq3c1 ssqc[2,1]=@ssq3c2 ssqc[2,2]=@ssq3c3 ssqc[2,3]=@ssq3c4 ssqc[3,0]=@ssq4c1 ssqc[3,1]=@ssq4c2 ssqc[3,2]=@ssq4c3 ssqc[3,3]=@ssq4c4 ssqc[4,0]=@ssq5c1 ssqc[4,1]=@ssq5c2 ssqc[4,2]=@ssq5c3 ssqc[4,3]=@ssq5c4 ssqc[5,0]=@ssq6c1 ssqc[5,1]=@ssq6c2 ssqc[5,2]=@ssq6c3 ssqc[5,3]=@ssq6c4 ssqc[6,0]=@ssq7c1 ssqc[6,1]=@ssq7c2 ssqc[6,2]=@ssq7c3 ssqc[6,3]=@ssq7c4 ssqc[7,0]=@ssq8c1 ssqc[7,1]=@ssq8c2 ssqc[7,2]=@ssq8c3 ssqc[7,3]=@ssq8c4 ssqc[8,0]=@ssq9c1 ssqc[8,1]=@ssq9c2 ssqc[8,2]=@ssq9c3 ssqc[8,3]=@ssq9c4 ssqc[9,0]=@ssq10c1 ssqc[9,1]=@ssq10c2 ssqc[9,2]=@ssq10c3 ssqc[9,3]=@ssq10c4 ssqc[10,0]=@ssq11c1 ssqc[10,1]=@ssq11c2 ssqc[10,2]=@ssq11c3 ssqc[10,3]=@ssq11c4 ssqc[11,0]=@ssq12c1 ssqc[11,1]=@ssq12c2 ssqc[11,2]=@ssq12c3 ssqc[11,3]=@ssq12c4 ssqc[12,0]=@ssq13c1 ssqc[12,1]=@ssq13c2 ssqc[12,2]=@ssq13c3 ssqc[12,3]=@ssq13c4 ssqc[13,0]=@ssq14c1 ssqc[13,1]=@ssq14c2 ssqc[13,2]=@ssq14c3 ssqc[13,3]=@ssq14c4 ssqc[14,0]=@ssq15c1 ssqc[14,1]=@ssq15c2 ssqc[14,2]=@ssq15c3 ssqc[14,3]=@ssq15c4 ssqc[15,0]=@ssq16c1 ssqc[15,1]=@ssq16c2 ssqc[15,2]=@ssq16c3 ssqc[15,3]=@ssq16c4 ssqc[16,0]=@ssq17c1 ssqc[16,1]=@ssq17c2 ssqc[16,2]=@ssq17c3 ssqc[16,3]=@ssq17c4 ssqc[17,0]=@ssq18c1 ssqc[17,1]=@ssq18c2 ssqc[17,2]=@ssq18c3 ssqc[17,3]=@ssq18c4 ssqc[18,0]=@ssq19c1 ssqc[18,1]=@ssq19c2 ssqc[18,2]=@ssq19c3 ssqc[18,3]=@ssq19c4 ssqc[19,0]=@ssq20c1 ssqc[19,1]=@ssq20c2 ssqc[19,2]=@ssq20c3 ssqc[19,3]=@ssq20c4 ; ; convert sub-shape corner points into scale factors ; iss=-1 while(iss<19) iss=iss+1 jss=-1 while(jss<3) jss=jss+1 dzt[iss,jss]=(sstc[iss,jss]-@taxc1)/(@taxc2-@taxc1) dzq[iss,jss]=(ssqc[iss,jss]-@qaxc1)/(@qaxc2-@qaxc1) endwhile if(ssttype[iss]==0) ; triangle sub-shape dzt[iss,3]=(9999,9999) endif if(ssqtype[iss]==0) ; triangle sub-shape dzq[iss,3]=(9999,9999) endif endwhile ; ; initial shape ; iold=0 inew=1 n=0 if(@dissecttype<2) ; triangle axiom zz[inew,n,0]=@taxc1 zz[inew,n,1]=@taxc2 zz[inew,n,2]=@taxc3 zz[inew,n,3]=(9999,9999) else ; quadrilateral axiom zz[inew,n,0]=@qaxc1 zz[inew,n,1]=@qaxc2 zz[inew,n,2]=@qaxc3 zz[inew,n,3]=@qaxc4 endif ; ; iterate ; iter=0 while(iter<@niter) iter=iter+1 iold=1-iold inew=1-inew jnew=-1 jold=-1 while(jold999) fromtriangle=true else fromtriangle=false endif ; ; check size for "too small" ; istoosmall=false dr=zz[iold,jold,1]-zz[iold,jold,0] r=cabs(dr) if(r<@toosmall) istoosmall=true endif if(istoosmall==false) ; ; if big enough, generate new sub-shapes ; if(fromtriangle==true) ; triangle dissection ksub=-1 while(ksubnmax) nmax=n endif endwhile ; close iteration loop ; ; print diagnostics ; if(@printn) nmax=nmax+1 print("Set memory >= ",nmax) endif if(@printmin) jnew=-1 rmax=1e20 while(jnew<(n-1)) jnew=jnew+1 len=cabs(zz[inew,jnew,0]-zz[inew,jnew,1]) if(len ",rmax) endif init: complex tl=(0,0) float x=0.0 float y=0.0 float rl=0.0 float rmin=1e20 int inout=0 int jin=0 int jpoint=0 int k1=0 int k2=0 int kmax=0 int kmaxin=0 loop: final: ; ; march through all the shapes ; jpoint=-1 jin=-1 while(jpoint999) kmax=2 endif inout=0 ; ; march through all the sides of the shape ; k1=-1 while(k10)) ; ; find complex parameter for pixel wrt line ; tl=(#pixel-z1)/(z2-z1) x=real(tl) y=imag(tl) ; ; color by outlining shapes ; if(@colorby=="outline") if(x<0.0) rl=sqr(x)+sqr(y) elseif(x>1.0) rl=sqr(x-1.0)+sqr(y) else rl=sqr(y) endif rl=sqrt(rl)*cabs(z2-z1) if(rl0) if(y>=0) inout=inout+1 endif ; endif ; coloring modes endif ; speedup endwhile ; sides per shape loop ; ; set inside flag ; if(@colorby>0) if(inout>kmax) jin=jpoint kmaxin=kmax endif endif endwhile ; shape loop ; ; perform coloring ; if(@colorby=="outline") if(rmin>@thick) #solid=true else #index=rmin/@thick endif elseif(@colorby=="shape number") if(jin<0) #solid=true else #index=jin/n endif elseif(@colorby=="shape size") if(jin<0) #solid=true else #index=cabs(zz[inew,jin,0]-zz[inew,jin,kmax]) endif elseif(@colorby=="shape type") if(jin<0) #solid=true else #index=kmaxin-2 endif endif default: title="Similar Paired Dissection" ; ; general parameters ; heading caption="General parameters" endheading int param niter caption="# iterations" default=4 min=0 endparam float param toosmall caption="minimum size" default=0 min=0 endparam bool param printmin caption="print smallest" default=false endparam int param nshape caption="how much memory" default=100 min=1 endparam bool param printn caption="print memory" default=false endparam param colorby caption="color by" default=0 enum="outline" "shape number" "shape size" "shape type" endparam float param thick caption="line thickness" default=0.01 visible=(@colorby=="outline") min=0 endparam float param speedup caption="speedup threshold" default=1 min=0 hint="Larger is slower but more accurate, smaller is \ faster but less accurate." endparam bool param printlen caption="print speedup" default=false endparam ; ; axiom parameters ; heading caption="Axiom parameters" endheading param dissecttype caption="dissection type" default=3 enum="triangle -> triangle" "triangle -> both"\ "square -> square" "square -> both" endparam ; ; triangle axiom ; heading caption=" Triangle axiom" visible=(@dissecttype!=2) endheading complex param taxc1 caption="corner 1" default=(0,0) visible=(@dissecttype!=2) endparam complex param taxc2 caption="corner 2" default=(2,0) visible=(@dissecttype!=2) endparam complex param taxc3 caption="corner 3" default=(0,2) visible=(@dissecttype!=2) endparam complex param taxc4 caption="corner 4" default=(9999,9999) visible=(0==1) endparam ; ; square axiom ; heading caption=" Square axiom" visible=(@dissecttype!=0) endheading complex param qaxc1 caption="corner 1" default=(0,0) visible=(@dissecttype!=0) endparam complex param qaxc2 caption="corner 2" default=(2,0) visible=(@dissecttype!=0) endparam complex param qaxc3 caption="corner 3" default=(2,2) visible=(@dissecttype!=0) endparam complex param qaxc4 caption="corner 4" default=(0,2) visible=(@dissecttype!=0) endparam ; ; generator parameters ; heading caption="Generator parameters" endheading ; ; triangle generator ; heading caption=" Triangle generator" visible=(@dissecttype!=2) endheading int param nsubt caption="# sub-shapes" default=3 min=2 max=20 visible=(@dissecttype!=2) endparam ; ; triangle sub-shape 1 ; heading caption="sub-shape 1" visible=(@dissecttype!=2) endheading param sst1type caption="type" default=1 enum="triangle" "square" visible=(@dissecttype!=2) endparam complex param sst1c1 caption="corner 1" default=(0,0) visible=(@dissecttype!=2) endparam complex param sst1c2 caption="corner 2" default=(1,0) visible=(@dissecttype!=2) endparam complex param sst1c3 caption="corner 3" default=(1,1) visible=(@dissecttype!=2) endparam complex param sst1c4 caption="corner 4" default=(0,1) visible=((@dissecttype!=2)&&(@sst1type=="square")) endparam ; ; triangle sub-shape 2 ; heading caption="sub-shape 2" visible=(@dissecttype!=2) endheading param sst2type caption="type" default=0 enum="triangle" "square" visible=(@dissecttype!=2) endparam complex param sst2c1 caption="corner 1" default=(1,0) visible=(@dissecttype!=2) endparam complex param sst2c2 caption="corner 2" default=(2,0) visible=(@dissecttype!=2) endparam complex param sst2c3 caption="corner 3" default=(1,1) visible=(@dissecttype!=2) endparam complex param sst2c4 caption="corner 4" default=(9999,9999) visible=((@dissecttype!=2)&&(@sst2type=="square")) endparam ; ; triangle sub-shape 3 ; heading caption="sub-shape 3" visible=((@dissecttype!=2)&&(@nsubt>2)) endheading param sst3type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>2)) endparam complex param sst3c1 caption="corner 1" default=(0,1) visible=((@dissecttype!=2)&&(@nsubt>2)) endparam complex param sst3c2 caption="corner 2" default=(1,1) visible=((@dissecttype!=2)&&(@nsubt>2)) endparam complex param sst3c3 caption="corner 3" default=(0,2) visible=((@dissecttype!=2)&&(@nsubt>2)) endparam complex param sst3c4 caption="corner 4" default=(9999,9999) visible=((@dissecttype!=2)&&(@sst3type=="square")\ &&(@nsubt>2)) endparam ; ; triangle sub-shape 4 ; heading caption="sub-shape 4" visible=((@dissecttype!=2)&&(@nsubt>3)) endheading param sst4type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>3)) endparam complex param sst4c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>3)) endparam complex param sst4c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>3)) endparam complex param sst4c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>3)) endparam complex param sst4c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst4type=="square")\ &&(@nsubt>3)) endparam ; ; triangle sub-shape 5 ; heading caption="sub-shape 5" visible=((@dissecttype!=2)&&(@nsubt>4)) endheading param sst5type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>4)) endparam complex param sst5c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>4)) endparam complex param sst5c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>4)) endparam complex param sst5c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>4)) endparam complex param sst5c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst5type=="square")\ &&(@nsubt>4)) endparam ; ; triangle sub-shape 6 ; heading caption="sub-shape 6" visible=((@dissecttype!=2)&&(@nsubt>5)) endheading param sst6type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>5)) endparam complex param sst6c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>5)) endparam complex param sst6c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>5)) endparam complex param sst6c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>5)) endparam complex param sst6c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst6type=="square")\ &&(@nsubt>5)) endparam ; ; triangle sub-shape 7 ; heading caption="sub-shape 7" visible=((@dissecttype!=2)&&(@nsubt>6)) endheading param sst7type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>6)) endparam complex param sst7c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>6)) endparam complex param sst7c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>6)) endparam complex param sst7c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>6)) endparam complex param sst7c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst7type=="square")\ &&(@nsubt>6)) endparam ; ; triangle sub-shape 8 ; heading caption="sub-shape 8" visible=((@dissecttype!=2)&&(@nsubt>7)) endheading param sst8type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>7)) endparam complex param sst8c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>7)) endparam complex param sst8c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>7)) endparam complex param sst8c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>7)) endparam complex param sst8c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst8type=="square")\ &&(@nsubt>7)) endparam ; ; triangle sub-shape 9 ; heading caption="sub-shape 9" visible=((@dissecttype!=2)&&(@nsubt>8)) endheading param sst9type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>8)) endparam complex param sst9c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>8)) endparam complex param sst9c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>8)) endparam complex param sst9c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>8)) endparam complex param sst9c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst9type=="square")\ &&(@nsubt>8)) endparam ; ; triangle sub-shape 10 ; heading caption="sub-shape 10" visible=((@dissecttype!=2)&&(@nsubt>9)) endheading param sst10type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>9)) endparam complex param sst10c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>9)) endparam complex param sst10c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>9)) endparam complex param sst10c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>9)) endparam complex param sst10c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst10type=="square")\ &&(@nsubt>9)) endparam ; ; triangle sub-shape 11 ; heading caption="sub-shape 11" visible=((@dissecttype!=2)&&(@nsubt>10)) endheading param sst11type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>10)) endparam complex param sst11c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>10)) endparam complex param sst11c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>10)) endparam complex param sst11c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>10)) endparam complex param sst11c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst11type=="square")\ &&(@nsubt>10)) endparam ; ; triangle sub-shape 12 ; heading caption="sub-shape 12" visible=((@dissecttype!=2)&&(@nsubt>11)) endheading param sst12type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>11)) endparam complex param sst12c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>11)) endparam complex param sst12c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>11)) endparam complex param sst12c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>11)) endparam complex param sst12c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst12type=="square")\ &&(@nsubt>11)) endparam ; ; triangle sub-shape 13 ; heading caption="sub-shape 13" visible=((@dissecttype!=2)&&(@nsubt>12)) endheading param sst13type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>12)) endparam complex param sst13c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>12)) endparam complex param sst13c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>12)) endparam complex param sst13c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>12)) endparam complex param sst13c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst13type=="square")\ &&(@nsubt>12)) endparam ; ; triangle sub-shape 14 ; heading caption="sub-shape 14" visible=((@dissecttype!=2)&&(@nsubt>13)) endheading param sst14type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>13)) endparam complex param sst14c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>13)) endparam complex param sst14c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>13)) endparam complex param sst14c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>13)) endparam complex param sst14c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst14type=="square")\ &&(@nsubt>13)) endparam ; ; triangle sub-shape 15 ; heading caption="sub-shape 15" visible=((@dissecttype!=2)&&(@nsubt>14)) endheading param sst15type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>14)) endparam complex param sst15c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>14)) endparam complex param sst15c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>14)) endparam complex param sst15c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>14)) endparam complex param sst15c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst15type=="square")\ &&(@nsubt>14)) endparam ; ; triangle sub-shape 16 ; heading caption="sub-shape 16" visible=((@dissecttype!=2)&&(@nsubt>15)) endheading param sst16type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>15)) endparam complex param sst16c1 caption="corne7r 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>15)) endparam complex param sst16c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>15)) endparam complex param sst16c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>15)) endparam complex param sst16c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst16type=="square")\ &&(@nsubt>15)) endparam ; ; triangle sub-shape 17 ; heading caption="sub-shape 17" visible=((@dissecttype!=2)&&(@nsubt>16)) endheading param sst17type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>16)) endparam complex param sst17c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>16)) endparam complex param sst17c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>16)) endparam complex param sst17c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>16)) endparam complex param sst17c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst17type=="square")\ &&(@nsubt>16)) endparam ; ; triangle sub-shape 18 ; heading caption="sub-shape 18" visible=((@dissecttype!=2)&&(@nsubt>17)) endheading param sst18type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>17)) endparam complex param sst18c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>17)) endparam complex param sst18c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>17)) endparam complex param sst18c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>17)) endparam complex param sst18c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst18type=="square")\ &&(@nsubt>17)) endparam ; ; triangle sub-shape 19 ; heading caption="sub-shape 19" visible=((@dissecttype!=2)&&(@nsubt>18)) endheading param sst19type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>18)) endparam complex param sst19c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>18)) endparam complex param sst19c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>18)) endparam complex param sst19c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>18)) endparam complex param sst19c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst19type=="square")\ &&(@nsubt>18)) endparam ; ; triangle sub-shape 20 ; heading caption="sub-shape 20" visible=((@dissecttype!=2)&&(@nsubt>19)) endheading param sst20type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=2)&&(@nsubt>19)) endparam complex param sst20c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>19)) endparam complex param sst20c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>19)) endparam complex param sst20c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=2)&&(@nsubt>19)) endparam complex param sst20c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=2)&&(@sst20type=="square")\ &&(@nsubt>19)) endparam ; ; square generator ; heading caption=" Square generator" visible=(@dissecttype!=0) endheading int param nsubq caption="# sub-shapes" default=2 min=2 max=20 visible=(@dissecttype!=0) endparam ; ; square sub-shape 1 ; heading caption="sub-shape 1" visible=(@dissecttype!=0) endheading param ssq1type caption="type" default=0 enum="triangle" "square" visible=(@dissecttype!=0) endparam complex param ssq1c1 caption="corner 1" default=(0,0) visible=(@dissecttype!=0) endparam complex param ssq1c2 caption="corner 2" default=(2,0) visible=(@dissecttype!=0) endparam complex param ssq1c3 caption="corner 3" default=(0,2) visible=(@dissecttype!=0) endparam complex param ssq1c4 caption="corner 4" default=(9999,9999) visible=((@dissecttype!=0)&&(@ssq1type=="square")) endparam ; ; square sub-shape 2 ; heading caption="sub-shape 2" visible=(@dissecttype!=0) endheading param ssq2type caption="type" default=0 enum="triangle" "square" visible=(@dissecttype!=0) endparam complex param ssq2c1 caption="corner 1" default=(2,2) visible=(@dissecttype!=0) endparam complex param ssq2c2 caption="corner 2" default=(0,2) visible=(@dissecttype!=0) endparam complex param ssq2c3 caption="corner 3" default=(2,0) visible=(@dissecttype!=0) endparam complex param ssq2c4 caption="corner 4" default=(9999,9999) visible=((@dissecttype!=0)&&(@ssq2type=="square")) endparam ; ; square sub-shape 3 ; heading caption="sub-shape 3" visible=((@dissecttype!=0)&&(@nsubq>2)) endheading param ssq3type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>2)) endparam complex param ssq3c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>2)) endparam complex param ssq3c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>2)) endparam complex param ssq3c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>2)) endparam complex param ssq3c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq3type=="square")\ &&(@nsubq>2)) endparam ; ; square sub-shape 4 ; heading caption="sub-shape 4" visible=((@dissecttype!=0)&&(@nsubq>3)) endheading param ssq4type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>3)) endparam complex param ssq4c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>3)) endparam complex param ssq4c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>3)) endparam complex param ssq4c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>3)) endparam complex param ssq4c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq4type=="square")\ &&(@nsubq>3)) endparam ; ; square sub-shape 5 ; heading caption="sub-shape 5" visible=((@dissecttype!=0)&&(@nsubq>4)) endheading param ssq5type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>4)) endparam complex param ssq5c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>4)) endparam complex param ssq5c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>4)) endparam complex param ssq5c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>4)) endparam complex param ssq5c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq5type=="square")\ &&(@nsubq>4)) endparam ; ; square sub-shape 6 ; heading caption="sub-shape 6" visible=((@dissecttype!=0)&&(@nsubq>5)) endheading param ssq6type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>5)) endparam complex param ssq6c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>5)) endparam complex param ssq6c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>5)) endparam complex param ssq6c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>5)) endparam complex param ssq6c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq6type=="square")\ &&(@nsubq>5)) endparam ; ; square sub-shape 7 ; heading caption="sub-shape 7" visible=((@dissecttype!=0)&&(@nsubq>6)) endheading param ssq7type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>6)) endparam complex param ssq7c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>6)) endparam complex param ssq7c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>6)) endparam complex param ssq7c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>6)) endparam complex param ssq7c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq7type=="square")\ &&(@nsubq>6)) endparam ; ; square sub-shape 8 ; heading caption="sub-shape 8" visible=((@dissecttype!=0)&&(@nsubq>7)) endheading param ssq8type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>7)) endparam complex param ssq8c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>7)) endparam complex param ssq8c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>7)) endparam complex param ssq8c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>7)) endparam complex param ssq8c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq8type=="square")\ &&(@nsubq>7)) endparam ; ; square sub-shape 9 ; heading caption="sub-shape 9" visible=((@dissecttype!=0)&&(@nsubq>8)) endheading param ssq9type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>8)) endparam complex param ssq9c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>8)) endparam complex param ssq9c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>8)) endparam complex param ssq9c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>8)) endparam complex param ssq9c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq9type=="square")\ &&(@nsubq>8)) endparam ; ; square sub-shape 10 ; heading caption="sub-shape 10" visible=((@dissecttype!=0)&&(@nsubq>9)) endheading param ssq10type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>9)) endparam complex param ssq10c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>9)) endparam complex param ssq10c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>9)) endparam complex param ssq10c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>9)) endparam complex param ssq10c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq10type=="square")\ &&(@nsubq>9)) endparam ; ; square sub-shape 11 ; heading caption="sub-shape 11" visible=((@dissecttype!=0)&&(@nsubq>10)) endheading param ssq11type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>10)) endparam complex param ssq11c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>10)) endparam complex param ssq11c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>10)) endparam complex param ssq11c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>10)) endparam complex param ssq11c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq11type=="square")\ &&(@nsubq>10)) endparam ; ; square sub-shape 12 ; heading caption="sub-shape 12" visible=((@dissecttype!=0)&&(@nsubq>11)) endheading param ssq12type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>11)) endparam complex param ssq12c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>11)) endparam complex param ssq12c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>11)) endparam complex param ssq12c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>11)) endparam complex param ssq12c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq12type=="square")\ &&(@nsubq>11)) endparam ; ; square sub-shape 13 ; heading caption="sub-shape 13" visible=((@dissecttype!=0)&&(@nsubq>12)) endheading param ssq13type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>12)) endparam complex param ssq13c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>12)) endparam complex param ssq13c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>12)) endparam complex param ssq13c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>12)) endparam complex param ssq13c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq13type=="square")\ &&(@nsubq>12)) endparam ; ; square sub-shape 14 ; heading caption="sub-shape 14" visible=((@dissecttype!=0)&&(@nsubq>13)) endheading param ssq14type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>13)) endparam complex param ssq14c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>13)) endparam complex param ssq14c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>13)) endparam complex param ssq14c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>13)) endparam complex param ssq14c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq14type=="square")\ &&(@nsubq>13)) endparam ; ; square sub-shape 15 ; heading caption="sub-shape 15" visible=((@dissecttype!=0)&&(@nsubq>14)) endheading param ssq15type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>14)) endparam complex param ssq15c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>14)) endparam complex param ssq15c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>14)) endparam complex param ssq15c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>14)) endparam complex param ssq15c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq15type=="square")\ &&(@nsubq>14)) endparam ; ; square sub-shape 16 ; heading caption="sub-shape 16" visible=((@dissecttype!=0)&&(@nsubq>15)) endheading param ssq16type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>15)) endparam complex param ssq16c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>15)) endparam complex param ssq16c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>15)) endparam complex param ssq16c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>15)) endparam complex param ssq16c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq16type=="square")\ &&(@nsubq>15)) endparam ; ; square sub-shape 17 ; heading caption="sub-shape 17" visible=((@dissecttype!=0)&&(@nsubq>16)) endheading param ssq17type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>16)) endparam complex param ssq17c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>16)) endparam complex param ssq17c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>16)) endparam complex param ssq17c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>16)) endparam complex param ssq17c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq17type=="square")\ &&(@nsubq>16)) endparam ; ; square sub-shape 18 ; heading caption="sub-shape 18" visible=((@dissecttype!=0)&&(@nsubq>17)) endheading param ssq18type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>17)) endparam complex param ssq18c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>17)) endparam complex param ssq18c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>17)) endparam complex param ssq18c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>17)) endparam complex param ssq18c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq18type=="square")\ &&(@nsubq>17)) endparam ; ; square sub-shape 19 ; heading caption="sub-shape 19" visible=((@dissecttype!=0)&&(@nsubq>18)) endheading param ssq19type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>18)) endparam complex param ssq19c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>18)) endparam complex param ssq19c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>18)) endparam complex param ssq19c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>18)) endparam complex param ssq19c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq19type=="square")\ &&(@nsubq>18)) endparam ; ; square sub-shape 20 ; heading caption="sub-shape 20" visible=((@dissecttype!=0)&&(@nsubq>19)) endheading param ssq20type caption="type" default=0 enum="triangle" "square" visible=((@dissecttype!=0)&&(@nsubq>19)) endparam complex param ssq20c1 caption="corner 1" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>19)) endparam complex param ssq20c2 caption="corner 2" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>19)) endparam complex param ssq20c3 caption="corner 3" default=(0,0) visible=((@dissecttype!=0)&&(@nsubq>19)) endparam complex param ssq20c4 caption="corner 4" default=(0,0) visible=((@dissecttype!=0)&&(@ssq20type=="square")\ &&(@nsubq>19)) endparam } conic-range-lite { ; Kerry Mitchell 14jan2006 ; ; This is a sort of combination of Conic Sections Lite ; and Rose Range Lite. ; init: complex temp=(0,0) float cost=cos(@angle/180*#pi) float rn=0 float rz=0 float r1=0 float sint=sin(@angle/180*#pi) float tn=0 float twopi=2*#pi float tz=0 float t1=0 int rangeiter=0 loop: temp=#z-@curvecenter tz=atan2(temp) if(@curvetype=="line") rz=abs(cost*imag(temp)-sint*real(temp)) elseif(@curvetype=="circle") rz=abs(cabs(temp)-@radius) elseif(@curvetype=="ellipse") cost=cos(tz) sint=sin(tz) rz=1/sqrt(sqr(cost/@xaxis)+sqr(sint/@yaxis)) rz=abs(cabs(temp)-rz) elseif(@curvetype=="horiz. hyperbola") cost=cos(tz) sint=sin(tz) rz=sqr(cost/@xaxis)-sqr(sint/@yaxis) if(rz>=0) rz=1/sqrt(rz) rz=abs(cabs(temp)-rz) else rz=1e20 endif elseif(@curvetype=="vert. hyperbola") cost=cos(tz) sint=sin(tz) rz=-sqr(cost/@xaxis)+sqr(sint/@yaxis) if(rz>=0) rz=1/sqrt(rz) rz=abs(cabs(temp)-rz) else rz=1e20 endif endif if(rz<=@rangewidth) rangeiter=rangeiter+1 rn=rz/@rangewidth if(@centeradjust) tn=atan2(temp) else tn=atan2(#z) endif if(rangeiter==1) r1=rn t1=tn endif endif final: if(rangeiter==0) #solid=true else if(@colorby==0) ; first mag #index=r1 elseif(@colorby==1) ; last mag #index=rn elseif(@colorby==2) ; first angle if(t1<0) t1=t1+twopi endif #index=t1/twopi elseif(@colorby==3) ; last angle if(tn<0) tn=tn+twopi endif #index=tn/twopi endif endif default: title="Conic Range Lite" float param rangewidth caption="range width" default=0.1 endparam param colorby caption="color by" default=0 enum="first magnitude" "last magnitude" \ "first angle" "last angle" endparam bool param centeradjust caption="adjust for center" default=false visible=((@colorby=="first angle")||(@colorby=="last angle")) endparam param curvetype caption="curve type" default=0 enum="line" "circle" "ellipse" "horiz. hyperbola"\ "vert. hyperbola" endparam complex param curvecenter caption="curve center" default=(0,0) endparam float param angle caption="angle, deg" default=45 visible=(@curvetype=="line") endparam float param radius caption="radius" default=1 visible=(@curvetype=="circle") endparam float param xaxis caption="x axis" default=1.25 visible=(@curvetype>=2) endparam float param yaxis caption="y axis" default=0.8 visible=(@curvetype>=2) endparam } guilloche-curve { ; Kerry Mitchell 16Jan2006 $define debug global: complex rhophi=(0,0) complex zg[@npoint] complex zcin[@ncornerin] complex zcout[@ncornerout] float aq=0 float bq=0 float cost=0 float cq=0 float dq=0 float dt=2*#pi/@npoint*@nloop float faze=@phase/180*#pi float fazein=@phasein/180*#pi float fazeout=@phaseout/180*#pi float phi=0 float r=0 float rho=0 float rin=0 float rmid=0 float rout=0 float rprime=0 float sint=0 float slopeanglein[@ncornerin] float slopeangleout[@ncornerout] float t=0 float tmod=0 float tprimein[@ncornerin] float tprimeout[@ncornerout] int icorner=0 int ipoint=0 int jcorner=0 int kside=0 int npointm1=@npoint-1 ; ; set up inside polygon corners ; if(@typein=="polygon") ; ; set up corner points ; if(@polytypein=="general") zcin[0]=@cornerin1 zcin[1]=@cornerin2 zcin[2]=@cornerin3 if(@ncornerin>3) zcin[3]=@cornerin4 if(@ncornerin>4) zcin[4]=@cornerin5 if(@ncornerin>5) zcin[5]=@cornerin6 if(@ncornerin>6) zcin[6]=@cornerin7 if(@ncornerin>7) zcin[7]=@cornerin8 if(@ncornerin>8) zcin[8]=@cornerin9 if(@ncornerin>9) zcin[9]=@cornerin10 if(@ncornerin>10) zcin[10]=@cornerin11 if(@ncornerin>11) zcin[11]=@cornerin12 endif endif endif endif endif endif endif endif endif elseif(@polytypein=="regular") icorner=-1 while(icorner<(@ncornerin-1)) icorner=icorner+1 t=icorner*360/@ncornerin+@regoffsetin t=t/180*#pi-#pi zcin[icorner]=@regradiusin*(cos(t)+flip(sin(t))) endwhile elseif(@polytypein=="stellated") jcorner=@ncornerin%2 if(jcorner!=0) print("Use even # corners") endif icorner=-1 while(icorner<(@ncornerin-1)) icorner=icorner+1 t=icorner*360/@ncornerin+@regoffsetin t=t/180*#pi-#pi jcorner=icorner%2 if(jcorner==0) zcin[icorner]=@starradius0in*(cos(t)+flip(sin(t))) else zcin[icorner]=@starradius1in*(cos(t)+flip(sin(t))) endif endwhile endif ; ; find angles to corners and slopes of sides ; icorner=-1 while(icorner<(@ncornerin-1)) icorner=icorner+1 jcorner=(icorner+1)%@ncornerin t=atan2(zcin[jcorner]-zcin[icorner]) slopeanglein[icorner]=t tprimein[icorner]=atan2(zcin[icorner]) endwhile endif ; ; set up outside polygon corners ; if(@typeout=="polygon") ; ; set up corner points ; if(@polytypeout=="general") zcout[0]=@cornerout1 zcout[1]=@cornerout2 zcout[2]=@cornerout3 if(@ncornerout>3) zcout[3]=@cornerout4 if(@ncornerout>4) zcout[4]=@cornerout5 if(@ncornerout>5) zcout[5]=@cornerout6 if(@ncornerout>6) zcout[6]=@cornerout7 if(@ncornerout>7) zcout[7]=@cornerout8 if(@ncornerout>8) zcout[8]=@cornerout9 if(@ncornerout>9) zcout[9]=@cornerout10 if(@ncornerout>10) zcout[10]=@cornerout11 if(@ncornerout>11) zcout[11]=@cornerout12 endif endif endif endif endif endif endif endif endif elseif(@polytypeout=="regular") icorner=-1 while(icorner<(@ncornerout-1)) icorner=icorner+1 t=icorner*360/@ncornerout+@regoffsetout t=t/180*#pi-#pi zcout[icorner]=@regradiusout*(cos(t)+flip(sin(t))) endwhile elseif(@polytypeout=="stellated") jcorner=@ncornerout%2 if(jcorner!=0) print("Use even # corners") endif icorner=-1 while(icorner<(@ncornerout-1)) icorner=icorner+1 t=icorner*360/@ncornerout+@regoffsetout t=t/180*#pi-#pi jcorner=icorner%2 if(jcorner==0) zcout[icorner]=@starradius0out*(cos(t)+flip(sin(t))) else zcout[icorner]=@starradius1out*(cos(t)+flip(sin(t))) endif endwhile endif ; ; find angles to corners and slopes of sides ; icorner=-1 while(icorner<(@ncornerout-1)) icorner=icorner+1 jcorner=(icorner+1)%@ncornerout t=atan2(zcout[jcorner]-zcout[icorner]) slopeangleout[icorner]=t tprimeout[icorner]=atan2(zcout[icorner]) endwhile endif ; ; establish radii of curves ; ipoint=-1 while(ipoint=tprimein[@ncornerin-1])) kside=@ncornerin-1 else icorner=-1 while(icorner<(@ncornerin-2)) icorner=icorner+1 jcorner=icorner+1 if((tmod>=tprimein[icorner])&&(tmod=tprimeout[@ncornerout-1])) kside=@ncornerout-1 else icorner=-1 while(icorner<(@ncornerout-2)) icorner=icorner+1 jcorner=icorner+1 if((tmod>=tprimeout[icorner])&&(tmod=@rboundin)&&(rbout<=@rboundout)) tl=(#pixel-z1)/(z2-z1) x=real(tl) y=imag(tl) if(x<0.0) rl=sqr(x)+sqr(y) elseif(x>1.0) rl=sqr(x-1.0)+sqr(y) else rl=sqr(y) endif rl=sqrt(rl)*cabs(z2-z1) if(rl@thick) #solid=true else if(@colorby==1) ; basin #index=nmin/@npoint else ; line #index=rmin/@thick endif endif default: title="Guilloche Curve" ; ; general parameters ; heading caption="General parameters" endheading int param npoint caption="# points" default=640 min=2 endparam param colorby caption="color by" default=0 enum="outline" "which line" endparam float param thick caption="line thickness" default=0.02 endparam ; ; inner curve ; heading caption="Inner Curve" endheading param typein caption="type" default=0 enum="circle" "ellipse" "rose curve" "polygon" endparam ; ; circle ; complex param centerin caption="center" default=(0,0) visible=((@typein=="circle")||(@typein=="rose curve")) endparam float param radiusin caption="radius" default=1 visible=(@typein=="circle") endparam ; ; ellipse ; float param elipain caption="horizontal axis" default=1 visible=(@typein=="ellipse") endparam float param elipbin caption="vertical size" default=1 visible=(@typein=="ellipse") endparam ; ; rose curve ; float param ampin caption="amplitude" default=1 visible=(@typein=="rose curve") endparam float param freqin caption="frequency" default=3 visible=(@typein=="rose curve") endparam float param phasein caption="phase, deg" default=0 visible=(@typein=="rose curve") endparam float param offsetin caption="radial offset" default=2 visible=(@typein=="rose curve") endparam ; ; polygon ; param polytypein caption="polygon type" default=1 enum="general" "regular" "stellated" visible=(@typein=="polygon") endparam int param ncornerin caption="# corners" default=3 min=3 max=12 hint="Must be between 3 and 12, inclusive." visible=(@typein=="polygon") endparam ; ; general ; complex param cornerin1 caption="corner 1" default=(-0.5,-0.866) visible=((@typein=="polygon")&&(@polytypein=="general")) endparam complex param cornerin2 caption="corner 2" default=(1,0) visible=((@typein=="polygon")&&(@polytypein=="general")) endparam complex param cornerin3 caption="corner 3" default=(-0.5,0.866) visible=((@typein=="polygon")&&(@polytypein=="general")) endparam complex param cornerin4 caption="corner 4" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>3)) endparam complex param cornerin5 caption="corner 5" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>4)) endparam complex param cornerin6 caption="corner 6" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>5)) endparam complex param cornerin7 caption="corner 7" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>6)) endparam complex param cornerin8 caption="corner 8" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>7)) endparam complex param cornerin9 caption="corner 9" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>8)) endparam complex param cornerin10 caption="corner 10" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>9)) endparam complex param cornerin11 caption="corner 11" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>10)) endparam complex param cornerin12 caption="corner 12" default=(0,0) visible=((@typein=="polygon")&&(@polytypein=="general")\ &&(@ncornerin>11)) endparam ; ; regular ; float param regradiusin caption="radius" default=1 visible=((@typein=="polygon")&&(@polytypein=="regular")) endparam float param regoffsetin caption="rotation, deg" default=0 min=0 visible=(((@typein=="polygon")&&((@polytypein=="regular")\ ||(@polytypein=="stellated")))||(@typein=="ellipse")) endparam ; ; stellated ; float param starradius0in caption="radius 0" default=1 visible=((@typein=="polygon")&&(@polytypein=="stellated")) endparam float param starradius1in caption="radius 1" default=2 visible=((@typein=="polygon")&&(@polytypein=="stellated")) endparam ; ; bounding circle ; bool param boundin caption="bounding circle" default=false endparam complex param centerboundin caption="center" default=(0,0) visible=(@boundin==true) endparam float param rboundin caption="radius" default=1 visible=(@boundin==true) endparam ; ; outer curve ; heading caption="Outer Curve" endheading param typeout caption="type" default=0 enum="circle" "ellipse" "rose curve" "polygon" endparam ; ; circle ; complex param centerout caption="center" default=(0,0) visible=((@typeout=="circle")||(@typeout=="rose curve")) endparam float param radiusout caption="radius" default=2 visible=(@typeout=="circle") endparam ; ; ellipse ; float param elipaout caption="horizontal axis" default=1 visible=(@typeout=="ellipse") endparam float param elipbout caption="vertical size" default=1 visible=(@typeout=="ellipse") endparam ; ; rose curve ; float param ampout caption="amplitude" default=1 visible=(@typeout=="rose curve") endparam float param freqout caption="frequency" default=3 visible=(@typeout=="rose curve") endparam float param phaseout caption="phase, deg" default=0 visible=(@typeout=="rose curve") endparam float param offsetout caption="radial offset" default=2 visible=(@typeout=="rose curve") endparam ; ; polygon ; param polytypeout caption="polygon type" default=1 enum="general" "regular" "stellated" visible=(@typeout=="polygon") endparam int param ncornerout caption="# corners" default=3 min=3 max=12 hint="Must be between 3 and 12, inclusive." visible=(@typeout=="polygon") endparam ; ; general ; complex param cornerout1 caption="corner 1" default=(-0.5,-0.866) visible=((@typeout=="polygon")&&(@polytypeout=="general")) endparam complex param cornerout2 caption="corner 2" default=(1,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")) endparam complex param cornerout3 caption="corner 3" default=(-0.5,0.866) visible=((@typeout=="polygon")&&(@polytypeout=="general")) endparam complex param cornerout4 caption="corner 4" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>3)) endparam complex param cornerout5 caption="corner 5" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>4)) endparam complex param cornerout6 caption="corner 6" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>5)) endparam complex param cornerout7 caption="corner 7" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>6)) endparam complex param cornerout8 caption="corner 8" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>7)) endparam complex param cornerout9 caption="corner 9" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>8)) endparam complex param cornerout10 caption="corner 10" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>9)) endparam complex param cornerout11 caption="corner 11" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>10)) endparam complex param cornerout12 caption="corner 12" default=(0,0) visible=((@typeout=="polygon")&&(@polytypeout=="general")\ &&(@ncornerout>11)) endparam ; ; regular ; float param regradiusout caption="radius" default=1 visible=((@typeout=="polygon")&&(@polytypeout=="regular")) endparam float param regoffsetout caption="rotation, deg" default=0 min=0 visible=(((@typeout=="polygon")&&((@polytypeout=="regular")\ ||(@polytypeout=="stellated")))||(@typeout=="ellipse")) endparam ; ; stellated ; float param starradius0out caption="radius 0" default=1 visible=((@typeout=="polygon")&&(@polytypeout=="stellated")) endparam float param starradius1out caption="radius 1" default=2 visible=((@typeout=="polygon")&&(@polytypeout=="stellated")) endparam ; ; bounding circle ; bool param boundout caption="bounding circle" default=false endparam complex param centerboundout caption="center" default=(0,0) visible=(@boundout==true) endparam float param rboundout caption="radius" default=1 visible=(@boundout==true) endparam ; ; middle curve ; heading caption="Middle Curve" endheading float param freqmid caption="frequency" default=8.125 endparam float param phase caption="phase, deg" default=0 endparam float param nloop caption="full loops" default=8 endparam } find-the-focal-point { ; Kerry Mitchell 23feb2006 ; ; Places horizontal and/or vertical lines on an image ; to let you find where the focal point is, relative ; to established rules of artistic composition ("golden ; ratio" or :rule of thirds"). ; ; Use with the Pixel formula from lkm.ufm. ; init: float fac=0 float omfac=0 float r=0 float rmin=1e20 float xfac=#x/(#width-1) float yfac=#y/(#height-1) if(@ratiotype=="golden ratio") fac=0.6180339887498948482045868343656 omfac=1-fac elseif(@ratiotype=="rule of thirds") fac=1/3 omfac=2/3 endif loop: final: if(@whichlines=="vertical only") r=abs(xfac-fac) if(r@linewidth) #solid=true else #index=rmin/@linewidth endif default: title="Find the Focal Point" param ratiotype caption="ratio type" default=0 enum="golden ratio" "rule of thirds" endparam param whichlines caption="which lines" default=2 enum="horizontal only" "vertical only" "all four" endparam float param linewidth caption="line width" default=0.01 endparam } two-count { ; Kerry Mitchell 02dec2006 ; ; This routine creates 2 counts, such as how many times the real part of z is ; positive or how many times the imaginary part is between -1 and 1. ; ; This coloring introduces a lot of structure into the image, so it's best used ; with a fractal that doesn't have much structure in it. ; init: float count=0 float variable1=0 float variable2=0 int count1=0 int count2=0 loop: ; ; set up variable 1 ; if(@variable1_type=="real") variable1=real(#z) elseif(@variable1_type=="imaginary") variable1=imag(#z) elseif(@variable1_type=="magnitude") variable1=cabs(#z) elseif(@variable1_type=="angle") variable1=atan2(#z) endif variable1=real(@fn1(variable1)) ; ; set up variable 2 ; if(@variable2_type=="real") variable2=real(#z) elseif(@variable2_type=="imaginary") variable2=imag(#z) elseif(@variable2_type=="magnitude") variable2=cabs(#z) elseif(@variable2_type=="angle") variable2=atan2(#z) endif variable2=real(@fn2(variable2)) ; ; count 1: does variable 1 meet condition 1? ; if(@count1_type=="< constant") if(variable1<@limit1) count1=count1+1 endif elseif(@count1_type=="= constant") if(variable1==@limit1) count1=count1+1 endif elseif(@count1_type=="> constant") if(variable1>@limit1) count1=count1+1 endif elseif(@count1_type=="< variable 2") if(variable1 variable 2") if(variable1>variable2) count1=count1+1 endif elseif(@count1_type=="range") if((variable1>=@low_limit1)&&(variable1<=@high_limit1)) count1=count1+1 endif endif ; ; count 2: does variable 2 meet condition 2? ; if(@count2_type=="< constant") if(variable2<@limit2) count2=count2+1 endif elseif(@count2_type=="= constant") if(variable2==@limit2) count2=count2+1 endif elseif(@count2_type=="> constant") if(variable2>@limit2) count2=count2+1 endif elseif(@count2_type=="< variable 1") if(variable2 variable 1") if(variable2>variable1) count2=count2+1 endif elseif(@count2_type=="range") if((variable2>=@low_limit2)&&(variable2<=@high_limit2)) count2=count2+1 endif endif final: ; ; take the modulo of the individual counts, if specified ; if(@mod1==true) count1=count1%@mod_base1 endif if(@mod2==true) count2=count2%@mod_base2 endif ; ; combine the two individual counts and determine the color index ; if(@combine_type=="1 only") count=count1 if(@mod==true) #index=(count%@mod_base)/@mod_base else #index=count/32 endif elseif(@combine_type=="2 only") count=count2 if(@mod==true) #index=(count%@mod_base)/@mod_base else #index=count/32 endif elseif(@combine_type=="sum") count=count1+count2 if(@mod==true) #index=(count%@mod_base)/@mod_base else #index=count/32 endif elseif(@combine_type=="difference") count=abs(count1-count2) if(@mod==true) #index=(count%@mod_base)/@mod_base else #index=count/32 endif elseif(@combine_type=="product") count=count1*count2 if(@mod==true) #index=(count%@mod_base)/@mod_base else #index=count/32 endif elseif(@combine_type=="ratio 1/2") if(count2==0) count=0 else count=count1/count2 endif #index=count elseif(@combine_type=="ratio 2/1") if(count1==0) count=0 else count=count2/count1 endif #index=count elseif(@combine_type=="magnitude") count=cabs(count1+flip(count2)) #index=(count%@mod_base)/@mod_base elseif(@combine_type=="angle") #index=2*atan2(count1+flip(count2))/#pi endif default: title="Two Count" ; ; count 1 parameters ; heading caption="Count 1" endheading param variable1_type caption="variable type" default=0 enum="real" "imaginary" "magnitude" "angle" endparam func fn1 caption="modifying function" default=ident() endfunc param count1_type caption="type" default=2 enum="< constant" "= constant" "> constant" "< variable 2" "= variable 2"\ "> variable 2" "range" endparam float param limit1 caption="limit" default=0 visible=(@count1_type<3) endparam float param low_limit1 caption="low end" default=-1 visible=(@count1_type=="range") endparam float param high_limit1 caption="high end" default=1 visible=(@count1_type=="range") endparam bool param mod1 caption="mod count" default=false endparam int param mod_base1 caption="mod base" default=2 min=2 visible=(@mod1==true) endparam ; ; count 2 parameters ; heading caption="Count 2" endheading param variable2_type caption="variable type" default=1 enum="real" "imaginary" "magnitude" "angle" endparam func fn2 caption="modifying function" default=ident() endfunc param count2_type caption="type" default=2 enum="< constant" "= constant" "> constant" "< variable 1" "= variable 1"\ "> variable 1" "range" endparam float param limit2 caption="limit" default=0 visible=(@count2_type<3) endparam float param low_limit2 caption="low end" default=-1 visible=(@count2_type=="range") endparam float param high_limit2 caption="high end" default=1 visible=(@count2_type=="range") endparam bool param mod2 caption="mod count" default=false endparam int param mod_base2 caption="mod base" default=3 min=2 visible=(@mod2==true) endparam ; ; combination parameters ; heading caption="Combine Counts" endheading param combine_type caption="combine type" default=2 enum="1 only" "2 only" "sum" "difference" "product" "ratio 1/2"\ "ratio 2/1" "magnitude" "angle" endparam bool param mod caption="mod count" default=true visible=(@combine_type<5) endparam int param mod_base caption="mod base" default=10 min=2 visible=((@combine_type<5)&&(@mod==true)) endparam } mandelbrot-julia-trap { ; Kerry Mitchell 03jan08 ; ; This is similar in concept to other trap colorings. ; However, the trap shape here is a Mandelbrot or Julia set. ; global: $define debug complex rot=(0,0) float t=0 t=@rotd/180*#pi rot=(cos(t)-flip(sin(t)))/@scale init: complex c=(0,0) complex zm=(0,0) complex zmin=(0,0) complex zmax=(0,0) complex zrangefirst=(0,0) complex zrangelast=(0,0) complex ztrans=(0,0) float dist=0 float distfirst=0 float distlast=0 float distmin=1e20 float distmax=0 float ilp=1/log(@mjpower) float ilpllb=ilp*log(log(@bailout)) float iterfirst=0 float iterlast=0 float itermin=0 float itermax=0 float sum=0 int inrange=0 int iter=0 int nmin=0 int nmax=0 loop: ; ; set up Mandelbrot or Julia iteration ; ztrans=rot*#z-@offset if(@fntype=="Mandelbrot") c=ztrans zm=@manparam elseif(@fntype=="Julia") c=@julparam zm=ztrans endif iter=0 sum=0 ; ; iterate and calculate smoothing function ; while((iter<@niter)&&(|zm|<@bailout)) iter=iter+1 zm=zm^@mjpower+c if(@smoothtype=="power") sum=sum+(cabs(zm))^@smoothpower elseif(@smoothtype=="exponential") sum=sum+exp(@smoothfac*cabs(zm)) endif endwhile ; ; determine distance from set ; if(@smoothtype=="power") dist=sum^@smoothpower elseif(@smoothtype=="exponential") dist=exp(@smoothfac*sum) endif ; ; minimum distance ; if(distdistmax) nmax=nmax+1 distmax=dist zmax=#z if(iter==@niter) itermax=@niter else itermax=iter+ilpllb-ilp*log(log(cabs(zm))) endif endif ; ; distance within range ; if((dist>=@rangemin)&&(dist<=@rangemax)) inrange=inrange+1 zrangelast=zm distlast=dist iterlast=iter+ilpllb-ilp*log(log(cabs(zm))) if(inrange==1) zrangefirst=zm distfirst=dist iterfirst=iterlast endif endif final: if(@colorby=="min: distance") #index=distmin elseif(@colorby=="min: magnitude") #index=cabs(zmin) elseif(@colorby=="min: angle") #index=(atan2(zmin)/#pi+1)/2 elseif(@colorby=="min: iterations") #index=itermin/@niter elseif(@colorby=="min: # changes") #index=nmin/@niter ; elseif(@colorby=="max: distance") #index=distmax elseif(@colorby=="max: magnitude") #index=cabs(zmax) elseif(@colorby=="max: angle") #index=(atan2(zmax)/#pi+1)/2 elseif(@colorby=="max: iterations") #index=itermax/@niter elseif(@colorby=="max: # changes") #index=nmax/@niter ; elseif(@colorby=="range: first distance") if(inrange==0) #solid=true else #index=distfirst endif elseif(@colorby=="range: first magnitude") if(inrange==0) #solid=true else #index=cabs(zrangefirst) endif elseif(@colorby=="range: first angle") if(inrange==0) #solid=true else #index=(atan2(zrangefirst)/#pi+1)/2 endif elseif(@colorby=="range: first iterations") #index=iterfirst/@niter elseif(@colorby=="range: last distance") if(inrange==0) #solid=true else #index=distlast endif elseif(@colorby=="range: last magnitude") if(inrange==0) #solid=true else #index=cabs(zrangelast) endif elseif(@colorby=="range: last angle") if(inrange==0) #solid=true else #index=(atan2(zrangelast)/#pi+1)/2 endif elseif(@colorby=="range: last iterations") #index=iterlast/@niter elseif(@colorby=="range: # in") if(inrange==0) #solid=true else #index=inrange/@niter endif endif default: title="Mandelbrot/Julia Trap" ; ; trap function ; heading caption="Trap function" endheading param fntype caption="function type" default=0 enum="Mandelbrot" "Julia" endparam complex param manparam caption="initial z" default=(0,0) visible=(@fntype=="Mandelbrot") endparam complex param julparam caption="Julia paramter" default=(0,1) visible=(@fntype=="Julia") endparam int param niter caption="# iterations" default=100 endparam float param mjpower caption="exponent" default=2 endparam float param bailout caption="bailout" default=1000 endparam ; ; trap size, location ; heading caption="Trap size, location" endheading float param scale caption="scale" default=1 endparam float param rotd caption="rotation, deg" default=0 endparam complex param offset caption="center" default=(0,0) endparam ; ; distance parameters ; heading caption="Distance parameters" endheading param smoothtype caption="smoothing type" default=0 enum="power" "exponential" endparam float param smoothpower caption="smoothing power" default=-1 max=0 visible=(@smoothtype=="power") endparam float param smoothfac caption="smoothing factor" default=-1 max=0 visible=(@smoothtype=="exponential") endparam ; ; trap coloring ; heading caption="Trap coloring" endheading param colorby caption="color by" default=0 enum="min: distance" "min: magnitude" "min: angle" "min: iterations"\ "min: # changes" "max: distance" "max: magnitude" "max: angle" \ "max: iterations" "max: # changes" "range: first distance" \ "range: first magnitude" "range: first angle" "range: first iterations"\ "range: last distance" "range: last magnitude" "range: last angle"\ "range: last iterations" "range: # in" endparam float param rangemin caption="range minimum" default=0 visible=(@colorby>9) endparam float param rangemax caption="range maximum" default=0.01 visible=(@colorby>9) endparam } buddhabrot2 { ; Kerry Mitchell 04Jan2008 ; ; Extends the Buddhabrot coloring by letting you: ; - track either a Mandelbrot or a Julia set ; - draw either a Mandelbrot or a Julia set ; - take the points from the zoom window, a solid rectangle, or ; an annulus (circle with thickness) ; $define debug global: complex enda=(0,0) complex endb=(0,0) complex gc=(0,0) complex gz=(0,0) complex gz0=(0,0) complex rot=(0,0) int gipix=0 int gjpix=0 int girp=0 int gsamp=0 int hits[#width,#height] float gn=round(#width*#height) int randseed=@seed float fac=4/#magn float xmin=real(#center)-fac/2 float xmax=xmin+fac*(#width-1)/#width float rdx=(#width-1)/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac*(#width-1)/#width float rdy=(#height-1)/(ymax-ymin) float thickrad=0 float twopi=2*#pi float xnew=0.0 float ynew=0.0 float xrpscale=0.0 float xrpmin=0.0 float yrpscale=0.0 float yrpmin=0.0 rot=cos(#angle)-flip(sin(#angle)) bool gdone=false bool ginside=false bool goutside=false bool gredo=false ; ; set parameters for random point selection ; if(@rptype==0) ; all space xrpscale=(imag(@xrp)-real(@xrp))/#randomrange xrpmin=real(@xrp) yrpscale=(imag(@yrp)-real(@yrp))/#randomrange yrpmin=real(@yrp) elseif(@rptype==1) ; zoom window xrpscale=(xmax-xmin)/#randomrange xrpmin=xmin yrpscale=(ymax-ymin)/#randomrange yrpmin=ymin endif ; ; clear out array ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; iterate random tracking point ; gsamp=0 while(gsamp<@sampfac) gsamp=gsamp+1 if(@printsamp) print(gsamp,"/",@sampfac) endif ; girp=-1 while(girp0) randseed=random(randseed) thickrad=2*(abs(randseed)/#randomrange)-1 thickrad=thickrad*@rpthick/2+@rpscale else thickrad=@rpscale endif randseed=random(randseed) fac=abs(randseed)/#randomrange*twopi gz0=thickrad*(cos(fac)+flip(sin(fac)))+@rpcenter elseif(@rptype=="rectangle") fac=@rpangle/180*#pi endb=@rpscale*(cos(fac)+flip(sin(fac)))/2 enda=@rpcenter+endb endb=@rpcenter-endb randseed=random(randseed) if(@rpthick>0) randseed=random(randseed) thickrad=2*(abs(randseed)/#randomrange)-1 thickrad=thickrad*@rpthick/2 else thickrad=0 endif randseed=random(randseed) fac=abs(randseed)/#randomrange gz0=(fac+flip(thickrad))*(endb-enda)+enda endif ; ; tracking points ; if(@typetrack=="Mandelbrot") gz=@manparamtrack gc=gz0 elseif(@typetrack=="Julia") gz=gz0 gc=@julparamtrack endif giter=0 while(gdone==false) giter=giter+1 gz=gz^@powertrack+gc if(|gz|>@bailouttrack) gdone=true goutside=true endif if(giter==@nitertrack) gdone=true ginside=true endif endwhile if(@pointtype==2) ; both gredo=true elseif((@pointtype==1)&&(ginside==true)) ; inside gredo=true elseif((@pointtype==0)&&(goutside==true)) ; outside gredo=true endif ; ; iterate drawing point ; if(gredo==true) if(@typedraw=="Mandelbrot") gz=@manparamdraw gc=gz0 elseif(@typedraw=="Julia") gz=gz0 gc=@julparamdraw endif giter=0 gdone=false while(gdone==false) giter=giter+1 gz=gz^@powerdraw+gc ; ; find pixel ; worbit=(gz-#center)*rot+#center xnew=real(worbit) ynew=imag(worbit) if((xnew>xmin)&&(xnewymin)&&(ynew@bailoutdraw)||(giter==@niterdraw)) gdone=true endif endwhile endif endwhile ; endwhile init: int nin=0 loop: final: nin=hits[#x,#y] if((nin==0)&&(@solidbg==true)) #solid=true else if(@scaletype==1) ; logarithmic scaling #index=log(@density*nin+1) elseif(@scaletype==2) ; hyperbolic tangent #index=tanh(@density*nin) else ; linear #index=abs(nin)*@density endif endif default: title="Buddhabrot 2" ; ; tracking set ; heading caption="Tracking Set parameters" endheading param typetrack caption="type" default=0 enum="Mandelbrot" "Julia" endparam complex param manparamtrack caption="initial z" default=(0,0) visible=(@typetrack==0) endparam complex param julparamtrack caption="Julia parameter" default=(0.3,0.015) visible=(@typetrack==1) endparam int param nitertrack caption="# iterations" default=100 endparam complex param powertrack caption="power" default=(2,0) endparam float param bailouttrack caption="bailout" default=1000 endparam ; ; drawing set ; heading caption="Drawing Set parameters" endheading param typedraw caption="type" default=0 enum="Mandelbrot" "Julia" endparam complex param manparamdraw caption="initial z" default=(0,0) visible=(@typedraw==0) endparam complex param julparamdraw caption="Julia parameter" default=(0.3,0.015) visible=(@typedraw==1) endparam int param niterdraw caption="# iterations" default=100 endparam complex param powerdraw caption="power" default=(2,0) endparam float param bailoutdraw caption="bailout" default=1000 endparam ; ; general ; heading caption="General parameters" endheading param pointtype caption="point type" default=0 enum="outside" "inside" "both" endparam int param sampfac caption="sampling factor" default=10 endparam bool param printsamp caption="print countdown" default=false endparam param rptype caption="random point type" default=0 enum="from zoom" "specify range" "circle" "rectangle" endparam complex param rpcenter caption="center" default=(0,0) visible=(@rptype>1) endparam float param rpscale caption="scale factor" default=1 visible=(@rptype>1) endparam float param rpthick caption="thickness" default=0 min=0 visible=(@rptype>1) endparam float param rpangle caption="angle, deg" default=45 visible=(@rptype=="rectangle") endparam param xrp caption="x range min, max" default=(-2,2) hint="Real part is xmin, imaginary is xmax" visible=(@rptype==1) endparam param yrp caption="y range min, max" default=(-1.5,1.5) hint="Real part is ymin, imaginary is ymax" visible=(@rptype==1) endparam int param seed caption="random seed" default=2357 endparam param scaletype caption="scaling type" default=0 enum="linear" "logarithmic" "tanh" endparam float param density caption="coloring density" default=1 endparam param solidbg caption="solid background" default=false endparam } super-mandelbrot { ; Kerry Mitchell 22dec08 ; ; for each pixel (c value), create a Julia set using random initial z values ; and color pixel by some characteristic of the Julia set, e.g. the number of ; iterations for which real(z) < imag(z) ; init: bool done=false complex c=(0,0) complex f=(0,0) complex fp=(0,0) complex lrscale=(0,0) complex zjulia=(0,0) complex zjulia_new=(0,0) float nout=0 float t=0 int ipoint=0 int iter=0 int seed=@initial_seed ; ; set up low resolution scale ; if(@low_res) if(@low_res_type=="polar - degrees") t=@low_res_degrees/180*#pi lrscale=@low_res_radius*(cos(t)+flip(sin(t))) elseif(@low_res_type=="polar - radians") t=@low_res_radians lrscale=@low_res_radius*(cos(t)+flip(sin(t))) else lrscale=@low_res_xy endif endif ; while(ipoint<@npoint) ipoint=ipoint+1 ; ; initialize Julia iteration ; iter=0 done=false c=#pixel zjulia=(0,0) ; ; find random initial Julia point ; if(@selection=="rectangle") seed=random(seed) zjulia=abs(seed)/#randomrange*(@xmax-@xmin)+@xmin seed=random(seed) t=abs(seed)/#randomrange*(@ymax-@ymin)+@ymin zjulia=zjulia+flip(t) elseif(@selection=="disk") done=false while(done==false) seed=random(seed) t=(abs(seed)/#randomrange*2-1)*@radius seed=random(seed) zjulia=(abs(seed)/#randomrange*2-1)*@radius+flip(t) if(cabs(zjulia)<=@radius) done=true zjulia=zjulia+@disk_center endif endwhile elseif(@selection=="segment") seed=random(seed) t=abs(seed)/#randomrange zjulia=(t*(@kmax-@kmin)+@kmin) endif ; ; pixel scaling ; if(@pixel_scale) zjulia=zjulia*#pixel endif ; ; low resolution ; if(@low_res) zjulia=round(zjulia*lrscale)/lrscale endif ; ; iterate Julia ; done=false while((iter<@niter)&&(done==false)) iter=iter+1 if(@function_type=="standard") zjulia_new=zjulia^@power+c elseif(@function_type=="exponential") zjulia_new=c*exp(@power*zjulia) elseif(@function_type=="Newton") fp=zjulia^(@power-1) f=zjulia*fp-c fp=@power*fp zjulia_new=zjulia-f/fp endif if(@test_type=="x < y") if(real(zjulia_new) t") if(cabs(zjulia_new)>atan2(zjulia_new)) nout=nout+1 endif elseif(@test_type=="larger") if(cabs(zjulia_new)>cabs(zjulia)) nout=nout+1 endif elseif(@test_type=="steeper") if(atan2(zjulia_new)>atan2(zjulia)) nout=nout+1 endif elseif(@test_type=="x positive") if(real(zjulia_new)>0) nout=nout+1 endif elseif(@test_type=="y negative") if(imag(zjulia_new)<0) nout=nout+1 endif elseif(@test_type=="inside circle") if(cabs(zjulia_new-@test_center)<@test_radius) nout=nout+1 endif endif ; ; check for bailout and update z ; if((@function_type=="standard")&&(|zjulia_new|>@bailout)) done=true elseif((@function_type=="exponential")&&(real(zjulia_new)>@bailout)) done=true elseif((@function_type=="Newton")&&(1/|zjulia_new-zjulia|>@bailout)) done=true endif zjulia=zjulia_new endwhile if(@test_type=="iterations") nout=nout+iter endif endwhile loop: final: ; ; set color index to proportion of hits ; #index=nout/@npoint/@niter default: title="Super Mandelbrot" ; ; general parameters ; heading caption="General parameters" endheading int param npoint caption="# points" default=100 endparam int param niter caption="# iterations" default=100 endparam ; ; Mandelbrot parameters ; heading caption="Mandelbrot parameters" endheading param function_type caption="function type" default=0 enum="standard" "exponential" "Newton" endparam complex param power caption="power" default=2 endparam float param bailout caption="bailout" default=1000 endparam ; ; random point selection ; heading caption="Random points" endheading param selection caption="type" default=0 enum="rectangle" "disk" "segment" endparam float param xmin caption="x min" default=-2 visible=(@selection=="rectangle") endparam float param xmax caption="x max" default=2 visible=(@selection=="rectangle") endparam float param ymin caption="y min" default=-1.5 visible=(@selection=="rectangle") endparam float param ymax caption="y max" default=1.5 visible=(@selection=="rectangle") endparam complex param disk_center caption="center" default=(0,0) visible=(@selection=="disk") endparam float param radius caption="radius" default=1 visible=(@selection=="disk") endparam complex param kmin caption="1st endpoint" default=(0,0) visible=(@selection=="segment") endparam complex param kmax caption="2nd endpoint" default=(2,0) visible=(@selection=="segment") endparam int param initial_seed caption="initial seed" default=2357 endparam bool param pixel_scale caption="pixel scale" default=false endparam ; ; test parameters ; heading caption="Test parameters" endheading param test_type caption="test type" default=0 enum="iterations" "x < y" "r > t" "larger" "steeper" "x positive" \ "y negative" "inside circle" endparam complex param test_center caption="center" default=(0,0) visible=(@test_type=="inside circle") endparam float param test_radius caption="radius" default=1 visible=(@test_type=="inside circle") endparam ; ; low resolution parameters ; heading caption="Low resolution parameters" endheading bool param low_res caption="low resolution" default=false endparam param low_res_type caption="type" default=2 enum="polar - degrees" "polar - radians" "x, y" visible=(@low_res==true) endparam float param low_res_radius caption="radius" default=16 visible=((@low_res==true)&&(@low_res_type!="x, y")) endparam float param low_res_degrees caption="degrees" default=45 visible=((@low_res==true)&&(@low_res_type=="polar - degrees")) endparam float param low_res_radians caption="radians" default=1 visible=((@low_res==true)&&(@low_res_type=="polar - radians")) endparam complex param low_res_xy caption="scale" default=32 visible=((@low_res==true)&&(@low_res_type=="x, y")) endparam } karakusa-ellipses { ; Kerry Mitchell 27feb2009 ; ; Colors by placing up to 10 different user-defined square tiles on the plane. ; The tiles contain up to 10 different elliptical arcs. ; See the tutorial page for more information. ; $define debug global: complex center[10,10] complex tempcenter=(0,0) float asemi[10,10] ; horizontal semi-axis float bsemi[10,10] ; vertical semi-axis float eps=1e-12 ; small float halfthick=@thick/2 float power[10,10] ; "elliptical" power float tempa=0 float tempb=0 float temppower=0 float weight[11] float weighttotal=0 int draw[10,10] int gi=0 int gj=0 int modbase=2147483647 int multiplier=16807 int nellip[10] int nswap=0 int tempdraw=0 ; ; set up ellipses ; ; tile 1 ; nellip[0]=@nt1 ; ; tile 1, ellipse 1 ; asemi[0,0]=@at1e1 bsemi[0,0]=@bt1e1 center[0,0]=@centert1e1 power[0,0]=@powert1e1 draw[0,0]=@drawt1e1 ; ; tile 1, ellipse 2 ; asemi[0,1]=@at1e2 bsemi[0,1]=@bt1e2 center[0,1]=@centert1e2 power[0,1]=@powert1e2 draw[0,1]=@drawt1e2 ; ; tile 1, ellipse 3 ; asemi[0,2]=@at1e3 bsemi[0,2]=@bt1e3 center[0,2]=@centert1e3 power[0,2]=@powert1e3 draw[0,2]=@drawt1e3 ; ; tile 1, ellipse 4 ; asemi[0,3]=@at1e4 bsemi[0,3]=@bt1e4 center[0,3]=@centert1e4 power[0,3]=@powert1e4 draw[0,3]=@drawt1e4 ; ; tile 1, ellipse 5 ; asemi[0,4]=@at1e5 bsemi[0,4]=@bt1e5 center[0,4]=@centert1e5 power[0,4]=@powert1e5 draw[0,4]=@drawt1e5 ; ; tile 1, ellipse 6 ; asemi[0,5]=@at1e6 bsemi[0,5]=@bt1e6 center[0,5]=@centert1e6 power[0,5]=@powert1e6 draw[0,5]=@drawt1e6 ; ; tile 1, ellipse 7 ; asemi[0,6]=@at1e7 bsemi[0,6]=@bt1e7 center[0,6]=@centert1e7 power[0,6]=@powert1e7 draw[0,6]=@drawt1e7 ; ; tile 1, ellipse 8 ; asemi[0,7]=@at1e8 bsemi[0,7]=@bt1e8 center[0,7]=@centert1e8 power[0,7]=@powert1e8 draw[0,7]=@drawt1e8 ; ; tile 1, ellipse 9 ; asemi[0,8]=@at1e9 bsemi[0,8]=@bt1e9 center[0,8]=@centert1e9 power[0,8]=@powert1e9 draw[0,8]=@drawt1e9 ; ; tile 1, ellipse 10 ; asemi[0,9]=@at1e10 bsemi[0,9]=@bt1e10 center[0,9]=@centert1e10 power[0,9]=@powert1e10 draw[0,9]=@drawt1e10 ; ; tile 2 ; nellip[1]=@nt2 ; ; tile 2, ellipse 1 ; asemi[1,0]=@at2e1 bsemi[1,0]=@bt2e1 center[1,0]=@centert2e1 power[1,0]=@powert2e1 draw[1,0]=@drawt2e1 ; ; tile 2, ellipse 2 ; asemi[1,1]=@at2e2 bsemi[1,1]=@bt2e2 center[1,1]=@centert2e2 power[1,1]=@powert2e2 draw[1,1]=@drawt2e2 ; ; tile 2, ellipse 3 ; asemi[1,2]=@at2e3 bsemi[1,2]=@bt2e3 center[1,2]=@centert2e3 power[1,2]=@powert2e3 draw[1,2]=@drawt2e3 ; ; tile 2, ellipse 4 ; asemi[1,3]=@at2e4 bsemi[1,3]=@bt2e4 center[1,3]=@centert2e4 power[1,3]=@powert2e4 draw[1,3]=@drawt2e4 ; ; tile 2, ellipse 5 ; asemi[1,4]=@at2e5 bsemi[1,4]=@bt2e5 center[1,4]=@centert2e5 power[1,4]=@powert2e5 draw[1,4]=@drawt2e5 ; ; tile 2, ellipse 6 ; asemi[1,5]=@at2e6 bsemi[1,5]=@bt2e6 center[1,5]=@centert2e6 power[1,5]=@powert2e6 draw[1,5]=@drawt2e6 ; ; tile 2, ellipse 7 ; asemi[1,6]=@at2e7 bsemi[1,6]=@bt2e7 center[1,6]=@centert2e7 power[1,6]=@powert2e7 draw[1,6]=@drawt2e7 ; ; tile 2, ellipse 8 ; asemi[1,7]=@at2e8 bsemi[1,7]=@bt2e8 center[1,7]=@centert2e8 power[1,7]=@powert2e8 draw[1,7]=@drawt2e8 ; ; tile 2, ellipse 9 ; asemi[1,8]=@at2e9 bsemi[1,8]=@bt2e9 center[1,8]=@centert2e9 power[1,8]=@powert2e9 draw[1,8]=@drawt2e9 ; ; tile 2, ellipse 10 ; asemi[1,9]=@at2e10 bsemi[1,9]=@bt2e10 center[1,9]=@centert2e10 power[1,9]=@powert2e10 draw[1,9]=@drawt2e10 ; ; tile 3 ; nellip[2]=@nt3 ; ; tile 3, ellipse 1 ; asemi[2,0]=@at3e1 bsemi[2,0]=@bt3e1 center[2,0]=@centert3e1 power[2,0]=@powert3e1 draw[2,0]=@drawt3e1 ; ; tile 3, ellipse 2 ; asemi[2,1]=@at3e2 bsemi[2,1]=@bt3e2 center[2,1]=@centert3e2 power[2,1]=@powert3e2 draw[2,1]=@drawt3e2 ; ; tile 3, ellipse 3 ; asemi[2,2]=@at3e3 bsemi[2,2]=@bt3e3 center[2,2]=@centert3e3 power[2,2]=@powert3e3 draw[2,2]=@drawt3e3 ; ; tile 3, ellipse 4 ; asemi[2,3]=@at3e4 bsemi[2,3]=@bt3e4 center[2,3]=@centert3e4 power[2,3]=@powert3e4 draw[2,3]=@drawt3e4 ; ; tile 3, ellipse 5 ; asemi[2,4]=@at3e5 bsemi[2,4]=@bt3e5 center[2,4]=@centert3e5 power[2,4]=@powert3e5 draw[2,4]=@drawt3e5 ; ; tile 3, ellipse 6 ; asemi[2,5]=@at3e6 bsemi[2,5]=@bt3e6 center[2,5]=@centert3e6 power[2,5]=@powert3e6 draw[2,5]=@drawt3e6 ; ; tile 3, ellipse 7 ; asemi[2,6]=@at3e7 bsemi[2,6]=@bt3e7 center[2,6]=@centert3e7 power[2,6]=@powert3e7 draw[2,6]=@drawt3e7 ; ; tile 3, ellipse 8 ; asemi[2,7]=@at3e8 bsemi[2,7]=@bt3e8 center[2,7]=@centert3e8 power[2,7]=@powert3e8 draw[2,7]=@drawt3e8 ; ; tile 3, ellipse 9 ; asemi[2,8]=@at3e9 bsemi[2,8]=@bt3e9 center[2,8]=@centert3e9 power[2,8]=@powert3e9 draw[2,8]=@drawt3e9 ; ; tile 3, ellipse 10 ; asemi[2,9]=@at3e10 bsemi[2,9]=@bt3e10 center[2,9]=@centert3e10 power[2,9]=@powert3e10 draw[2,9]=@drawt3e10 ; ; tile 4 ; nellip[3]=@nt4 ; ; tile 4, ellipse 1 ; asemi[3,0]=@at4e1 bsemi[3,0]=@bt4e1 center[3,0]=@centert4e1 power[3,0]=@powert4e1 draw[3,0]=@drawt4e1 ; ; tile 4, ellipse 2 ; asemi[3,1]=@at4e2 bsemi[3,1]=@bt4e2 center[3,1]=@centert4e2 power[3,1]=@powert4e2 draw[3,1]=@drawt4e2 ; ; tile 4, ellipse 3 ; asemi[3,2]=@at4e3 bsemi[3,2]=@bt4e3 center[3,2]=@centert4e3 power[3,2]=@powert4e3 draw[3,2]=@drawt4e3 ; ; tile 4, ellipse 4 ; asemi[3,3]=@at4e4 bsemi[3,3]=@bt4e4 center[3,3]=@centert4e4 power[3,3]=@powert4e4 draw[3,3]=@drawt4e4 ; ; tile 4, ellipse 5 ; asemi[3,4]=@at4e5 bsemi[3,4]=@bt4e5 center[3,4]=@centert4e5 power[3,4]=@powert4e5 draw[3,4]=@drawt4e5 ; ; tile 4, ellipse 6 ; asemi[3,5]=@at4e6 bsemi[3,5]=@bt4e6 center[3,5]=@centert4e6 power[3,5]=@powert4e6 draw[3,5]=@drawt4e6 ; ; tile 4, ellipse 7 ; asemi[3,6]=@at4e7 bsemi[3,6]=@bt4e7 center[3,6]=@centert4e7 power[3,6]=@powert4e7 draw[3,6]=@drawt4e7 ; ; tile 4, ellipse 8 ; asemi[3,7]=@at4e8 bsemi[3,7]=@bt4e8 center[3,7]=@centert4e8 power[3,7]=@powert4e8 draw[3,7]=@drawt4e8 ; ; tile 4, ellipse 9 ; asemi[3,8]=@at4e9 bsemi[3,8]=@bt4e9 center[3,8]=@centert4e9 power[3,8]=@powert4e9 draw[3,8]=@drawt4e9 ; ; tile 4, ellipse 10 ; asemi[3,9]=@at4e10 bsemi[3,9]=@bt4e10 center[3,9]=@centert4e10 power[3,9]=@powert4e10 draw[3,9]=@drawt4e10 ; ; tile 5 ; nellip[4]=@nt5 ; ; tile 5, ellipse 1 ; asemi[4,0]=@at5e1 bsemi[4,0]=@bt5e1 center[4,0]=@centert5e1 power[4,0]=@powert5e1 draw[4,0]=@drawt5e1 ; ; tile 5, ellipse 2 ; asemi[4,1]=@at5e2 bsemi[4,1]=@bt5e2 center[4,1]=@centert5e2 power[4,1]=@powert5e2 draw[4,1]=@drawt5e2 ; ; tile 5, ellipse 3 ; asemi[4,2]=@at5e3 bsemi[4,2]=@bt5e3 center[4,2]=@centert5e3 power[4,2]=@powert5e3 draw[4,2]=@drawt5e3 ; ; tile 5, ellipse 4 ; asemi[4,3]=@at5e4 bsemi[4,3]=@bt5e4 center[4,3]=@centert5e4 power[4,3]=@powert5e4 draw[4,3]=@drawt5e4 ; ; tile 5, ellipse 5 ; asemi[4,4]=@at5e5 bsemi[4,4]=@bt5e5 center[4,4]=@centert5e5 power[4,4]=@powert5e5 draw[4,4]=@drawt5e5 ; ; tile 5, ellipse 6 ; asemi[4,5]=@at5e6 bsemi[4,5]=@bt5e6 center[4,5]=@centert5e6 power[4,5]=@powert5e6 draw[4,5]=@drawt5e6 ; ; tile 5, ellipse 7 ; asemi[4,6]=@at5e7 bsemi[4,6]=@bt5e7 center[4,6]=@centert5e7 power[4,6]=@powert5e7 draw[4,6]=@drawt5e7 ; ; tile 5, ellipse 8 ; asemi[4,7]=@at5e8 bsemi[4,7]=@bt5e8 center[4,7]=@centert5e8 power[4,7]=@powert5e8 draw[4,7]=@drawt5e8 ; ; tile 5, ellipse 9 ; asemi[4,8]=@at5e9 bsemi[4,8]=@bt5e9 center[4,8]=@centert5e9 power[4,8]=@powert5e9 draw[4,8]=@drawt5e9 ; ; tile 5, ellipse 10 ; asemi[4,9]=@at5e10 bsemi[4,9]=@bt5e10 center[4,9]=@centert5e10 power[4,9]=@powert5e10 draw[4,9]=@drawt5e10 ; ; tile 6 ; nellip[5]=@nt6 ; ; tile 6, ellipse 1 ; asemi[5,0]=@at6e1 bsemi[5,0]=@bt6e1 center[5,0]=@centert6e1 power[5,0]=@powert6e1 draw[5,0]=@drawt6e1 ; ; tile 6, ellipse 2 ; asemi[5,1]=@at6e2 bsemi[5,1]=@bt6e2 center[5,1]=@centert6e2 power[5,1]=@powert6e2 draw[5,1]=@drawt6e2 ; ; tile 6, ellipse 3 ; asemi[5,2]=@at6e3 bsemi[5,2]=@bt6e3 center[5,2]=@centert6e3 power[5,2]=@powert6e3 draw[5,2]=@drawt6e3 ; ; tile 6, ellipse 4 ; asemi[5,3]=@at6e4 bsemi[5,3]=@bt6e4 center[5,3]=@centert6e4 power[5,3]=@powert6e4 draw[5,3]=@drawt6e4 ; ; tile 6, ellipse 5 ; asemi[5,4]=@at6e5 bsemi[5,4]=@bt6e5 center[5,4]=@centert6e5 power[5,4]=@powert6e5 draw[5,4]=@drawt6e5 ; ; tile 6, ellipse 6 ; asemi[5,5]=@at6e6 bsemi[5,5]=@bt6e6 center[5,5]=@centert6e6 power[5,5]=@powert6e6 draw[5,5]=@drawt6e6 ; ; tile 6, ellipse 7 ; asemi[5,6]=@at6e7 bsemi[5,6]=@bt6e7 center[5,6]=@centert6e7 power[5,6]=@powert6e7 draw[5,6]=@drawt6e7 ; ; tile 6, ellipse 8 ; asemi[5,7]=@at6e8 bsemi[5,7]=@bt6e8 center[5,7]=@centert6e8 power[5,7]=@powert6e8 draw[5,7]=@drawt6e8 ; ; tile 6, ellipse 9 ; asemi[5,8]=@at6e9 bsemi[5,8]=@bt6e9 center[5,8]=@centert6e9 power[5,8]=@powert6e9 draw[5,8]=@drawt6e9 ; ; tile 6, ellipse 10 ; asemi[5,9]=@at6e10 bsemi[5,9]=@bt6e10 center[5,9]=@centert6e10 power[5,9]=@powert6e10 draw[5,9]=@drawt6e10 ; ; tile 7 ; nellip[6]=@nt7 ; ; tile 7, ellipse 1 ; asemi[6,0]=@at7e1 bsemi[6,0]=@bt7e1 center[6,0]=@centert7e1 power[6,0]=@powert7e1 draw[6,0]=@drawt7e1 ; ; tile 7, ellipse 2 ; asemi[6,1]=@at7e2 bsemi[6,1]=@bt7e2 center[6,1]=@centert7e2 power[6,1]=@powert7e2 draw[6,1]=@drawt7e2 ; ; tile 7, ellipse 3 ; asemi[6,2]=@at7e3 bsemi[6,2]=@bt7e3 center[6,2]=@centert7e3 power[6,2]=@powert7e3 draw[6,2]=@drawt7e3 ; ; tile 7, ellipse 4 ; asemi[6,3]=@at7e4 bsemi[6,3]=@bt7e4 center[6,3]=@centert7e4 power[6,3]=@powert7e4 draw[6,3]=@drawt7e4 ; ; tile 7, ellipse 5 ; asemi[6,4]=@at7e5 bsemi[6,4]=@bt7e5 center[6,4]=@centert7e5 power[6,4]=@powert7e5 draw[6,4]=@drawt7e5 ; ; tile 7, ellipse 6 ; asemi[6,5]=@at7e6 bsemi[6,5]=@bt7e6 center[6,5]=@centert7e6 power[6,5]=@powert7e6 draw[6,5]=@drawt7e6 ; ; tile 7, ellipse 7 ; asemi[6,6]=@at7e7 bsemi[6,6]=@bt7e7 center[6,6]=@centert7e7 power[6,6]=@powert7e7 draw[6,6]=@drawt7e7 ; ; tile 7, ellipse 8 ; asemi[6,7]=@at7e8 bsemi[6,7]=@bt7e8 center[6,7]=@centert7e8 power[6,7]=@powert7e8 draw[6,7]=@drawt7e8 ; ; tile 7, ellipse 9 ; asemi[6,8]=@at7e9 bsemi[6,8]=@bt7e9 center[6,8]=@centert7e9 power[6,8]=@powert7e9 draw[6,8]=@drawt7e9 ; ; tile 7, ellipse 10 ; asemi[6,9]=@at7e10 bsemi[6,9]=@bt7e10 center[6,9]=@centert7e10 power[6,9]=@powert7e10 draw[6,9]=@drawt7e10 ; ; tile 8 ; nellip[7]=@nt8 ; ; tile 8, ellipse 1 ; asemi[7,0]=@at8e1 bsemi[7,0]=@bt8e1 center[7,0]=@centert8e1 power[7,0]=@powert8e1 draw[7,0]=@drawt8e1 ; ; tile 8, ellipse 2 ; asemi[7,1]=@at8e2 bsemi[7,1]=@bt8e2 center[7,1]=@centert8e2 power[7,1]=@powert8e2 draw[7,1]=@drawt8e3 ; ; tile 8, ellipse 3 ; asemi[7,2]=@at8e3 bsemi[7,2]=@bt8e3 center[7,2]=@centert8e3 power[7,2]=@powert8e3 draw[7,2]=@drawt8e3 ; ; tile 8, ellipse 4 ; asemi[7,3]=@at8e4 bsemi[7,3]=@bt8e4 center[7,3]=@centert8e4 power[7,3]=@powert8e4 draw[7,3]=@drawt8e4 ; ; tile 8, ellipse 5 ; asemi[7,4]=@at8e5 bsemi[7,4]=@bt8e5 center[7,4]=@centert8e5 power[7,4]=@powert8e5 draw[7,4]=@drawt8e5 ; ; tile 8, ellipse 6 ; asemi[7,5]=@at8e6 bsemi[7,5]=@bt8e6 center[7,5]=@centert8e6 power[7,5]=@powert8e6 draw[7,5]=@drawt8e6 ; ; tile 8, ellipse 7 ; asemi[7,6]=@at8e7 bsemi[7,6]=@bt8e7 center[7,6]=@centert8e7 power[7,6]=@powert8e7 draw[7,6]=@drawt8e7 ; ; tile 8, ellipse 8 ; asemi[7,7]=@at8e8 bsemi[7,7]=@bt8e8 center[7,7]=@centert8e8 power[7,7]=@powert8e8 draw[7,7]=@drawt8e8 ; ; tile 8, ellipse 9 ; asemi[7,8]=@at8e9 bsemi[7,8]=@bt8e9 center[7,8]=@centert8e9 power[7,8]=@powert8e9 draw[7,8]=@drawt8e9 ; ; tile 8, ellipse 10 ; asemi[7,9]=@at8e10 bsemi[7,9]=@bt8e10 center[7,9]=@centert8e10 power[7,9]=@powert8e10 draw[7,9]=@drawt8e10 ; ; tile 9 ; nellip[8]=@nt9 ; ; tile 9, ellipse 1 ; asemi[8,0]=@at9e1 bsemi[8,0]=@bt9e1 center[8,0]=@centert9e1 power[8,0]=@powert9e1 draw[8,0]=@drawt9e1 ; ; tile 9, ellipse 2 ; asemi[8,1]=@at9e2 bsemi[8,1]=@bt9e2 center[8,1]=@centert9e2 power[8,1]=@powert9e2 draw[8,1]=@drawt9e2 ; ; tile 9, ellipse 3 ; asemi[8,2]=@at9e3 bsemi[8,2]=@bt9e3 center[8,2]=@centert9e3 power[8,2]=@powert9e3 draw[8,2]=@drawt9e3 ; ; tile 9, ellipse 4 ; asemi[8,3]=@at9e4 bsemi[8,3]=@bt9e4 center[8,3]=@centert9e4 power[8,3]=@powert9e4 draw[8,3]=@drawt9e4 ; ; tile 9, ellipse 5 ; asemi[8,4]=@at9e5 bsemi[8,4]=@bt9e5 center[8,4]=@centert9e5 power[8,4]=@powert9e5 draw[8,4]=@drawt9e5 ; ; tile 9, ellipse 6 ; asemi[8,5]=@at9e6 bsemi[8,5]=@bt9e6 center[8,5]=@centert9e6 power[8,5]=@powert9e6 draw[8,5]=@drawt9e6 ; ; tile 9, ellipse 7 ; asemi[8,6]=@at9e7 bsemi[8,6]=@bt9e7 center[8,6]=@centert9e7 power[8,6]=@powert9e7 draw[8,6]=@drawt9e7 ; ; tile 9, ellipse 8 ; asemi[8,7]=@at9e8 bsemi[8,7]=@bt9e8 center[8,7]=@centert9e8 power[8,7]=@powert9e8 draw[8,7]=@drawt9e8 ; ; tile 9, ellipse 9 ; asemi[8,8]=@at9e9 bsemi[8,8]=@bt9e9 center[8,8]=@centert9e9 power[8,8]=@powert9e9 draw[8,8]=@drawt9e9 ; ; tile 9, ellipse 10 ; asemi[8,9]=@at9e10 bsemi[8,9]=@bt9e10 center[8,9]=@centert9e10 power[8,9]=@powert9e10 draw[8,9]=@drawt9e10 ; ; tile 10 ; nellip[9]=@nt10 ; ; tile 10, ellipse 1 ; asemi[9,0]=@at10e1 bsemi[9,0]=@bt10e1 center[9,0]=@centert10e1 power[9,0]=@powert10e1 draw[9,0]=@drawt10e1 ; ; tile 10, ellipse 2 ; asemi[9,1]=@at10e2 bsemi[9,1]=@bt10e2 center[9,1]=@centert10e2 power[9,1]=@powert10e2 draw[9,1]=@drawt10e2 ; ; tile 10, ellipse 3 ; asemi[9,2]=@at10e3 bsemi[9,2]=@bt10e3 center[9,2]=@centert10e3 power[9,2]=@powert10e3 draw[9,2]=@drawt10e3 ; ; tile 10, ellipse 4 ; asemi[9,3]=@at10e4 bsemi[9,3]=@bt10e4 center[9,3]=@centert10e4 power[9,3]=@powert10e4 draw[9,3]=@drawt10e4 ; ; tile 10, ellipse 5 ; asemi[9,4]=@at10e5 bsemi[9,4]=@bt10e5 center[9,4]=@centert10e5 power[9,4]=@powert10e5 draw[9,4]=@drawt10e5 ; ; tile 10, ellipse 6 ; asemi[9,5]=@at10e6 bsemi[9,5]=@bt10e6 center[9,5]=@centert10e6 power[9,5]=@powert10e6 draw[9,5]=@drawt10e6 ; ; tile 10, ellipse 7 ; asemi[9,6]=@at10e7 bsemi[9,6]=@bt10e7 center[9,6]=@centert10e7 power[9,6]=@powert10e7 draw[9,6]=@drawt10e7 ; ; tile 10, ellipse 8 ; asemi[9,7]=@at10e8 bsemi[9,7]=@bt10e8 center[9,7]=@centert10e8 power[9,7]=@powert10e8 draw[9,7]=@drawt10e8 ; ; tile 10, ellipse 9 ; asemi[9,8]=@at10e9 bsemi[9,8]=@bt10e9 center[9,8]=@centert10e9 power[9,8]=@powert10e9 draw[9,8]=@drawt10e9 ; ; tile 10, ellipse 10 ; asemi[9,9]=@at10e10 bsemi[9,9]=@bt10e10 center[9,9]=@centert10e10 power[9,9]=@powert10e10 draw[9,9]=@drawt10e10 ; ; sort ellipses by drawing order for each tile ; gi=-1 while(gi<(@ntile-1)) gi=gi+1 nswap=10 while(nswap>0) nswap=0 gj=0 while(gj<(nellip[gi]-1)) gj=gj+1 if(draw[gi,gj-1]>draw[gi,gj]) nswap=nswap+1 tempdraw=draw[gi,gj-1] tempa=asemi[gi,gj-1] tempb=bsemi[gi,gj-1] tempcenter=center[gi,gj-1] temppower=power[gi,gj-1] draw[gi,gj-1]=draw[gi,gj] asemi[gi,gj-1]=asemi[gi,gj] bsemi[gi,gj-1]=bsemi[gi,gj] center[gi,gj-1]=center[gi,gj] power[gi,gj-1]=power[gi,gj] draw[gi,gj]=tempdraw asemi[gi,gj]=tempa bsemi[gi,gj]=tempb center[gi,gj]=tempcenter power[gi,gj]=temppower endif endwhile endwhile endwhile ; ; weights for random tiles ; if(@random_tile) weight[0]=0 weight[1]=@wt1 weight[2]=@wt2 weight[3]=@wt3 weight[4]=@wt4 weight[5]=@wt5 weight[6]=@wt6 weight[7]=@wt7 weight[8]=@wt8 weight[9]=@wt9 weight[10]=@wt10 gi=0 weighttotal=0 while(gi<@ntile) gi=gi+1 weighttotal=weighttotal+weight[gi] weight[gi]=weighttotal endwhile gi=0 while(gi<@ntile) gi=gi+1 weight[gi]=weight[gi]/weighttotal endwhile endif init: complex pixel_trans=(0,0) float an=0 float bn=0 float err=0 float rin=0 float rn=0 float rout=0 float tn=0 float tnhigh=0 float tnlow=0 float x=0 float xn=0 float y=0 float yn=0 int i=0 int inewt=0 int j=0 int m=0 int n=0 int nnewt=30 int seed=@initial_seed seed=2*seed+1 loop: final: pixel_trans=#pixel-trunc(#pixel) ; ; random number for this square ; m=trunc(real(#pixel)) n=trunc(imag(#pixel)) i=0 while(i=weight[j-1])&&(err<=weight[j])) i=j-1 endif endwhile else i=@which_tile-1 endif ; ; check ellipses for given tile ; j=-1 while(j<(nellip[i]-1)) j=j+1 xn=x-real(center[i,j]) yn=y-imag(center[i,j]) an=asemi[i,j]-halfthick bn=bsemi[i,j]-halfthick rin=(abs(xn/an)^power[i,j]+abs(yn/bn)^power[i,j])^(1/power[i,j]) an=asemi[i,j]+halfthick bn=bsemi[i,j]+halfthick rout=(abs(xn/an)^power[i,j]+abs(yn/bn)^power[i,j])^(1/power[i,j]) if((rin>=1)&&(rout<=1)) #solid=false ; ; Find effective thickness of ellipse containing (x, y) ; tnhigh=-halfthick tnlow=halfthick inewt=0 err=1e12 while((inewteps)) inewt=inewt+1 tn=(tnlow+tnhigh)/2 an=asemi[i,j]+tn bn=bsemi[i,j]+tn rn=(abs(xn/an)^power[i,j]+abs(yn/bn)^power[i,j])^(1/power[i,j]) err=rn-1 if(rn<1) tnlow=tn elseif(rn>1) tnhigh=tn endif endwhile #index=abs(tn)/halfthick endif endwhile ; close ellipse loop default: title="Karakusa Ellipses" ; ; general parameters ; heading text="This is a tiling coloring, based loosely on the art of Asao Tokolo. \ You can specify up to 10 tiles, each with up to 10 'elliptical' arcs." endheading heading caption="General parameters" endheading int param ntile caption="# tiles" default=1 min=1 max=10 endparam bool param random_tile caption="random tile" default=false visible=(@ntile>1) endparam int param which_tile caption="which tile" default=1 min=1 max=10 visible=((@random_tile==false)&&(@ntile>1)) endparam param rotate caption="rotate" default=0 enum="none" "90 degrees" "180 degrees" "270 degrees" "random" endparam param flip caption="flip" default=0 enum="none" "horizontal" "vertical" "both" "random" endparam float param thick caption="thickness" default=0.1 endparam int param initial_seed caption="random number seed" default=235711 min=1 endparam ; ; tile 1 ; heading caption="tile 1" text="For each tile, specify the number of ellipses and the parameters for \ each ellipse." endheading int param nt1 caption="# ellipses" default=2 min=1 max=10 endparam float param wt1 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=(@random_tile==true) endparam ; ; tile 1, ellipse 1 ; heading caption=" tile 1, ellipse 1" endheading complex param centert1e1 caption="center" default=(0,0) endparam float param at1e1 caption="horizontal axis" default=0.5 min=0 endparam float param bt1e1 caption="vertical axis" default=0.5 min=0 endparam float param powert1e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." endparam int param drawt1e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" endparam ; ; tile 1, ellipse 2 ; heading caption=" tile 1, ellipse 2" visible=(@nt1>1) endheading complex param centert1e2 caption="center" default=(1,1) visible=(@nt1>1) endparam float param at1e2 caption="horizontal axis" default=0.5 min=0 visible=(@nt1>1) endparam float param bt1e2 caption="vertical axis" default=0.5 min=0 visible=(@nt1>1) endparam float param powert1e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>1) endparam int param drawt1e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>1) endparam ; ; tile 1, ellipse 3 ; heading caption=" tile 1, ellipse 3" visible=(@nt1>2) endheading complex param centert1e3 caption="center" default=(0,0) visible=(@nt1>2) endparam float param at1e3 caption="horizontal axis" default=0 min=0 visible=(@nt1>2) endparam float param bt1e3 caption="vertical axis" default=0 min=0 visible=(@nt1>2) endparam float param powert1e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>2) endparam int param drawt1e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>2) endparam ; ; tile 1, ellipse 4 ; heading caption=" tile 1, ellipse 4" visible=(@nt1>3) endheading complex param centert1e4 caption="center" default=(0,0) visible=(@nt1>3) endparam float param at1e4 caption="horizontal axis" default=0 min=0 visible=(@nt1>3) endparam float param bt1e4 caption="vertical axis" default=0 min=0 visible=(@nt1>3) endparam float param powert1e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>3) endparam int param drawt1e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>3) endparam ; ; tile 1, ellipse 5 ; heading caption=" tile 1, ellipse 5" visible=(@nt1>4) endheading complex param centert1e5 caption="center" default=(0,0) visible=(@nt1>4) endparam float param at1e5 caption="horizontal axis" default=0 min=0 visible=(@nt1>4) endparam float param bt1e5 caption="vertical axis" default=0 min=0 visible=(@nt1>4) endparam float param powert1e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>4) endparam int param drawt1e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>4) endparam ; ; tile 1, ellipse 6 ; heading caption=" tile 1, ellipse 6" visible=(@nt1>5) endheading complex param centert1e6 caption="center" default=(0,0) visible=(@nt1>5) endparam float param at1e6 caption="horizontal axis" default=0 min=0 visible=(@nt1>5) endparam float param bt1e6 caption="vertical axis" default=0 min=0 visible=(@nt1>5) endparam float param powert1e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>5) endparam int param drawt1e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>5) endparam ; ; tile 1, ellipse 7 ; heading caption=" tile 1, ellipse 7" visible=(@nt1>6) endheading complex param centert1e7 caption="center" default=(0,0) visible=(@nt1>6) endparam float param at1e7 caption="horizontal axis" default=0 min=0 visible=(@nt1>6) endparam float param bt1e7 caption="vertical axis" default=0 min=0 visible=(@nt1>6) endparam float param powert1e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>6) endparam int param drawt1e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>6) endparam ; ; tile 1, ellipse 8 ; heading caption=" tile 1, ellipse 8" visible=(@nt1>7) endheading complex param centert1e8 caption="center" default=(0,0) visible=(@nt1>7) endparam float param at1e8 caption="horizontal axis" default=0 min=0 visible=(@nt1>7) endparam float param bt1e8 caption="vertical axis" default=0 min=0 visible=(@nt1>7) endparam float param powert1e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>7) endparam int param drawt1e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>7) endparam ; ; tile 1, ellipse 9 ; heading caption=" tile 1, ellipse 9" visible=(@nt1>8) endheading complex param centert1e9 caption="center" default=(0,0) visible=(@nt1>8) endparam float param at1e9 caption="horizontal axis" default=0 min=0 visible=(@nt1>8) endparam float param bt1e9 caption="vertical axis" default=0 min=0 visible=(@nt1>8) endparam float param powert1e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>8) endparam int param drawt1e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>8) endparam ; ; tile 1, ellipse 10 ; heading caption=" tile 1, ellipse 10" visible=(@nt1>9) endheading complex param centert1e10 caption="center" default=(0,0) visible=(@nt1>9) endparam float param at1e10 caption="horizontal axis" default=0 min=0 visible=(@nt1>9) endparam float param bt1e10 caption="vertical axis" default=0 min=0 visible=(@nt1>9) endparam float param powert1e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@nt1>9) endparam int param drawt1e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@nt1>9) endparam ; ; tile 2 ; heading caption="tile 2" visible=(@ntile>1) endheading int param nt2 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>1) endparam float param wt2 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>1)&&(@random_tile==true)) endparam ; ; tile 2, ellipse 1 ; heading caption=" tile 2, ellipse 1" visible=(@ntile>1) endheading complex param centert2e1 caption="center" default=(0,0) visible=(@ntile>1) endparam float param at2e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>1) endparam float param bt2e1 caption="vertical axis" default=0 min=0 visible=(@ntile>1) endparam float param powert2e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>1) endparam int param drawt2e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>1) endparam ; ; tile 2, ellipse 2 ; heading caption=" tile 2, ellipse 2" visible=((@ntile>1)&&(@nt2>1)) endheading complex param centert2e2 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>1)) endparam float param at2e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>1)) endparam float param bt2e2 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>1)) endparam float param powert2e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>1)) endparam int param drawt2e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>1)) endparam ; ; tile 2, ellipse 3 ; heading caption=" tile 2, ellipse 3" visible=((@ntile>1)&&(@nt2>2)) endheading complex param centert2e3 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>2)) endparam float param at2e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>2)) endparam float param bt2e3 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>2)) endparam float param powert2e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>2)) endparam int param drawt2e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>2)) endparam ; ; tile 2, ellipse 4 ; heading caption=" tile 2, ellipse 4" visible=((@ntile>1)&&(@nt2>3)) endheading complex param centert2e4 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>3)) endparam float param at2e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>3)) endparam float param bt2e4 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>3)) endparam float param powert2e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>3)) endparam int param drawt2e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>3)) endparam ; ; tile 2, ellipse 5 ; heading caption=" tile 2, ellipse 5" visible=((@ntile>1)&&(@nt2>4)) endheading complex param centert2e5 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>4)) endparam float param at2e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>4)) endparam float param bt2e5 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>4)) endparam float param powert2e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>4)) endparam int param drawt2e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>4)) endparam ; ; tile 2, ellipse 6 ; heading caption=" tile 2, ellipse 6" visible=((@ntile>1)&&(@nt2>5)) endheading complex param centert2e6 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>5)) endparam float param at2e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>5)) endparam float param bt2e6 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>5)) endparam float param powert2e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>5)) endparam int param drawt2e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>5)) endparam ; ; tile 2, ellipse 7 ; heading caption=" tile 2, ellipse 7" visible=((@ntile>1)&&(@nt2>6)) endheading complex param centert2e7 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>6)) endparam float param at2e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>6)) endparam float param bt2e7 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>6)) endparam float param powert2e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>6)) endparam int param drawt2e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>6)) endparam ; ; tile 2, ellipse 8 ; heading caption=" tile 2, ellipse 8" visible=((@ntile>1)&&(@nt2>7)) endheading complex param centert2e8 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>7)) endparam float param at2e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>7)) endparam float param bt2e8 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>7)) endparam float param powert2e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>7)) endparam int param drawt2e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>7)) endparam ; ; tile 2, ellipse 9 ; heading caption=" tile 2, ellipse 9" visible=((@ntile>1)&&(@nt2>8)) endheading complex param centert2e9 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>8)) endparam float param at2e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>8)) endparam float param bt2e9 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>8)) endparam float param powert2e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>8)) endparam int param drawt2e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>8)) endparam ; ; tile 2, ellipse 10 ; heading caption=" tile 2, ellipse 10" visible=((@ntile>1)&&(@nt2>9)) endheading complex param centert2e10 caption="center" default=(0,0) visible=((@ntile>1)&&(@nt2>9)) endparam float param at2e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>9)) endparam float param bt2e10 caption="vertical axis" default=0 min=0 visible=((@ntile>1)&&(@nt2>9)) endparam float param powert2e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>1)&&(@nt2>9)) endparam int param drawt2e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>1)&&(@nt2>9)) endparam ; ; tile 3 ; heading caption="tile 3" visible=(@ntile>2) endheading int param nt3 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>2) endparam float param wt3 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>2)&&(@random_tile==true)) endparam ; ; tile 3, ellipse 1 ; heading caption=" tile 3, ellipse 1" visible=(@ntile>2) endheading complex param centert3e1 caption="center" default=(0,0) visible=(@ntile>2) endparam float param at3e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>2) endparam float param bt3e1 caption="vertical axis" default=0 min=0 visible=(@ntile>2) endparam float param powert3e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>2) endparam int param drawt3e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>2) endparam ; ; tile 3, ellipse 2 ; heading caption=" tile 3, ellipse 2" visible=((@ntile>2)&&(@nt3>1)) endheading complex param centert3e2 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>1)) endparam float param at3e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>1)) endparam float param bt3e2 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>1)) endparam float param powert3e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>1)) endparam int param drawt3e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>1)) endparam ; ; tile 3, ellipse 3 ; heading caption=" tile 3, ellipse 3" visible=((@ntile>2)&&(@nt3>2)) endheading complex param centert3e3 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>2)) endparam float param at3e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>2)) endparam float param bt3e3 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>2)) endparam float param powert3e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>2)) endparam int param drawt3e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>2)) endparam ; ; tile 3, ellipse 4 ; heading caption=" tile 3, ellipse 4" visible=((@ntile>2)&&(@nt3>3)) endheading complex param centert3e4 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>3)) endparam float param at3e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>3)) endparam float param bt3e4 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>3)) endparam float param powert3e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>3)) endparam int param drawt3e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>3)) endparam ; ; tile 3, ellipse 5 ; heading caption=" tile 3, ellipse 5" visible=((@ntile>2)&&(@nt3>4)) endheading complex param centert3e5 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>4)) endparam float param at3e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>4)) endparam float param bt3e5 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>4)) endparam float param powert3e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>4)) endparam int param drawt3e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>4)) endparam ; ; tile 3, ellipse 6 ; heading caption=" tile 3, ellipse 6" visible=((@ntile>2)&&(@nt3>5)) endheading complex param centert3e6 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>5)) endparam float param at3e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>5)) endparam float param bt3e6 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>5)) endparam float param powert3e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>5)) endparam int param drawt3e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>5)) endparam ; ; tile 3, ellipse 7 ; heading caption=" tile 3, ellipse 7" visible=((@ntile>2)&&(@nt3>6)) endheading complex param centert3e7 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>6)) endparam float param at3e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>6)) endparam float param bt3e7 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>6)) endparam float param powert3e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>6)) endparam int param drawt3e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>6)) endparam ; ; tile 3, ellipse 8 ; heading caption=" tile 3, ellipse 8" visible=((@ntile>2)&&(@nt3>7)) endheading complex param centert3e8 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>7)) endparam float param at3e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>7)) endparam float param bt3e8 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>7)) endparam float param powert3e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>7)) endparam int param drawt3e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>7)) endparam ; ; tile 3, ellipse 9 ; heading caption=" tile 3, ellipse 9" visible=((@ntile>2)&&(@nt3>8)) endheading complex param centert3e9 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>8)) endparam float param at3e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>8)) endparam float param bt3e9 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>8)) endparam float param powert3e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>8)) endparam int param drawt3e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>8)) endparam ; ; tile 3, ellipse 10 ; heading caption=" tile 3, ellipse 10" visible=((@ntile>2)&&(@nt3>9)) endheading complex param centert3e10 caption="center" default=(0,0) visible=((@ntile>2)&&(@nt3>9)) endparam float param at3e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>9)) endparam float param bt3e10 caption="vertical axis" default=0 min=0 visible=((@ntile>2)&&(@nt3>9)) endparam float param powert3e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>2)&&(@nt3>9)) endparam int param drawt3e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>2)&&(@nt3>9)) endparam ; ; tile 4 ; heading caption="tile 4" visible=(@ntile>3) endheading int param nt4 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>3) endparam float param wt4 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>3)&&(@random_tile==true)) endparam ; ; tile 4, ellipse 1 ; heading caption=" tile 4, ellipse 1" visible=(@ntile>3) endheading complex param centert4e1 caption="center" default=(0,0) visible=(@ntile>3) endparam float param at4e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>3) endparam float param bt4e1 caption="vertical axis" default=0 min=0 visible=(@ntile>3) endparam float param powert4e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>3) endparam int param drawt4e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>3) endparam ; ; tile 4, ellipse 2 ; heading caption=" tile 4, ellipse 2" visible=((@ntile>3)&&(@nt4>1)) endheading complex param centert4e2 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>1)) endparam float param at4e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>1)) endparam float param bt4e2 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>1)) endparam float param powert4e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>1)) endparam int param drawt4e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>1)) endparam ; ; tile 4, ellipse 3 ; heading caption=" tile 4, ellipse 3" visible=((@ntile>3)&&(@nt4>2)) endheading complex param centert4e3 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>2)) endparam float param at4e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>2)) endparam float param bt4e3 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>2)) endparam float param powert4e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>2)) endparam int param drawt4e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>2)) endparam ; ; tile 4, ellipse 4 ; heading caption=" tile 4, ellipse 4" visible=((@ntile>3)&&(@nt4>3)) endheading complex param centert4e4 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>3)) endparam float param at4e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>3)) endparam float param bt4e4 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>3)) endparam float param powert4e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>3)) endparam int param drawt4e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>3)) endparam ; ; tile 4, ellipse 5 ; heading caption=" tile 4, ellipse 5" visible=((@ntile>3)&&(@nt4>4)) endheading complex param centert4e5 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>4)) endparam float param at4e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>4)) endparam float param bt4e5 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>4)) endparam float param powert4e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>4)) endparam int param drawt4e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>4)) endparam ; ; tile 4, ellipse 6 ; heading caption=" tile 4, ellipse 6" visible=((@ntile>3)&&(@nt4>5)) endheading complex param centert4e6 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>5)) endparam float param at4e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>5)) endparam float param bt4e6 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>5)) endparam float param powert4e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>5)) endparam int param drawt4e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>5)) endparam ; ; tile 4, ellipse 7 ; heading caption=" tile 4, ellipse 7" visible=((@ntile>3)&&(@nt4>6)) endheading complex param centert4e7 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>6)) endparam float param at4e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>6)) endparam float param bt4e7 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>6)) endparam float param powert4e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>6)) endparam int param drawt4e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>6)) endparam ; ; tile 4, ellipse 8 ; heading caption=" tile 4, ellipse 8" visible=((@ntile>3)&&(@nt4>7)) endheading complex param centert4e8 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>7)) endparam float param at4e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>7)) endparam float param bt4e8 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>7)) endparam float param powert4e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>7)) endparam int param drawt4e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>7)) endparam ; ; tile 4, ellipse 9 ; heading caption=" tile 4, ellipse 9" visible=((@ntile>3)&&(@nt4>8)) endheading complex param centert4e9 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>8)) endparam float param at4e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>8)) endparam float param bt4e9 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>8)) endparam float param powert4e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>8)) endparam int param drawt4e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>8)) endparam ; ; tile 4, ellipse 10 ; heading caption=" tile 4, ellipse 10" visible=((@ntile>3)&&(@nt4>9)) endheading complex param centert4e10 caption="center" default=(0,0) visible=((@ntile>3)&&(@nt4>9)) endparam float param at4e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>9)) endparam float param bt4e10 caption="vertical axis" default=0 min=0 visible=((@ntile>3)&&(@nt4>9)) endparam float param powert4e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>3)&&(@nt4>9)) endparam int param drawt4e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>3)&&(@nt4>9)) endparam ; ; tile 5 ; heading caption="tile 5" visible=(@ntile>4) endheading int param nt5 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>4) endparam float param wt5 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>4)&&(@random_tile==true)) endparam ; ; tile 5, ellipse 1 ; heading caption=" tile 5, ellipse 1" visible=(@ntile>4) endheading complex param centert5e1 caption="center" default=(0,0) visible=(@ntile>4) endparam float param at5e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>4) endparam float param bt5e1 caption="vertical axis" default=0 min=0 visible=(@ntile>4) endparam float param powert5e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>4) endparam int param drawt5e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>4) endparam ; ; tile 5, ellipse 2 ; heading caption=" tile 5, ellipse 2" visible=((@ntile>4)&&(@nt5>1)) endheading complex param centert5e2 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>1)) endparam float param at5e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>1)) endparam float param bt5e2 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>1)) endparam float param powert5e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>1)) endparam int param drawt5e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>1)) endparam ; ; tile 5, ellipse 3 ; heading caption=" tile 5, ellipse 3" visible=((@ntile>4)&&(@nt5>2)) endheading complex param centert5e3 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>2)) endparam float param at5e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>2)) endparam float param bt5e3 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>2)) endparam float param powert5e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>2)) endparam int param drawt5e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>2)) endparam ; ; tile 5, ellipse 4 ; heading caption=" tile 5, ellipse 4" visible=((@ntile>4)&&(@nt5>3)) endheading complex param centert5e4 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>3)) endparam float param at5e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>3)) endparam float param bt5e4 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>3)) endparam float param powert5e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>3)) endparam int param drawt5e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>3)) endparam ; ; tile 5, ellipse 5 ; heading caption=" tile 5, ellipse 5" visible=((@ntile>4)&&(@nt5>4)) endheading complex param centert5e5 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>4)) endparam float param at5e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>4)) endparam float param bt5e5 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>4)) endparam float param powert5e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>4)) endparam int param drawt5e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>4)) endparam ; ; tile 5, ellipse 6 ; heading caption=" tile 5, ellipse 6" visible=((@ntile>4)&&(@nt5>5)) endheading complex param centert5e6 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>5)) endparam float param at5e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>5)) endparam float param bt5e6 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>5)) endparam float param powert5e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>5)) endparam int param drawt5e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>5)) endparam ; ; tile 5, ellipse 7 ; heading caption=" tile 5, ellipse 7" visible=((@ntile>4)&&(@nt5>6)) endheading complex param centert5e7 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>6)) endparam float param at5e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>6)) endparam float param bt5e7 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>6)) endparam float param powert5e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>6)) endparam int param drawt5e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>6)) endparam ; ; tile 5, ellipse 8 ; heading caption=" tile 5, ellipse 8" visible=((@ntile>4)&&(@nt5>7)) endheading complex param centert5e8 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>7)) endparam float param at5e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>7)) endparam float param bt5e8 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>7)) endparam float param powert5e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>7)) endparam int param drawt5e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>7)) endparam ; ; tile 5, ellipse 9 ; heading caption=" tile 5, ellipse 9" visible=((@ntile>4)&&(@nt5>8)) endheading complex param centert5e9 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>8)) endparam float param at5e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>8)) endparam float param bt5e9 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>8)) endparam float param powert5e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>8)) endparam int param drawt5e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>8)) endparam ; ; tile 5, ellipse 10 ; heading caption=" tile 5, ellipse 10" visible=((@ntile>4)&&(@nt5>9)) endheading complex param centert5e10 caption="center" default=(0,0) visible=((@ntile>4)&&(@nt5>9)) endparam float param at5e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>9)) endparam float param bt5e10 caption="vertical axis" default=0 min=0 visible=((@ntile>4)&&(@nt5>9)) endparam float param powert5e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>4)&&(@nt5>9)) endparam int param drawt5e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>4)&&(@nt5>9)) endparam ; ; tile 6 ; heading caption="tile 6" visible=(@ntile>5) endheading int param nt6 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>5) endparam float param wt6 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>5)&&(@random_tile==true)) endparam ; ; tile 6, ellipse 1 ; heading caption=" tile 6, ellipse 1" visible=(@ntile>5) endheading complex param centert6e1 caption="center" default=(0,0) visible=(@ntile>5) endparam float param at6e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>5) endparam float param bt6e1 caption="vertical axis" default=0 min=0 visible=(@ntile>5) endparam float param powert6e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>5) endparam int param drawt6e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>5) endparam ; ; tile 6, ellipse 2 ; heading caption=" tile 6, ellipse 2" visible=((@ntile>5)&&(@nt6>1)) endheading complex param centert6e2 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>1)) endparam float param at6e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>1)) endparam float param bt6e2 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>1)) endparam float param powert6e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>1)) endparam int param drawt6e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>1)) endparam ; ; tile 6, ellipse 3 ; heading caption=" tile 6, ellipse 3" visible=((@ntile>5)&&(@nt6>2)) endheading complex param centert6e3 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>2)) endparam float param at6e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>2)) endparam float param bt6e3 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>2)) endparam float param powert6e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>2)) endparam int param drawt6e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>2)) endparam ; ; tile 6, ellipse 4 ; heading caption=" tile 6, ellipse 4" visible=((@ntile>5)&&(@nt6>3)) endheading complex param centert6e4 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>3)) endparam float param at6e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>3)) endparam float param bt6e4 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>3)) endparam float param powert6e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>3)) endparam int param drawt6e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>3)) endparam ; ; tile 6, ellipse 5 ; heading caption=" tile 6, ellipse 5" visible=((@ntile>5)&&(@nt6>4)) endheading complex param centert6e5 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>4)) endparam float param at6e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>4)) endparam float param bt6e5 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>4)) endparam float param powert6e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>4)) endparam int param drawt6e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>4)) endparam ; ; tile 6, ellipse 6 ; heading caption=" tile 6, ellipse 6" visible=((@ntile>5)&&(@nt6>5)) endheading complex param centert6e6 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>5)) endparam float param at6e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>5)) endparam float param bt6e6 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>5)) endparam float param powert6e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>5)) endparam int param drawt6e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>5)) endparam ; ; tile 6, ellipse 7 ; heading caption=" tile 6, ellipse 7" visible=((@ntile>5)&&(@nt6>6)) endheading complex param centert6e7 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>6)) endparam float param at6e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>6)) endparam float param bt6e7 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>6)) endparam float param powert6e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>6)) endparam int param drawt6e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>6)) endparam ; ; tile 6, ellipse 8 ; heading caption=" tile 6, ellipse 8" visible=((@ntile>5)&&(@nt6>7)) endheading complex param centert6e8 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>7)) endparam float param at6e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>7)) endparam float param bt6e8 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>7)) endparam float param powert6e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>7)) endparam int param drawt6e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>7)) endparam ; ; tile 6, ellipse 9 ; heading caption=" tile 6, ellipse 9" visible=((@ntile>5)&&(@nt6>8)) endheading complex param centert6e9 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>8)) endparam float param at6e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>8)) endparam float param bt6e9 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>8)) endparam float param powert6e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>8)) endparam int param drawt6e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>8)) endparam ; ; tile 6, ellipse 10 ; heading caption=" tile 6, ellipse 10" visible=((@ntile>5)&&(@nt6>9)) endheading complex param centert6e10 caption="center" default=(0,0) visible=((@ntile>5)&&(@nt6>9)) endparam float param at6e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>9)) endparam float param bt6e10 caption="vertical axis" default=0 min=0 visible=((@ntile>5)&&(@nt6>9)) endparam float param powert6e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>5)&&(@nt6>9)) endparam int param drawt6e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>5)&&(@nt6>9)) endparam ; ; tile 7 ; heading caption="tile 7" visible=(@ntile>6) endheading int param nt7 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>6) endparam float param wt7 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>6)&&(@random_tile==true)) endparam ; ; tile 7, ellipse 1 ; heading caption=" tile 7, ellipse 1" visible=(@ntile>6) endheading complex param centert7e1 caption="center" default=(0,0) visible=(@ntile>6) endparam float param at7e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>6) endparam float param bt7e1 caption="vertical axis" default=0 min=0 visible=(@ntile>6) endparam float param powert7e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>6) endparam int param drawt7e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>6) endparam ; ; tile 7, ellipse 2 ; heading caption=" tile 7, ellipse 2" visible=((@ntile>6)&&(@nt7>1)) endheading complex param centert7e2 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>1)) endparam float param at7e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>1)) endparam float param bt7e2 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>1)) endparam float param powert7e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>1)) endparam int param drawt7e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>1)) endparam ; ; tile 7, ellipse 3 ; heading caption=" tile 7, ellipse 3" visible=((@ntile>6)&&(@nt7>2)) endheading complex param centert7e3 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>2)) endparam float param at7e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>2)) endparam float param bt7e3 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>2)) endparam float param powert7e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>2)) endparam int param drawt7e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>2)) endparam ; ; tile 7, ellipse 4 ; heading caption=" tile 7, ellipse 4" visible=((@ntile>6)&&(@nt7>3)) endheading complex param centert7e4 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>3)) endparam float param at7e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>3)) endparam float param bt7e4 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>3)) endparam float param powert7e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>3)) endparam int param drawt7e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>3)) endparam ; ; tile 7, ellipse 5 ; heading caption=" tile 7, ellipse 5" visible=((@ntile>6)&&(@nt7>4)) endheading complex param centert7e5 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>4)) endparam float param at7e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>4)) endparam float param bt7e5 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>4)) endparam float param powert7e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>4)) endparam int param drawt7e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>4)) endparam ; ; tile 7, ellipse 6 ; heading caption=" tile 7, ellipse 6" visible=((@ntile>6)&&(@nt7>5)) endheading complex param centert7e6 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>5)) endparam float param at7e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>5)) endparam float param bt7e6 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>5)) endparam float param powert7e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>5)) endparam int param drawt7e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>5)) endparam ; ; tile 7, ellipse 7 ; heading caption=" tile 7, ellipse 7" visible=((@ntile>6)&&(@nt7>6)) endheading complex param centert7e7 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>6)) endparam float param at7e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>6)) endparam float param bt7e7 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>6)) endparam float param powert7e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>6)) endparam int param drawt7e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>6)) endparam ; ; tile 7, ellipse 8 ; heading caption=" tile 7, ellipse 8" visible=((@ntile>6)&&(@nt7>7)) endheading complex param centert7e8 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>7)) endparam float param at7e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>7)) endparam float param bt7e8 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>7)) endparam float param powert7e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>7)) endparam int param drawt7e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>7)) endparam ; ; tile 7, ellipse 9 ; heading caption=" tile 7, ellipse 9" visible=((@ntile>6)&&(@nt7>8)) endheading complex param centert7e9 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>8)) endparam float param at7e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>8)) endparam float param bt7e9 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>8)) endparam float param powert7e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>8)) endparam int param drawt7e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>8)) endparam ; ; tile 7, ellipse 10 ; heading caption=" tile 7, ellipse 10" visible=((@ntile>6)&&(@nt7>9)) endheading complex param centert7e10 caption="center" default=(0,0) visible=((@ntile>6)&&(@nt7>9)) endparam float param at7e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>9)) endparam float param bt7e10 caption="vertical axis" default=0 min=0 visible=((@ntile>6)&&(@nt7>9)) endparam float param powert7e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>6)&&(@nt7>9)) endparam int param drawt7e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>6)&&(@nt7>9)) endparam ; ; tile 8 ; heading caption="tile 8" visible=(@ntile>7) endheading int param nt8 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>7) endparam float param wt8 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>7)&&(@random_tile==true)) endparam ; ; tile 8, ellipse 1 ; heading caption=" tile 8, ellipse 1" visible=(@ntile>7) endheading complex param centert8e1 caption="center" default=(0,0) visible=(@ntile>7) endparam float param at8e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>7) endparam float param bt8e1 caption="vertical axis" default=0 min=0 visible=(@ntile>7) endparam float param powert8e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>7) endparam int param drawt8e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>7) endparam ; ; tile 8, ellipse 2 ; heading caption=" tile 8, ellipse 2" visible=((@ntile>7)&&(@nt8>1)) endheading complex param centert8e2 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>1)) endparam float param at8e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>1)) endparam float param bt8e2 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>1)) endparam float param powert8e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>1)) endparam int param drawt8e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>1)) endparam ; ; tile 8, ellipse 3 ; heading caption=" tile 8, ellipse 3" visible=((@ntile>7)&&(@nt8>2)) endheading complex param centert8e3 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>2)) endparam float param at8e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>2)) endparam float param bt8e3 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>2)) endparam float param powert8e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>2)) endparam int param drawt8e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>2)) endparam ; ; tile 8, ellipse 4 ; heading caption=" tile 8, ellipse 4" visible=((@ntile>7)&&(@nt8>3)) endheading complex param centert8e4 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>3)) endparam float param at8e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>3)) endparam float param bt8e4 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>3)) endparam float param powert8e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>3)) endparam int param drawt8e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>3)) endparam ; ; tile 8, ellipse 5 ; heading caption=" tile 8, ellipse 5" visible=((@ntile>7)&&(@nt8>4)) endheading complex param centert8e5 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>4)) endparam float param at8e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>4)) endparam float param bt8e5 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>4)) endparam float param powert8e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>4)) endparam int param drawt8e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>4)) endparam ; ; tile 8, ellipse 6 ; heading caption=" tile 8, ellipse 6" visible=((@ntile>7)&&(@nt8>5)) endheading complex param centert8e6 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>5)) endparam float param at8e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>5)) endparam float param bt8e6 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>5)) endparam float param powert8e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>5)) endparam int param drawt8e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>5)) endparam ; ; tile 8, ellipse 7 ; heading caption=" tile 8, ellipse 7" visible=((@ntile>7)&&(@nt8>6)) endheading complex param centert8e7 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>6)) endparam float param at8e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>6)) endparam float param bt8e7 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>6)) endparam float param powert8e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>6)) endparam int param drawt8e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>6)) endparam ; ; tile 8, ellipse 8 ; heading caption=" tile 8, ellipse 8" visible=((@ntile>7)&&(@nt8>7)) endheading complex param centert8e8 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>7)) endparam float param at8e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>7)) endparam float param bt8e8 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>7)) endparam float param powert8e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>7)) endparam int param drawt8e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>7)) endparam ; ; tile 8, ellipse 9 ; heading caption=" tile 8, ellipse 9" visible=((@ntile>7)&&(@nt8>8)) endheading complex param centert8e9 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>8)) endparam float param at8e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>8)) endparam float param bt8e9 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>8)) endparam float param powert8e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>8)) endparam int param drawt8e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>8)) endparam ; ; tile 8, ellipse 10 ; heading caption=" tile 8, ellipse 10" visible=((@ntile>7)&&(@nt8>9)) endheading complex param centert8e10 caption="center" default=(0,0) visible=((@ntile>7)&&(@nt8>9)) endparam float param at8e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>9)) endparam float param bt8e10 caption="vertical axis" default=0 min=0 visible=((@ntile>7)&&(@nt8>9)) endparam float param powert8e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>7)&&(@nt8>9)) endparam int param drawt8e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>7)&&(@nt8>9)) endparam ; ; tile 9 ; heading caption="tile 9" visible=(@ntile>8) endheading int param nt9 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>8) endparam float param wt9 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>8)&&(@random_tile==true)) endparam ; ; tile 9, ellipse 1 ; heading caption=" tile 9, ellipse 1" visible=(@ntile>8) endheading complex param centert9e1 caption="center" default=(0,0) visible=(@ntile>8) endparam float param at9e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>8) endparam float param bt9e1 caption="vertical axis" default=0 min=0 visible=(@ntile>8) endparam float param powert9e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>8) endparam int param drawt9e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>8) endparam ; ; tile 9, ellipse 2 ; heading caption=" tile 9, ellipse 2" visible=((@ntile>8)&&(@nt9>1)) endheading complex param centert9e2 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>1)) endparam float param at9e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>1)) endparam float param bt9e2 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>1)) endparam float param powert9e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>1)) endparam int param drawt9e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>1)) endparam ; ; tile 9, ellipse 3 ; heading caption=" tile 9, ellipse 3" visible=((@ntile>8)&&(@nt9>2)) endheading complex param centert9e3 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>2)) endparam float param at9e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>2)) endparam float param bt9e3 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>2)) endparam float param powert9e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>2)) endparam int param drawt9e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>2)) endparam ; ; tile 9, ellipse 4 ; heading caption=" tile 9, ellipse 4" visible=((@ntile>8)&&(@nt9>3)) endheading complex param centert9e4 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>3)) endparam float param at9e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>3)) endparam float param bt9e4 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>3)) endparam float param powert9e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>3)) endparam int param drawt9e4 caption="drawing order" default=4 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>3)) endparam ; ; tile 9, ellipse 5 ; heading caption=" tile 9, ellipse 5" visible=((@ntile>8)&&(@nt9>4)) endheading complex param centert9e5 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>4)) endparam float param at9e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>4)) endparam float param bt9e5 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>4)) endparam float param powert9e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>4)) endparam int param drawt9e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>4)) endparam ; ; tile 9, ellipse 6 ; heading caption=" tile 9, ellipse 6" visible=((@ntile>8)&&(@nt9>5)) endheading complex param centert9e6 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>5)) endparam float param at9e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>5)) endparam float param bt9e6 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>5)) endparam float param powert9e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>5)) endparam int param drawt9e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>5)) endparam ; ; tile 9, ellipse 7 ; heading caption=" tile 9, ellipse 7" visible=((@ntile>8)&&(@nt9>6)) endheading complex param centert9e7 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>6)) endparam float param at9e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>6)) endparam float param bt9e7 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>6)) endparam float param powert9e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>6)) endparam int param drawt9e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>6)) endparam ; ; tile 9, ellipse 8 ; heading caption=" tile 9, ellipse 8" visible=((@ntile>8)&&(@nt9>7)) endheading complex param centert9e8 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>7)) endparam float param at9e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>7)) endparam float param bt9e8 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>7)) endparam float param powert9e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>7)) endparam int param drawt9e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>7)) endparam ; ; tile 9, ellipse 9 ; heading caption=" tile 9, ellipse 9" visible=((@ntile>8)&&(@nt9>8)) endheading complex param centert9e9 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>8)) endparam float param at9e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>8)) endparam float param bt9e9 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>8)) endparam float param powert9e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>8)) endparam int param drawt9e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>8)) endparam ; ; tile 9, ellipse 10 ; heading caption=" tile 9, ellipse 10" visible=((@ntile>8)&&(@nt9>9)) endheading complex param centert9e10 caption="center" default=(0,0) visible=((@ntile>8)&&(@nt9>9)) endparam float param at9e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>9)) endparam float param bt9e10 caption="vertical axis" default=0 min=0 visible=((@ntile>8)&&(@nt9>9)) endparam float param powert9e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>8)&&(@nt9>9)) endparam int param drawt9e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>8)&&(@nt9>9)) endparam ; ; tile 10 ; heading caption="tile 10" visible=(@ntile>9) endheading int param nt10 caption="# ellipses" default=1 min=1 max=10 visible=(@ntile>9) endparam float param wt10 caption="weight" default=1 min=0 hint="How often this tile is used; set > 0" visible=((@ntile>9)&&(@random_tile==true)) endparam ; ; tile 10, ellipse 1 ; heading caption=" tile 10, ellipse 1" visible=(@ntile>9) endheading complex param centert10e1 caption="center" default=(0,0) visible=(@ntile>9) endparam float param at10e1 caption="horizontal axis" default=0 min=0 visible=(@ntile>9) endparam float param bt10e1 caption="vertical axis" default=0 min=0 visible=(@ntile>9) endparam float param powert10e1 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=(@ntile>9) endparam int param drawt10e1 caption="drawing order" default=1 min=1 max=10 hint="1 is bottom, 10 is top" visible=(@ntile>9) endparam ; ; tile 10, ellipse 2 ; heading caption=" tile 10, ellipse 2" visible=((@ntile>9)&&(@nt10>1)) endheading complex param centert10e2 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>1)) endparam float param at10e2 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>1)) endparam float param bt10e2 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>1)) endparam float param powert10e2 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>1)) endparam int param drawt10e2 caption="drawing order" default=2 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>1)) endparam ; ; tile 10, ellipse 3 ; heading caption=" tile 10, ellipse 3" visible=((@ntile>9)&&(@nt10>2)) endheading complex param centert10e3 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>2)) endparam float param at10e3 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>2)) endparam float param bt10e3 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>2)) endparam float param powert10e3 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>2)) endparam int param drawt10e3 caption="drawing order" default=3 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>2)) endparam ; ; tile 10, ellipse 4 ; heading caption=" tile 10, ellipse 4" visible=((@ntile>9)&&(@nt10>3)) endheading complex param centert10e4 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>3)) endparam float param at10e4 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>3)) endparam float param bt10e4 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>3)) endparam float param powert10e4 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>3)) endparam int param drawt10e4 caption="drawing order" default=1 min=4 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>3)) endparam ; ; tile 10, ellipse 5 ; heading caption=" tile 10, ellipse 5" visible=((@ntile>9)&&(@nt10>4)) endheading complex param centert10e5 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>4)) endparam float param at10e5 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>4)) endparam float param bt10e5 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>4)) endparam float param powert10e5 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>4)) endparam int param drawt10e5 caption="drawing order" default=5 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>4)) endparam ; ; tile 10, ellipse 6 ; heading caption=" tile 10, ellipse 6" visible=((@ntile>9)&&(@nt10>5)) endheading complex param centert10e6 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>5)) endparam float param at10e6 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>5)) endparam float param bt10e6 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>5)) endparam float param powert10e6 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>5)) endparam int param drawt10e6 caption="drawing order" default=6 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>5)) endparam ; ; tile 10, ellipse 7 ; heading caption=" tile 10, ellipse 7" visible=((@ntile>9)&&(@nt10>6)) endheading complex param centert10e7 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>6)) endparam float param at10e7 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>6)) endparam float param bt10e7 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>6)) endparam float param powert10e7 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>6)) endparam int param drawt10e7 caption="drawing order" default=7 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>6)) endparam ; ; tile 10, ellipse 8 ; heading caption=" tile 10, ellipse 8" visible=((@ntile>9)&&(@nt10>7)) endheading complex param centert10e8 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>7)) endparam float param at10e8 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>7)) endparam float param bt10e8 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>7)) endparam float param powert10e8 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>7)) endparam int param drawt10e8 caption="drawing order" default=8 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>7)) endparam ; ; tile 10, ellipse 9 ; heading caption=" tile 10, ellipse 9" visible=((@ntile>9)&&(@nt10>8)) endheading complex param centert10e9 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>8)) endparam float param at10e9 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>8)) endparam float param bt10e9 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>8)) endparam float param powert10e9 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>8)) endparam int param drawt10e9 caption="drawing order" default=9 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>8)) endparam ; ; tile 10, ellipse 10 ; heading caption=" tile 10, ellipse 10" visible=((@ntile>9)&&(@nt10>9)) endheading complex param centert10e10 caption="center" default=(0,0) visible=((@ntile>9)&&(@nt10>9)) endparam float param at10e10 caption="horizontal axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>9)) endparam float param bt10e10 caption="vertical axis" default=0 min=0 visible=((@ntile>9)&&(@nt10>9)) endparam float param powert10e10 caption="power" default=2 min=0 max=300 hint="1 for diamonds, 2 for ellipses, large for rectangles." visible=((@ntile>9)&&(@nt10>9)) endparam int param drawt10e10 caption="drawing order" default=10 min=1 max=10 hint="1 is bottom, 10 is top" visible=((@ntile>9)&&(@nt10>9)) endparam } cardioid-boundary-orbits { ; Kerry Mitchell 22apr2009 ; ; Draws the orbit of a single point on the boundary of the main cardioid of the ; Mandelbrot set (for any power), or combines several such points into one and ; draws its orbit. The points are determined by their polar angles and up to ; five points can be combined. Generally, points with chaotic orbits work best ; (such points have angles whose radian measure is a rational number, like 1.1). ; $define debug global: complex c1=(0,0) complex c2=(0,0) complex c3=(0,0) complex c4=(0,0) complex c5=(0,0) complex rot=cos(#angle)-flip(sin(#angle)) complex worbit=(0,0) complex z1=(0,0) complex z2=(0,0) complex z3=(0,0) complex z4=(0,0) complex z5=(0,0) complex zorbit=(0,0) float fac=4/#magn ; ; Thanks to Dave Makin for this tip! ; if(4*#height<3*#width) fac=0.75*#width*fac/#height endif float t1=0 float t2=0 float t3=0 float t4=0 float t5=0 float xmin=real(#center)-fac/2 float xmax=xmin+fac float rdx=#width/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac float rdy=#height/(ymax-ymin) float xr=0 float yi=0 int gi=0 int gj=0 int gipix=0 int gjpix=0 int gn=round(#width*#height) int hits[#width,#height] ; ; set c's and initialize z's ; if(@angle_unit=="degrees") t1=@angle1/180*#pi t2=@angle2/180*#pi t3=@angle3/180*#pi t4=@angle4/180*#pi t5=@angle5/180*#pi elseif(@angle_unit=="radians") t1=@angle1 t2=@angle2 t3=@angle3 t4=@angle4 t5=@angle5 elseif(@angle_unit=="turns") t1=@angle1*2*#pi t2=@angle2*2*#pi t3=@angle3*2*#pi t4=@angle4*2*#pi t5=@angle5*2*#pi endif z1=(exp((0,1)*t1)/@power)^(1/(@power-1)) c1=z1-z1^@power z1=0 z2=(exp((0,1)*t2)/@power)^(1/(@power-1)) c2=z2-z2^@power z2=0 z3=(exp((0,1)*t3)/@power)^(1/(@power-1)) c3=z3-z3^@power z3=0 z4=(exp((0,1)*t4)/@power)^(1/(@power-1)) c4=z4-z4^@power z4=0 z5=(exp((0,1)*t5)/@power)^(1/(@power-1)) c5=z5-z5^@power z5=0 ; ; clear out pixel array ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; let any transients settle out ; gi=0 while(gi<@ntrans) gi=gi+1 z1=z1^@power+c1 z2=z2^@power+c2 z3=z3^@power+c3 z4=z4^@power+c4 z5=z5^@power+c5 endwhile ; ; compute orbit ; gj=0 while(gj<@samplefac) gj=gj+1 gi=0 while(gixmin)&&(xrymin)&&(yi0) endparam float param angle3 caption="angle 3" default=0 visible=(@npoint>1) endparam float param angle4 caption="angle 4" default=0 visible=(@npoint>2) endparam float param angle5 caption="angle 5" default=0 visible=(@npoint>3) endparam ; ; function ; heading caption="Function parameters" endheading complex param power caption="Mandelbrot power" default=2 endparam param ztype caption="z type" default=0 enum="sum" "product" "weird" visible=(@npoint>0) endparam complex param weight1 caption="weight 1" default=1 endparam func func1 caption="function 1" default=ident() endfunc complex param weight2 caption="weight 2" default=-1 visible=(@npoint>0) endparam func func2 caption="function 2" default=ident() visible=(@npoint>0) endfunc complex param weight3 caption="weight 3" default=0 visible=(@npoint>1) endparam func func3 caption="function 3" default=ident() visible=(@npoint>1) endfunc complex param weight4 caption="weight 4" default=0 visible=(@npoint>2) endparam func func4 caption="function 4" default=ident() visible=(@npoint>2) endfunc complex param weight5 caption="weight 5" default=0 visible=(@npoint>3) endparam func func5 caption="function 5" default=ident() visible=(@npoint>3) endfunc ; ; drawing ; heading caption="Drawing parameters" endheading int param samplefac caption="sampling factor" default=10 min=1 hint="Increase to draw more points (takes longer)." endparam int param ntrans caption="transients" default=100 min=0 hint="How many times to iterate before drawing the points." endparam param scaletype caption="frequency scaling" default=1 enum="linear" "logarithmic" "hyperbolic tangent" hint="How the frequency count is scaled into the color value." endparam float param density caption="density" default=1 hint="Like the 'Color Density' setting" endparam param solidbg caption="solid background" default=true endparam } scribble {; Kerry Mitchell 10aug09 ; ; Draws a single curve from a series of rose curves ; whose parameters vary continuously. ; $define debug global: complex center=(0,0) complex zs[@npoint] float loop=0 float cosamp=0 float cosfreq=0 float cosphase=0 float dt=1/(@npoint-1) float gr=0 float gt=0 float gt0=0 float gt1=0 float gt2=0 float gt3=0 float gt4=0 float gt5=0 float gt6=0 float gt7=0 float gt8=0 float gt9=0 float long=0 float longest=0 float omgt=0 float omgt0=0 float omgt1=0 float omgt2=0 float omgt3=0 float omgt4=0 float omgt5=0 float omgt6=0 float omgt7=0 float omgt8=0 float omgt9=0 float sinamp=0 float sinfreq=0 float sinphase=0 int it=0 ; it=-1 while(it<(@npoint-1)) it=it+1 gt=dt*it gt0=1 gt1=gt*gt0 gt2=gt*gt1 gt3=gt*gt2 gt4=gt*gt3 gt5=gt*gt4 gt6=gt*gt5 gt7=gt*gt6 gt8=gt*gt7 gt9=gt*gt8 omgt=1-gt omgt0=1 omgt1=omgt*omgt0 omgt2=omgt*omgt1 omgt3=omgt*omgt2 omgt4=omgt*omgt3 omgt5=omgt*omgt4 omgt6=omgt*omgt5 omgt7=omgt*omgt6 omgt8=omgt*omgt7 omgt9=omgt*omgt8 ; ; loops ; if(@loop_interp=="constant") loop=@loop_const elseif(@loop_interp=="linear") loop=(@loop_one-@loop_zero)*gt+@loop_zero elseif(@nloop==3) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)/\ ((@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)/\ ((@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)/\ ((@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)) elseif(@loop_interp=="Bezier") loop=\ 1*gt2*omgt0*@loop_a1+\ 2*gt1*omgt1*@loop_c1+\ 1*gt0*omgt2*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt2*omgt0*@loop_a1*@loop_wa1+\ 2*gt1*omgt1*@loop_c1*@loop_wc1+\ 1*gt0*omgt2*@loop_a0*@loop_wa0)/(\ 1*gt2*omgt0*@loop_wa1+\ 2*gt1*omgt1*@loop_wc1+\ 1*gt0*omgt2*@loop_wa0) endif elseif(@nloop==4) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)/\ ((@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)/\ ((@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)/\ ((@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)/\ ((@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)) elseif(@loop_interp=="Bezier") loop=\ 1*gt3*omgt0*@loop_a1+\ 3*gt2*omgt1*@loop_c2+\ 3*gt1*omgt2*@loop_c1+\ 1*gt0*omgt3*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt3*omgt0*@loop_a1*@loop_wa1+\ 3*gt2*omgt1*@loop_c2*@loop_wc2+\ 3*gt1*omgt2*@loop_c1*@loop_wc1+\ 1*gt0*omgt3*@loop_a0*@loop_wa0)/(\ 1*gt3*omgt0*@loop_wa1+\ 3*gt2*omgt1*@loop_wc2+\ 3*gt1*omgt2*@loop_wc1+\ 1*gt0*omgt3*@loop_wa0) endif elseif(@nloop==5) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)/(\ (@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)/(\ (@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*\ (gt-@loop_lt5)/(\ (@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*\ (gt-@loop_lt5)/(\ (@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*\ (gt-@loop_lt4)/(\ (@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)) elseif(@loop_interp=="Bezier") loop=\ 1*gt4*omgt0*@loop_a1+\ 4*gt3*omgt1*@loop_c3+\ 6*gt2*omgt2*@loop_c2+\ 4*gt1*omgt3*@loop_c1+\ 1*gt0*omgt4*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt4*omgt0*@loop_a1*@loop_wa1+\ 4*gt3*omgt1*@loop_c3*@loop_wc3+\ 6*gt2*omgt2*@loop_c2*@loop_wc2+\ 4*gt1*omgt3*@loop_c1*@loop_wc1+\ 1*gt0*omgt4*@loop_a0*@loop_wa0)/(\ 1*gt4*omgt0*@loop_wa1+\ 4*gt3*omgt1*@loop_wc3+\ 6*gt2*omgt2*@loop_wc2+\ 4*gt1*omgt3*@loop_wc1+\ 1*gt0*omgt4*@loop_wa0) endif elseif(@nloop==6) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)/(\ (@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5)*(@loop_lt1-@loop_lt6))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)/(\ (@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5)*(@loop_lt2-@loop_lt6))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)/(\ (@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5)*(@loop_lt3-@loop_lt6))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt5)*\ (gt-@loop_lt6)/(\ (@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5)*(@loop_lt4-@loop_lt6))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt6)/(\ (@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)*(@loop_lt5-@loop_lt6))+\ @loop_l6*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)/(\ (@loop_lt6-@loop_lt1)*(@loop_lt6-@loop_lt2)*(@loop_lt6-@loop_lt3)*\ (@loop_lt6-@loop_lt4)*(@loop_lt6-@loop_lt5)) elseif(@loop_interp=="Bezier") loop=\ 1*gt5*omgt0*@loop_a1+\ 5*gt4*omgt1*@loop_c4+\ 10*gt3*omgt2*@loop_c3+\ 10*gt2*omgt3*@loop_c2+\ 5*gt1*omgt4*@loop_c1+\ 1*gt0*omgt5*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt5*omgt0*@loop_a1*@loop_wa1+\ 5*gt4*omgt1*@loop_c4*@loop_wc4+\ 10*gt3*omgt2*@loop_c3*@loop_wc3+\ 10*gt2*omgt3*@loop_c2*@loop_wc2+\ 5*gt1*omgt4*@loop_c1*@loop_wc1+\ 1*gt0*omgt5*@loop_a0*@loop_wa0)/(\ 1*gt5*omgt0*@loop_wa1+\ 5*gt4*omgt1*@loop_wc4+\ 10*gt3*omgt2*@loop_wc3+\ 10*gt2*omgt3*@loop_wc2+\ 5*gt1*omgt4*@loop_wc1+\ 1*gt0*omgt5*@loop_wa0) endif elseif(@nloop==7) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5)*(@loop_lt1-@loop_lt6)*(@loop_lt1-@loop_lt7))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5)*(@loop_lt2-@loop_lt6)*(@loop_lt2-@loop_lt7))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5)*(@loop_lt3-@loop_lt6)*(@loop_lt3-@loop_lt7))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5)*(@loop_lt4-@loop_lt6)*(@loop_lt4-@loop_lt7))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)*(@loop_lt5-@loop_lt6)*(@loop_lt5-@loop_lt7))+\ @loop_l6*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt7)/(\ (@loop_lt6-@loop_lt1)*(@loop_lt6-@loop_lt2)*(@loop_lt6-@loop_lt3)*\ (@loop_lt6-@loop_lt4)*(@loop_lt6-@loop_lt5)*(@loop_lt6-@loop_lt7))+\ @loop_l7*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)/(\ (@loop_lt7-@loop_lt1)*(@loop_lt7-@loop_lt2)*(@loop_lt7-@loop_lt3)*\ (@loop_lt7-@loop_lt4)*(@loop_lt7-@loop_lt5)*(@loop_lt7-@loop_lt6)) elseif(@loop_interp=="Bezier") loop=\ 1*gt6*omgt0*@loop_a1+\ 6*gt5*omgt1*@loop_c5+\ 15*gt4*omgt2*@loop_c4+\ 20*gt3*omgt3*@loop_c3+\ 15*gt2*omgt4*@loop_c2+\ 6*gt1*omgt5*@loop_c1+\ 1*gt0*omgt6*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt6*omgt0*@loop_a1*@loop_wa1+\ 6*gt5*omgt1*@loop_c5*@loop_wc5+\ 15*gt4*omgt2*@loop_c4*@loop_wc4+\ 20*gt3*omgt3*@loop_c3*@loop_wc3+\ 15*gt2*omgt4*@loop_c2*@loop_wc2+\ 6*gt1*omgt5*@loop_c1*@loop_wc1+\ 1*gt0*omgt6*@loop_a0*@loop_wa0)/(\ 1*gt6*omgt0*@loop_wa1+\ 6*gt5*omgt1*@loop_wc5+\ 15*gt4*omgt2*@loop_wc4+\ 20*gt3*omgt3*@loop_wc3+\ 15*gt2*omgt4*@loop_wc2+\ 6*gt1*omgt5*@loop_wc1+\ 1*gt0*omgt6*@loop_wa0) endif elseif(@nloop==8) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5)*(@loop_lt1-@loop_lt6)*(@loop_lt1-@loop_lt7)*\ (@loop_lt1-@loop_lt8))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5)*(@loop_lt2-@loop_lt6)*(@loop_lt2-@loop_lt7)*\ (@loop_lt2-@loop_lt8))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5)*(@loop_lt3-@loop_lt6)*(@loop_lt3-@loop_lt7)*\ (@loop_lt3-@loop_lt8))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5)*(@loop_lt4-@loop_lt6)*(@loop_lt4-@loop_lt7)*\ (@loop_lt4-@loop_lt8))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)*(@loop_lt5-@loop_lt6)*(@loop_lt5-@loop_lt7)*\ (@loop_lt5-@loop_lt8))+\ @loop_l6*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt7)*(gt-@loop_lt8)/(\ (@loop_lt6-@loop_lt1)*(@loop_lt6-@loop_lt2)*(@loop_lt6-@loop_lt3)*\ (@loop_lt6-@loop_lt4)*(@loop_lt6-@loop_lt5)*(@loop_lt6-@loop_lt7)*\ (@loop_lt6-@loop_lt8))+\ @loop_l7*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt8)/(\ (@loop_lt7-@loop_lt1)*(@loop_lt7-@loop_lt2)*(@loop_lt7-@loop_lt3)*\ (@loop_lt7-@loop_lt4)*(@loop_lt7-@loop_lt5)*(@loop_lt7-@loop_lt6)*\ (@loop_lt7-@loop_lt8))+\ @loop_l8*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt7)/(\ (@loop_lt8-@loop_lt1)*(@loop_lt8-@loop_lt2)*(@loop_lt8-@loop_lt3)*\ (@loop_lt8-@loop_lt4)*(@loop_lt8-@loop_lt5)*(@loop_lt8-@loop_lt6)*\ (@loop_lt8-@loop_lt7)) elseif(@loop_interp=="Bezier") loop=\ 1*gt7*omgt0*@loop_a1+\ 7*gt6*omgt1*@loop_c6+\ 21*gt5*omgt2*@loop_c5+\ 35*gt4*omgt3*@loop_c4+\ 35*gt3*omgt4*@loop_c3+\ 21*gt2*omgt5*@loop_c2+\ 7*gt1*omgt6*@loop_c1+\ 1*gt0*omgt7*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt7*omgt0*@loop_a1*@loop_wa1+\ 7*gt6*omgt1*@loop_c6*@loop_wc6+\ 21*gt5*omgt2*@loop_c5*@loop_wc5+\ 35*gt4*omgt3*@loop_c4*@loop_wc4+\ 35*gt3*omgt4*@loop_c3*@loop_wc3+\ 21*gt2*omgt5*@loop_c2*@loop_wc2+\ 7*gt1*omgt6*@loop_c1*@loop_wc1+\ 1*gt0*omgt7*@loop_a0*@loop_wa0)/(\ 1*gt7*omgt0*@loop_wa1+\ 7*gt6*omgt1*@loop_wc6+\ 21*gt5*omgt2*@loop_wc5+\ 35*gt4*omgt3*@loop_wc4+\ 35*gt3*omgt4*@loop_wc3+\ 21*gt2*omgt5*@loop_wc2+\ 7*gt1*omgt6*@loop_wc1+\ 1*gt0*omgt7*@loop_wa0) endif elseif(@nloop==9) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5)*(@loop_lt1-@loop_lt6)*(@loop_lt1-@loop_lt7)*\ (@loop_lt1-@loop_lt8)*(@loop_lt1-@loop_lt9))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5)*(@loop_lt2-@loop_lt6)*(@loop_lt2-@loop_lt7)*\ (@loop_lt2-@loop_lt8)*(@loop_lt2-@loop_lt9))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5)*(@loop_lt3-@loop_lt6)*(@loop_lt3-@loop_lt7)*\ (@loop_lt3-@loop_lt8)*(@loop_lt3-@loop_lt9))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5)*(@loop_lt4-@loop_lt6)*(@loop_lt4-@loop_lt7)*\ (@loop_lt4-@loop_lt8)*(@loop_lt4-@loop_lt9))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)*(@loop_lt5-@loop_lt6)*(@loop_lt5-@loop_lt7)*\ (@loop_lt5-@loop_lt8)*(@loop_lt5-@loop_lt9))+\ @loop_l6*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt6-@loop_lt1)*(@loop_lt6-@loop_lt2)*(@loop_lt6-@loop_lt3)*\ (@loop_lt6-@loop_lt4)*(@loop_lt6-@loop_lt5)*(@loop_lt6-@loop_lt7)*\ (@loop_lt6-@loop_lt8)*(@loop_lt6-@loop_lt9))+\ @loop_l7*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt8)*(gt-@loop_lt9)/\ ((@loop_lt7-@loop_lt1)*(@loop_lt7-@loop_lt2)*(@loop_lt7-@loop_lt3)*\ (@loop_lt7-@loop_lt4)*(@loop_lt7-@loop_lt5)*(@loop_lt7-@loop_lt6)*\ (@loop_lt7-@loop_lt8)*(@loop_lt7-@loop_lt9))+\ @loop_l8*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt9)/\ ((@loop_lt8-@loop_lt1)*(@loop_lt8-@loop_lt2)*(@loop_lt8-@loop_lt3)*\ (@loop_lt8-@loop_lt4)*(@loop_lt8-@loop_lt5)*(@loop_lt8-@loop_lt6)*\ (@loop_lt8-@loop_lt7)*(@loop_lt8-@loop_lt9))+\ @loop_l9*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)/\ ((@loop_lt9-@loop_lt1)*(@loop_lt9-@loop_lt2)*(@loop_lt9-@loop_lt3)*\ (@loop_lt9-@loop_lt4)*(@loop_lt9-@loop_lt5)*(@loop_lt9-@loop_lt6)*\ (@loop_lt9-@loop_lt7)*(@loop_lt9-@loop_lt8)) elseif(@loop_interp=="Bezier") loop=\ 1*gt8*omgt0*@loop_a1+\ 8*gt7*omgt1*@loop_c7+\ 28*gt6*omgt2*@loop_c6+\ 56*gt5*omgt3*@loop_c5+\ 70*gt4*omgt4*@loop_c4+\ 56*gt3*omgt5*@loop_c3+\ 28*gt2*omgt6*@loop_c2+\ 8*gt1*omgt7*@loop_c1+\ 1*gt0*omgt8*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt8*omgt0*@loop_a1*@loop_wa1+\ 8*gt7*omgt1*@loop_c7*@loop_wc7+\ 28*gt6*omgt2*@loop_c6*@loop_wc6+\ 56*gt5*omgt3*@loop_c5*@loop_wc5+\ 70*gt4*omgt4*@loop_c4*@loop_wc4+\ 56*gt3*omgt5*@loop_c3*@loop_wc3+\ 28*gt2*omgt6*@loop_c2*@loop_wc2+\ 8*gt1*omgt7*@loop_c1*@loop_wc1+\ 1*gt0*omgt8*@loop_a0*@loop_wa0)/(\ 1*gt8*omgt0*@loop_wa1+\ 8*gt7*omgt1*@loop_wc7+\ 28*gt6*omgt2*@loop_wc6+\ 56*gt5*omgt3*@loop_wc5+\ 70*gt4*omgt4*@loop_wc4+\ 56*gt3*omgt5*@loop_wc3+\ 28*gt2*omgt6*@loop_wc2+\ 8*gt1*omgt7*@loop_wc1+\ 1*gt0*omgt8*@loop_wa0) endif elseif(@nloop==10) if(@loop_interp=="Lagrange") loop=\ @loop_l1*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt1-@loop_lt2)*(@loop_lt1-@loop_lt3)*(@loop_lt1-@loop_lt4)*\ (@loop_lt1-@loop_lt5)*(@loop_lt1-@loop_lt6)*(@loop_lt1-@loop_lt7)*\ (@loop_lt1-@loop_lt8)*(@loop_lt1-@loop_lt9)*(@loop_lt1-@loop_lt10))+\ @loop_l2*(gt-@loop_lt1)*(gt-@loop_lt3)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt2-@loop_lt1)*(@loop_lt2-@loop_lt3)*(@loop_lt2-@loop_lt4)*\ (@loop_lt2-@loop_lt5)*(@loop_lt2-@loop_lt6)*(@loop_lt2-@loop_lt7)*\ (@loop_lt2-@loop_lt8)*(@loop_lt2-@loop_lt9)*(@loop_lt2-@loop_lt10))+\ @loop_l3*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt4)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt3-@loop_lt1)*(@loop_lt3-@loop_lt2)*(@loop_lt3-@loop_lt4)*\ (@loop_lt3-@loop_lt5)*(@loop_lt3-@loop_lt6)*(@loop_lt3-@loop_lt7)*\ (@loop_lt3-@loop_lt8)*(@loop_lt3-@loop_lt9)*(@loop_lt3-@loop_lt10))+\ @loop_l4*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt5)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt4-@loop_lt1)*(@loop_lt4-@loop_lt2)*(@loop_lt4-@loop_lt3)*\ (@loop_lt4-@loop_lt5)*(@loop_lt4-@loop_lt6)*(@loop_lt4-@loop_lt7)*\ (@loop_lt4-@loop_lt8)*(@loop_lt4-@loop_lt9)*(@loop_lt4-@loop_lt10))+\ @loop_l5*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt5-@loop_lt1)*(@loop_lt5-@loop_lt2)*(@loop_lt5-@loop_lt3)*\ (@loop_lt5-@loop_lt4)*(@loop_lt5-@loop_lt6)*(@loop_lt5-@loop_lt7)*\ (@loop_lt5-@loop_lt8)*(@loop_lt5-@loop_lt9)*(@loop_lt5-@loop_lt10))+\ @loop_l6*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt6-@loop_lt1)*(@loop_lt6-@loop_lt2)*(@loop_lt6-@loop_lt3)*\ (@loop_lt6-@loop_lt4)*(@loop_lt6-@loop_lt5)*(@loop_lt6-@loop_lt7)*\ (@loop_lt6-@loop_lt8)*(@loop_lt6-@loop_lt9)*(@loop_lt6-@loop_lt10))+\ @loop_l7*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt8)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt7-@loop_lt1)*(@loop_lt7-@loop_lt2)*(@loop_lt7-@loop_lt3)*\ (@loop_lt7-@loop_lt4)*(@loop_lt7-@loop_lt5)*(@loop_lt7-@loop_lt6)*\ (@loop_lt7-@loop_lt8)*(@loop_lt7-@loop_lt9)*(@loop_lt7-@loop_lt10))+\ @loop_l8*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt9)*\ (gt-@loop_lt10)/(\ (@loop_lt8-@loop_lt1)*(@loop_lt8-@loop_lt2)*(@loop_lt8-@loop_lt3)*\ (@loop_lt8-@loop_lt4)*(@loop_lt8-@loop_lt5)*(@loop_lt8-@loop_lt6)*\ (@loop_lt8-@loop_lt7)*(@loop_lt8-@loop_lt9)*(@loop_lt8-@loop_lt10))+\ @loop_l9*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*(gt-@loop_lt4)*\ (gt-@loop_lt5)*(gt-@loop_lt6)*(gt-@loop_lt7)*(gt-@loop_lt8)*\ (gt-@loop_lt10)/(\ (@loop_lt9-@loop_lt1)*(@loop_lt9-@loop_lt2)*(@loop_lt9-@loop_lt3)*\ (@loop_lt9-@loop_lt4)*(@loop_lt9-@loop_lt5)*(@loop_lt9-@loop_lt6)*\ (@loop_lt9-@loop_lt7)*(@loop_lt9-@loop_lt8)*(@loop_lt9-@loop_lt10))+\ @loop_l10*(gt-@loop_lt1)*(gt-@loop_lt2)*(gt-@loop_lt3)*\ (gt-@loop_lt4)*(gt-@loop_lt5)*(gt-@loop_lt6)*\ (gt-@loop_lt7)*(gt-@loop_lt8)*(gt-@loop_lt9)/(\ (@loop_lt10-@loop_lt1)*(@loop_lt10-@loop_lt2)*(@loop_lt10-@loop_lt3)*\ (@loop_lt10-@loop_lt4)*(@loop_lt10-@loop_lt5)*(@loop_lt10-@loop_lt6)*\ (@loop_lt10-@loop_lt7)*(@loop_lt10-@loop_lt8)*(@loop_lt10-@loop_lt9)) elseif(@loop_interp=="Bezier") loop=\ 1*gt9*omgt0*@loop_a1+\ 9*gt8*omgt1*@loop_c8+\ 36*gt7*omgt2*@loop_c7+\ 84*gt6*omgt3*@loop_c6+\ 126*gt5*omgt4*@loop_c5+\ 126*gt4*omgt5*@loop_c4+\ 84*gt3*omgt6*@loop_c3+\ 36*gt2*omgt7*@loop_c2+\ 9*gt1*omgt8*@loop_c1+\ 1*gt0*omgt9*@loop_a0 elseif(@loop_interp=="rational Bezier") loop=(\ 1*gt9*omgt0*@loop_a1*@loop_wa1+\ 9*gt8*omgt1*@loop_c8*@loop_wc8+\ 36*gt7*omgt2*@loop_c7*@loop_wc7+\ 84*gt6*omgt3*@loop_c6*@loop_wc6+\ 126*gt5*omgt4*@loop_c5*@loop_wc5+\ 126*gt4*omgt5*@loop_c4*@loop_wc4+\ 84*gt3*omgt6*@loop_c3*@loop_wc3+\ 36*gt2*omgt7*@loop_c2*@loop_wc2+\ 9*gt1*omgt8*@loop_c1*@loop_wc1+\ 1*gt0*omgt9*@loop_a0*@loop_wa0)/(\ 1*gt9*omgt0*@loop_wa1+\ 9*gt8*omgt1*@loop_wc8+\ 36*gt7*omgt2*@loop_wc7+\ 84*gt6*omgt3*@loop_wc6+\ 126*gt5*omgt4*@loop_wc5+\ 126*gt4*omgt5*@loop_wc4+\ 84*gt3*omgt6*@loop_wc3+\ 36*gt2*omgt7*@loop_wc2+\ 9*gt1*omgt8*@loop_wc1+\ 1*gt0*omgt9*@loop_wa0) endif endif loop=loop*2*#pi ; ; sine amplitude ; if(@sinamp_interp=="constant") sinamp=@sinamp_const elseif(@sinamp_interp=="linear") sinamp=(@sinamp_one-@sinamp_zero)*gt+@sinamp_zero elseif(@nsinamp==3) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)/\ ((@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)/\ ((@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)/\ ((@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt2*omgt0*@sinamp_a1+\ 2*gt1*omgt1*@sinamp_c1+\ 1*gt0*omgt2*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt2*omgt0*@sinamp_a1*@sinamp_wa1+\ 2*gt1*omgt1*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt2*@sinamp_a0*@sinamp_wa0)/(\ 1*gt2*omgt0*@sinamp_wa1+\ 2*gt1*omgt1*@sinamp_wc1+\ 1*gt0*omgt2*@sinamp_wa0) endif elseif(@nsinamp==4) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)/\ ((@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)/\ ((@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)/\ ((@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)/\ ((@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt3*omgt0*@sinamp_a1+\ 3*gt2*omgt1*@sinamp_c2+\ 3*gt1*omgt2*@sinamp_c1+\ 1*gt0*omgt3*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt3*omgt0*@sinamp_a1*@sinamp_wa1+\ 3*gt2*omgt1*@sinamp_c2*@sinamp_wc2+\ 3*gt1*omgt2*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt3*@sinamp_a0*@sinamp_wa0)/(\ 1*gt3*omgt0*@sinamp_wa1+\ 3*gt2*omgt1*@sinamp_wc2+\ 3*gt1*omgt2*@sinamp_wc1+\ 1*gt0*omgt3*@sinamp_wa0) endif elseif(@nsinamp==5) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)/(\ (@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)/(\ (@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)/(\ (@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*\ (gt-@sinamp_lt5)/(\ (@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*\ (gt-@sinamp_lt4)/(\ (@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt4*omgt0*@sinamp_a1+\ 4*gt3*omgt1*@sinamp_c3+\ 6*gt2*omgt2*@sinamp_c2+\ 4*gt1*omgt3*@sinamp_c1+\ 1*gt0*omgt4*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt4*omgt0*@sinamp_a1*@sinamp_wa1+\ 4*gt3*omgt1*@sinamp_c3*@sinamp_wc3+\ 6*gt2*omgt2*@sinamp_c2*@sinamp_wc2+\ 4*gt1*omgt3*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt4*@sinamp_a0*@sinamp_wa0)/(\ 1*gt4*omgt0*@sinamp_wa1+\ 4*gt3*omgt1*@sinamp_wc3+\ 6*gt2*omgt2*@sinamp_wc2+\ 4*gt1*omgt3*@sinamp_wc1+\ 1*gt0*omgt4*@sinamp_wa0) endif elseif(@nsinamp==6) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)/(\ (@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5)*(@sinamp_lt1-@sinamp_lt6))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)/(\ (@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5)*(@sinamp_lt2-@sinamp_lt6))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)/(\ (@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5)*(@sinamp_lt3-@sinamp_lt6))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)/(\ (@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5)*(@sinamp_lt4-@sinamp_lt6))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt6)/(\ (@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)*(@sinamp_lt5-@sinamp_lt6))+\ @sinamp_l6*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)/(\ (@sinamp_lt6-@sinamp_lt1)*(@sinamp_lt6-@sinamp_lt2)*(@sinamp_lt6-@sinamp_lt3)*\ (@sinamp_lt6-@sinamp_lt4)*(@sinamp_lt6-@sinamp_lt5)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt5*omgt0*@sinamp_a1+\ 5*gt4*omgt1*@sinamp_c4+\ 10*gt3*omgt2*@sinamp_c3+\ 10*gt2*omgt3*@sinamp_c2+\ 5*gt1*omgt4*@sinamp_c1+\ 1*gt0*omgt5*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt5*omgt0*@sinamp_a1*@sinamp_wa1+\ 5*gt4*omgt1*@sinamp_c4*@sinamp_wc4+\ 10*gt3*omgt2*@sinamp_c3*@sinamp_wc3+\ 10*gt2*omgt3*@sinamp_c2*@sinamp_wc2+\ 5*gt1*omgt4*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt5*@sinamp_a0*@sinamp_wa0)/(\ 1*gt5*omgt0*@sinamp_wa1+\ 5*gt4*omgt1*@sinamp_wc4+\ 10*gt3*omgt2*@sinamp_wc3+\ 10*gt2*omgt3*@sinamp_wc2+\ 5*gt1*omgt4*@sinamp_wc1+\ 1*gt0*omgt5*@sinamp_wa0) endif elseif(@nsinamp==7) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5)*(@sinamp_lt1-@sinamp_lt6)*(@sinamp_lt1-@sinamp_lt7))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5)*(@sinamp_lt2-@sinamp_lt6)*(@sinamp_lt2-@sinamp_lt7))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5)*(@sinamp_lt3-@sinamp_lt6)*(@sinamp_lt3-@sinamp_lt7))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5)*(@sinamp_lt4-@sinamp_lt6)*(@sinamp_lt4-@sinamp_lt7))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)*(@sinamp_lt5-@sinamp_lt6)*(@sinamp_lt5-@sinamp_lt7))+\ @sinamp_l6*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt7)/(\ (@sinamp_lt6-@sinamp_lt1)*(@sinamp_lt6-@sinamp_lt2)*(@sinamp_lt6-@sinamp_lt3)*\ (@sinamp_lt6-@sinamp_lt4)*(@sinamp_lt6-@sinamp_lt5)*(@sinamp_lt6-@sinamp_lt7))+\ @sinamp_l7*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)/(\ (@sinamp_lt7-@sinamp_lt1)*(@sinamp_lt7-@sinamp_lt2)*(@sinamp_lt7-@sinamp_lt3)*\ (@sinamp_lt7-@sinamp_lt4)*(@sinamp_lt7-@sinamp_lt5)*(@sinamp_lt7-@sinamp_lt6)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt6*omgt0*@sinamp_a1+\ 6*gt5*omgt1*@sinamp_c5+\ 15*gt4*omgt2*@sinamp_c4+\ 20*gt3*omgt3*@sinamp_c3+\ 15*gt2*omgt4*@sinamp_c2+\ 6*gt1*omgt5*@sinamp_c1+\ 1*gt0*omgt6*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt6*omgt0*@sinamp_a1*@sinamp_wa1+\ 6*gt5*omgt1*@sinamp_c5*@sinamp_wc5+\ 15*gt4*omgt2*@sinamp_c4*@sinamp_wc4+\ 20*gt3*omgt3*@sinamp_c3*@sinamp_wc3+\ 15*gt2*omgt4*@sinamp_c2*@sinamp_wc2+\ 6*gt1*omgt5*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt6*@sinamp_a0*@sinamp_wa0)/(\ 1*gt6*omgt0*@sinamp_wa1+\ 6*gt5*omgt1*@sinamp_wc5+\ 15*gt4*omgt2*@sinamp_wc4+\ 20*gt3*omgt3*@sinamp_wc3+\ 15*gt2*omgt4*@sinamp_wc2+\ 6*gt1*omgt5*@sinamp_wc1+\ 1*gt0*omgt6*@sinamp_wa0) endif elseif(@nsinamp==8) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5)*(@sinamp_lt1-@sinamp_lt6)*(@sinamp_lt1-@sinamp_lt7)*\ (@sinamp_lt1-@sinamp_lt8))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5)*(@sinamp_lt2-@sinamp_lt6)*(@sinamp_lt2-@sinamp_lt7)*\ (@sinamp_lt2-@sinamp_lt8))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5)*(@sinamp_lt3-@sinamp_lt6)*(@sinamp_lt3-@sinamp_lt7)*\ (@sinamp_lt3-@sinamp_lt8))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5)*(@sinamp_lt4-@sinamp_lt6)*(@sinamp_lt4-@sinamp_lt7)*\ (@sinamp_lt4-@sinamp_lt8))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)*(@sinamp_lt5-@sinamp_lt6)*(@sinamp_lt5-@sinamp_lt7)*\ (@sinamp_lt5-@sinamp_lt8))+\ @sinamp_l6*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/(\ (@sinamp_lt6-@sinamp_lt1)*(@sinamp_lt6-@sinamp_lt2)*(@sinamp_lt6-@sinamp_lt3)*\ (@sinamp_lt6-@sinamp_lt4)*(@sinamp_lt6-@sinamp_lt5)*(@sinamp_lt6-@sinamp_lt7)*\ (@sinamp_lt6-@sinamp_lt8))+\ @sinamp_l7*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt8)/(\ (@sinamp_lt7-@sinamp_lt1)*(@sinamp_lt7-@sinamp_lt2)*(@sinamp_lt7-@sinamp_lt3)*\ (@sinamp_lt7-@sinamp_lt4)*(@sinamp_lt7-@sinamp_lt5)*(@sinamp_lt7-@sinamp_lt6)*\ (@sinamp_lt7-@sinamp_lt8))+\ @sinamp_l8*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt7)/(\ (@sinamp_lt8-@sinamp_lt1)*(@sinamp_lt8-@sinamp_lt2)*(@sinamp_lt8-@sinamp_lt3)*\ (@sinamp_lt8-@sinamp_lt4)*(@sinamp_lt8-@sinamp_lt5)*(@sinamp_lt8-@sinamp_lt6)*\ (@sinamp_lt8-@sinamp_lt7)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt7*omgt0*@sinamp_a1+\ 7*gt6*omgt1*@sinamp_c6+\ 21*gt5*omgt2*@sinamp_c5+\ 35*gt4*omgt3*@sinamp_c4+\ 35*gt3*omgt4*@sinamp_c3+\ 21*gt2*omgt5*@sinamp_c2+\ 7*gt1*omgt6*@sinamp_c1+\ 1*gt0*omgt7*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt7*omgt0*@sinamp_a1*@sinamp_wa1+\ 7*gt6*omgt1*@sinamp_c6*@sinamp_wc6+\ 21*gt5*omgt2*@sinamp_c5*@sinamp_wc5+\ 35*gt4*omgt3*@sinamp_c4*@sinamp_wc4+\ 35*gt3*omgt4*@sinamp_c3*@sinamp_wc3+\ 21*gt2*omgt5*@sinamp_c2*@sinamp_wc2+\ 7*gt1*omgt6*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt7*@sinamp_a0*@sinamp_wa0)/(\ 1*gt7*omgt0*@sinamp_wa1+\ 7*gt6*omgt1*@sinamp_wc6+\ 21*gt5*omgt2*@sinamp_wc5+\ 35*gt4*omgt3*@sinamp_wc4+\ 35*gt3*omgt4*@sinamp_wc3+\ 21*gt2*omgt5*@sinamp_wc2+\ 7*gt1*omgt6*@sinamp_wc1+\ 1*gt0*omgt7*@sinamp_wa0) endif elseif(@nsinamp==9) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5)*(@sinamp_lt1-@sinamp_lt6)*(@sinamp_lt1-@sinamp_lt7)*\ (@sinamp_lt1-@sinamp_lt8)*(@sinamp_lt1-@sinamp_lt9))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5)*(@sinamp_lt2-@sinamp_lt6)*(@sinamp_lt2-@sinamp_lt7)*\ (@sinamp_lt2-@sinamp_lt8)*(@sinamp_lt2-@sinamp_lt9))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5)*(@sinamp_lt3-@sinamp_lt6)*(@sinamp_lt3-@sinamp_lt7)*\ (@sinamp_lt3-@sinamp_lt8)*(@sinamp_lt3-@sinamp_lt9))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5)*(@sinamp_lt4-@sinamp_lt6)*(@sinamp_lt4-@sinamp_lt7)*\ (@sinamp_lt4-@sinamp_lt8)*(@sinamp_lt4-@sinamp_lt9))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)*(@sinamp_lt5-@sinamp_lt6)*(@sinamp_lt5-@sinamp_lt7)*\ (@sinamp_lt5-@sinamp_lt8)*(@sinamp_lt5-@sinamp_lt9))+\ @sinamp_l6*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt6-@sinamp_lt1)*(@sinamp_lt6-@sinamp_lt2)*(@sinamp_lt6-@sinamp_lt3)*\ (@sinamp_lt6-@sinamp_lt4)*(@sinamp_lt6-@sinamp_lt5)*(@sinamp_lt6-@sinamp_lt7)*\ (@sinamp_lt6-@sinamp_lt8)*(@sinamp_lt6-@sinamp_lt9))+\ @sinamp_l7*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/\ ((@sinamp_lt7-@sinamp_lt1)*(@sinamp_lt7-@sinamp_lt2)*(@sinamp_lt7-@sinamp_lt3)*\ (@sinamp_lt7-@sinamp_lt4)*(@sinamp_lt7-@sinamp_lt5)*(@sinamp_lt7-@sinamp_lt6)*\ (@sinamp_lt7-@sinamp_lt8)*(@sinamp_lt7-@sinamp_lt9))+\ @sinamp_l8*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt9)/\ ((@sinamp_lt8-@sinamp_lt1)*(@sinamp_lt8-@sinamp_lt2)*(@sinamp_lt8-@sinamp_lt3)*\ (@sinamp_lt8-@sinamp_lt4)*(@sinamp_lt8-@sinamp_lt5)*(@sinamp_lt8-@sinamp_lt6)*\ (@sinamp_lt8-@sinamp_lt7)*(@sinamp_lt8-@sinamp_lt9))+\ @sinamp_l9*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)/\ ((@sinamp_lt9-@sinamp_lt1)*(@sinamp_lt9-@sinamp_lt2)*(@sinamp_lt9-@sinamp_lt3)*\ (@sinamp_lt9-@sinamp_lt4)*(@sinamp_lt9-@sinamp_lt5)*(@sinamp_lt9-@sinamp_lt6)*\ (@sinamp_lt9-@sinamp_lt7)*(@sinamp_lt9-@sinamp_lt8)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt8*omgt0*@sinamp_a1+\ 8*gt7*omgt1*@sinamp_c7+\ 28*gt6*omgt2*@sinamp_c6+\ 56*gt5*omgt3*@sinamp_c5+\ 70*gt4*omgt4*@sinamp_c4+\ 56*gt3*omgt5*@sinamp_c3+\ 28*gt2*omgt6*@sinamp_c2+\ 8*gt1*omgt7*@sinamp_c1+\ 1*gt0*omgt8*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt8*omgt0*@sinamp_a1*@sinamp_wa1+\ 8*gt7*omgt1*@sinamp_c7*@sinamp_wc7+\ 28*gt6*omgt2*@sinamp_c6*@sinamp_wc6+\ 56*gt5*omgt3*@sinamp_c5*@sinamp_wc5+\ 70*gt4*omgt4*@sinamp_c4*@sinamp_wc4+\ 56*gt3*omgt5*@sinamp_c3*@sinamp_wc3+\ 28*gt2*omgt6*@sinamp_c2*@sinamp_wc2+\ 8*gt1*omgt7*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt8*@sinamp_a0*@sinamp_wa0)/(\ 1*gt8*omgt0*@sinamp_wa1+\ 8*gt7*omgt1*@sinamp_wc7+\ 28*gt6*omgt2*@sinamp_wc6+\ 56*gt5*omgt3*@sinamp_wc5+\ 70*gt4*omgt4*@sinamp_wc4+\ 56*gt3*omgt5*@sinamp_wc3+\ 28*gt2*omgt6*@sinamp_wc2+\ 8*gt1*omgt7*@sinamp_wc1+\ 1*gt0*omgt8*@sinamp_wa0) endif elseif(@nsinamp==10) if(@sinamp_interp=="Lagrange") sinamp=\ @sinamp_l1*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt1-@sinamp_lt2)*(@sinamp_lt1-@sinamp_lt3)*(@sinamp_lt1-@sinamp_lt4)*\ (@sinamp_lt1-@sinamp_lt5)*(@sinamp_lt1-@sinamp_lt6)*(@sinamp_lt1-@sinamp_lt7)*\ (@sinamp_lt1-@sinamp_lt8)*(@sinamp_lt1-@sinamp_lt9)*(@sinamp_lt1-@sinamp_lt10))+\ @sinamp_l2*(gt-@sinamp_lt1)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt2-@sinamp_lt1)*(@sinamp_lt2-@sinamp_lt3)*(@sinamp_lt2-@sinamp_lt4)*\ (@sinamp_lt2-@sinamp_lt5)*(@sinamp_lt2-@sinamp_lt6)*(@sinamp_lt2-@sinamp_lt7)*\ (@sinamp_lt2-@sinamp_lt8)*(@sinamp_lt2-@sinamp_lt9)*(@sinamp_lt2-@sinamp_lt10))+\ @sinamp_l3*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt4)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt3-@sinamp_lt1)*(@sinamp_lt3-@sinamp_lt2)*(@sinamp_lt3-@sinamp_lt4)*\ (@sinamp_lt3-@sinamp_lt5)*(@sinamp_lt3-@sinamp_lt6)*(@sinamp_lt3-@sinamp_lt7)*\ (@sinamp_lt3-@sinamp_lt8)*(@sinamp_lt3-@sinamp_lt9)*(@sinamp_lt3-@sinamp_lt10))+\ @sinamp_l4*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt5)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt4-@sinamp_lt1)*(@sinamp_lt4-@sinamp_lt2)*(@sinamp_lt4-@sinamp_lt3)*\ (@sinamp_lt4-@sinamp_lt5)*(@sinamp_lt4-@sinamp_lt6)*(@sinamp_lt4-@sinamp_lt7)*\ (@sinamp_lt4-@sinamp_lt8)*(@sinamp_lt4-@sinamp_lt9)*(@sinamp_lt4-@sinamp_lt10))+\ @sinamp_l5*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt5-@sinamp_lt1)*(@sinamp_lt5-@sinamp_lt2)*(@sinamp_lt5-@sinamp_lt3)*\ (@sinamp_lt5-@sinamp_lt4)*(@sinamp_lt5-@sinamp_lt6)*(@sinamp_lt5-@sinamp_lt7)*\ (@sinamp_lt5-@sinamp_lt8)*(@sinamp_lt5-@sinamp_lt9)*(@sinamp_lt5-@sinamp_lt10))+\ @sinamp_l6*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt6-@sinamp_lt1)*(@sinamp_lt6-@sinamp_lt2)*(@sinamp_lt6-@sinamp_lt3)*\ (@sinamp_lt6-@sinamp_lt4)*(@sinamp_lt6-@sinamp_lt5)*(@sinamp_lt6-@sinamp_lt7)*\ (@sinamp_lt6-@sinamp_lt8)*(@sinamp_lt6-@sinamp_lt9)*(@sinamp_lt6-@sinamp_lt10))+\ @sinamp_l7*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt7-@sinamp_lt1)*(@sinamp_lt7-@sinamp_lt2)*(@sinamp_lt7-@sinamp_lt3)*\ (@sinamp_lt7-@sinamp_lt4)*(@sinamp_lt7-@sinamp_lt5)*(@sinamp_lt7-@sinamp_lt6)*\ (@sinamp_lt7-@sinamp_lt8)*(@sinamp_lt7-@sinamp_lt9)*(@sinamp_lt7-@sinamp_lt10))+\ @sinamp_l8*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt9)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt8-@sinamp_lt1)*(@sinamp_lt8-@sinamp_lt2)*(@sinamp_lt8-@sinamp_lt3)*\ (@sinamp_lt8-@sinamp_lt4)*(@sinamp_lt8-@sinamp_lt5)*(@sinamp_lt8-@sinamp_lt6)*\ (@sinamp_lt8-@sinamp_lt7)*(@sinamp_lt8-@sinamp_lt9)*(@sinamp_lt8-@sinamp_lt10))+\ @sinamp_l9*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*(gt-@sinamp_lt4)*\ (gt-@sinamp_lt5)*(gt-@sinamp_lt6)*(gt-@sinamp_lt7)*(gt-@sinamp_lt8)*\ (gt-@sinamp_lt10)/(\ (@sinamp_lt9-@sinamp_lt1)*(@sinamp_lt9-@sinamp_lt2)*(@sinamp_lt9-@sinamp_lt3)*\ (@sinamp_lt9-@sinamp_lt4)*(@sinamp_lt9-@sinamp_lt5)*(@sinamp_lt9-@sinamp_lt6)*\ (@sinamp_lt9-@sinamp_lt7)*(@sinamp_lt9-@sinamp_lt8)*(@sinamp_lt9-@sinamp_lt10))+\ @sinamp_l10*(gt-@sinamp_lt1)*(gt-@sinamp_lt2)*(gt-@sinamp_lt3)*\ (gt-@sinamp_lt4)*(gt-@sinamp_lt5)*(gt-@sinamp_lt6)*\ (gt-@sinamp_lt7)*(gt-@sinamp_lt8)*(gt-@sinamp_lt9)/(\ (@sinamp_lt10-@sinamp_lt1)*(@sinamp_lt10-@sinamp_lt2)*(@sinamp_lt10-@sinamp_lt3)*\ (@sinamp_lt10-@sinamp_lt4)*(@sinamp_lt10-@sinamp_lt5)*(@sinamp_lt10-@sinamp_lt6)*\ (@sinamp_lt10-@sinamp_lt7)*(@sinamp_lt10-@sinamp_lt8)*(@sinamp_lt10-@sinamp_lt9)) elseif(@sinamp_interp=="Bezier") sinamp=\ 1*gt9*omgt0*@sinamp_a1+\ 9*gt8*omgt1*@sinamp_c8+\ 36*gt7*omgt2*@sinamp_c7+\ 84*gt6*omgt3*@sinamp_c6+\ 126*gt5*omgt4*@sinamp_c5+\ 126*gt4*omgt5*@sinamp_c4+\ 84*gt3*omgt6*@sinamp_c3+\ 36*gt2*omgt7*@sinamp_c2+\ 9*gt1*omgt8*@sinamp_c1+\ 1*gt0*omgt9*@sinamp_a0 elseif(@sinamp_interp=="rational Bezier") sinamp=(\ 1*gt9*omgt0*@sinamp_a1*@sinamp_wa1+\ 9*gt8*omgt1*@sinamp_c8*@sinamp_wc8+\ 36*gt7*omgt2*@sinamp_c7*@sinamp_wc7+\ 84*gt6*omgt3*@sinamp_c6*@sinamp_wc6+\ 126*gt5*omgt4*@sinamp_c5*@sinamp_wc5+\ 126*gt4*omgt5*@sinamp_c4*@sinamp_wc4+\ 84*gt3*omgt6*@sinamp_c3*@sinamp_wc3+\ 36*gt2*omgt7*@sinamp_c2*@sinamp_wc2+\ 9*gt1*omgt8*@sinamp_c1*@sinamp_wc1+\ 1*gt0*omgt9*@sinamp_a0*@sinamp_wa0)/(\ 1*gt9*omgt0*@sinamp_wa1+\ 9*gt8*omgt1*@sinamp_wc8+\ 36*gt7*omgt2*@sinamp_wc7+\ 84*gt6*omgt3*@sinamp_wc6+\ 126*gt5*omgt4*@sinamp_wc5+\ 126*gt4*omgt5*@sinamp_wc4+\ 84*gt3*omgt6*@sinamp_wc3+\ 36*gt2*omgt7*@sinamp_wc2+\ 9*gt1*omgt8*@sinamp_wc1+\ 1*gt0*omgt9*@sinamp_wa0) endif endif ; ; sine frequency ; if(@sinfreq_interp=="constant") sinfreq=@sinfreq_const elseif(@sinfreq_interp=="linear") sinfreq=(@sinfreq_one-@sinfreq_zero)*gt+@sinfreq_zero elseif(@nsinfreq==3) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)/\ ((@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)/\ ((@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)/\ ((@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt2*omgt0*@sinfreq_a1+\ 2*gt1*omgt1*@sinfreq_c1+\ 1*gt0*omgt2*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt2*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 2*gt1*omgt1*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt2*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt2*omgt0*@sinfreq_wa1+\ 2*gt1*omgt1*@sinfreq_wc1+\ 1*gt0*omgt2*@sinfreq_wa0) endif elseif(@nsinfreq==4) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)/\ ((@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)/\ ((@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)/\ ((@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)/\ ((@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt3*omgt0*@sinfreq_a1+\ 3*gt2*omgt1*@sinfreq_c2+\ 3*gt1*omgt2*@sinfreq_c1+\ 1*gt0*omgt3*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt3*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 3*gt2*omgt1*@sinfreq_c2*@sinfreq_wc2+\ 3*gt1*omgt2*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt3*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt3*omgt0*@sinfreq_wa1+\ 3*gt2*omgt1*@sinfreq_wc2+\ 3*gt1*omgt2*@sinfreq_wc1+\ 1*gt0*omgt3*@sinfreq_wa0) endif elseif(@nsinfreq==5) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)/(\ (@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)/(\ (@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)/(\ (@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*\ (gt-@sinfreq_lt5)/(\ (@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*\ (gt-@sinfreq_lt4)/(\ (@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt4*omgt0*@sinfreq_a1+\ 4*gt3*omgt1*@sinfreq_c3+\ 6*gt2*omgt2*@sinfreq_c2+\ 4*gt1*omgt3*@sinfreq_c1+\ 1*gt0*omgt4*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt4*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 4*gt3*omgt1*@sinfreq_c3*@sinfreq_wc3+\ 6*gt2*omgt2*@sinfreq_c2*@sinfreq_wc2+\ 4*gt1*omgt3*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt4*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt4*omgt0*@sinfreq_wa1+\ 4*gt3*omgt1*@sinfreq_wc3+\ 6*gt2*omgt2*@sinfreq_wc2+\ 4*gt1*omgt3*@sinfreq_wc1+\ 1*gt0*omgt4*@sinfreq_wa0) endif elseif(@nsinfreq==6) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)/(\ (@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5)*(@sinfreq_lt1-@sinfreq_lt6))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)/(\ (@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5)*(@sinfreq_lt2-@sinfreq_lt6))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)/(\ (@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5)*(@sinfreq_lt3-@sinfreq_lt6))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)/(\ (@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5)*(@sinfreq_lt4-@sinfreq_lt6))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt6)/(\ (@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)*(@sinfreq_lt5-@sinfreq_lt6))+\ @sinfreq_l6*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)/(\ (@sinfreq_lt6-@sinfreq_lt1)*(@sinfreq_lt6-@sinfreq_lt2)*(@sinfreq_lt6-@sinfreq_lt3)*\ (@sinfreq_lt6-@sinfreq_lt4)*(@sinfreq_lt6-@sinfreq_lt5)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt5*omgt0*@sinfreq_a1+\ 5*gt4*omgt1*@sinfreq_c4+\ 10*gt3*omgt2*@sinfreq_c3+\ 10*gt2*omgt3*@sinfreq_c2+\ 5*gt1*omgt4*@sinfreq_c1+\ 1*gt0*omgt5*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt5*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 5*gt4*omgt1*@sinfreq_c4*@sinfreq_wc4+\ 10*gt3*omgt2*@sinfreq_c3*@sinfreq_wc3+\ 10*gt2*omgt3*@sinfreq_c2*@sinfreq_wc2+\ 5*gt1*omgt4*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt5*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt5*omgt0*@sinfreq_wa1+\ 5*gt4*omgt1*@sinfreq_wc4+\ 10*gt3*omgt2*@sinfreq_wc3+\ 10*gt2*omgt3*@sinfreq_wc2+\ 5*gt1*omgt4*@sinfreq_wc1+\ 1*gt0*omgt5*@sinfreq_wa0) endif elseif(@nsinfreq==7) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5)*(@sinfreq_lt1-@sinfreq_lt6)*(@sinfreq_lt1-@sinfreq_lt7))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5)*(@sinfreq_lt2-@sinfreq_lt6)*(@sinfreq_lt2-@sinfreq_lt7))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5)*(@sinfreq_lt3-@sinfreq_lt6)*(@sinfreq_lt3-@sinfreq_lt7))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5)*(@sinfreq_lt4-@sinfreq_lt6)*(@sinfreq_lt4-@sinfreq_lt7))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)*(@sinfreq_lt5-@sinfreq_lt6)*(@sinfreq_lt5-@sinfreq_lt7))+\ @sinfreq_l6*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt6-@sinfreq_lt1)*(@sinfreq_lt6-@sinfreq_lt2)*(@sinfreq_lt6-@sinfreq_lt3)*\ (@sinfreq_lt6-@sinfreq_lt4)*(@sinfreq_lt6-@sinfreq_lt5)*(@sinfreq_lt6-@sinfreq_lt7))+\ @sinfreq_l7*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)/(\ (@sinfreq_lt7-@sinfreq_lt1)*(@sinfreq_lt7-@sinfreq_lt2)*(@sinfreq_lt7-@sinfreq_lt3)*\ (@sinfreq_lt7-@sinfreq_lt4)*(@sinfreq_lt7-@sinfreq_lt5)*(@sinfreq_lt7-@sinfreq_lt6)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt6*omgt0*@sinfreq_a1+\ 6*gt5*omgt1*@sinfreq_c5+\ 15*gt4*omgt2*@sinfreq_c4+\ 20*gt3*omgt3*@sinfreq_c3+\ 15*gt2*omgt4*@sinfreq_c2+\ 6*gt1*omgt5*@sinfreq_c1+\ 1*gt0*omgt6*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt6*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 6*gt5*omgt1*@sinfreq_c5*@sinfreq_wc5+\ 15*gt4*omgt2*@sinfreq_c4*@sinfreq_wc4+\ 20*gt3*omgt3*@sinfreq_c3*@sinfreq_wc3+\ 15*gt2*omgt4*@sinfreq_c2*@sinfreq_wc2+\ 6*gt1*omgt5*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt6*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt6*omgt0*@sinfreq_wa1+\ 6*gt5*omgt1*@sinfreq_wc5+\ 15*gt4*omgt2*@sinfreq_wc4+\ 20*gt3*omgt3*@sinfreq_wc3+\ 15*gt2*omgt4*@sinfreq_wc2+\ 6*gt1*omgt5*@sinfreq_wc1+\ 1*gt0*omgt6*@sinfreq_wa0) endif elseif(@nsinfreq==8) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5)*(@sinfreq_lt1-@sinfreq_lt6)*(@sinfreq_lt1-@sinfreq_lt7)*\ (@sinfreq_lt1-@sinfreq_lt8))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5)*(@sinfreq_lt2-@sinfreq_lt6)*(@sinfreq_lt2-@sinfreq_lt7)*\ (@sinfreq_lt2-@sinfreq_lt8))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5)*(@sinfreq_lt3-@sinfreq_lt6)*(@sinfreq_lt3-@sinfreq_lt7)*\ (@sinfreq_lt3-@sinfreq_lt8))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5)*(@sinfreq_lt4-@sinfreq_lt6)*(@sinfreq_lt4-@sinfreq_lt7)*\ (@sinfreq_lt4-@sinfreq_lt8))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)*(@sinfreq_lt5-@sinfreq_lt6)*(@sinfreq_lt5-@sinfreq_lt7)*\ (@sinfreq_lt5-@sinfreq_lt8))+\ @sinfreq_l6*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt6-@sinfreq_lt1)*(@sinfreq_lt6-@sinfreq_lt2)*(@sinfreq_lt6-@sinfreq_lt3)*\ (@sinfreq_lt6-@sinfreq_lt4)*(@sinfreq_lt6-@sinfreq_lt5)*(@sinfreq_lt6-@sinfreq_lt7)*\ (@sinfreq_lt6-@sinfreq_lt8))+\ @sinfreq_l7*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt8)/(\ (@sinfreq_lt7-@sinfreq_lt1)*(@sinfreq_lt7-@sinfreq_lt2)*(@sinfreq_lt7-@sinfreq_lt3)*\ (@sinfreq_lt7-@sinfreq_lt4)*(@sinfreq_lt7-@sinfreq_lt5)*(@sinfreq_lt7-@sinfreq_lt6)*\ (@sinfreq_lt7-@sinfreq_lt8))+\ @sinfreq_l8*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)/(\ (@sinfreq_lt8-@sinfreq_lt1)*(@sinfreq_lt8-@sinfreq_lt2)*(@sinfreq_lt8-@sinfreq_lt3)*\ (@sinfreq_lt8-@sinfreq_lt4)*(@sinfreq_lt8-@sinfreq_lt5)*(@sinfreq_lt8-@sinfreq_lt6)*\ (@sinfreq_lt8-@sinfreq_lt7)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt7*omgt0*@sinfreq_a1+\ 7*gt6*omgt1*@sinfreq_c6+\ 21*gt5*omgt2*@sinfreq_c5+\ 35*gt4*omgt3*@sinfreq_c4+\ 35*gt3*omgt4*@sinfreq_c3+\ 21*gt2*omgt5*@sinfreq_c2+\ 7*gt1*omgt6*@sinfreq_c1+\ 1*gt0*omgt7*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt7*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 7*gt6*omgt1*@sinfreq_c6*@sinfreq_wc6+\ 21*gt5*omgt2*@sinfreq_c5*@sinfreq_wc5+\ 35*gt4*omgt3*@sinfreq_c4*@sinfreq_wc4+\ 35*gt3*omgt4*@sinfreq_c3*@sinfreq_wc3+\ 21*gt2*omgt5*@sinfreq_c2*@sinfreq_wc2+\ 7*gt1*omgt6*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt7*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt7*omgt0*@sinfreq_wa1+\ 7*gt6*omgt1*@sinfreq_wc6+\ 21*gt5*omgt2*@sinfreq_wc5+\ 35*gt4*omgt3*@sinfreq_wc4+\ 35*gt3*omgt4*@sinfreq_wc3+\ 21*gt2*omgt5*@sinfreq_wc2+\ 7*gt1*omgt6*@sinfreq_wc1+\ 1*gt0*omgt7*@sinfreq_wa0) endif elseif(@nsinfreq==9) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5)*(@sinfreq_lt1-@sinfreq_lt6)*(@sinfreq_lt1-@sinfreq_lt7)*\ (@sinfreq_lt1-@sinfreq_lt8)*(@sinfreq_lt1-@sinfreq_lt9))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5)*(@sinfreq_lt2-@sinfreq_lt6)*(@sinfreq_lt2-@sinfreq_lt7)*\ (@sinfreq_lt2-@sinfreq_lt8)*(@sinfreq_lt2-@sinfreq_lt9))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5)*(@sinfreq_lt3-@sinfreq_lt6)*(@sinfreq_lt3-@sinfreq_lt7)*\ (@sinfreq_lt3-@sinfreq_lt8)*(@sinfreq_lt3-@sinfreq_lt9))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5)*(@sinfreq_lt4-@sinfreq_lt6)*(@sinfreq_lt4-@sinfreq_lt7)*\ (@sinfreq_lt4-@sinfreq_lt8)*(@sinfreq_lt4-@sinfreq_lt9))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)*(@sinfreq_lt5-@sinfreq_lt6)*(@sinfreq_lt5-@sinfreq_lt7)*\ (@sinfreq_lt5-@sinfreq_lt8)*(@sinfreq_lt5-@sinfreq_lt9))+\ @sinfreq_l6*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt6-@sinfreq_lt1)*(@sinfreq_lt6-@sinfreq_lt2)*(@sinfreq_lt6-@sinfreq_lt3)*\ (@sinfreq_lt6-@sinfreq_lt4)*(@sinfreq_lt6-@sinfreq_lt5)*(@sinfreq_lt6-@sinfreq_lt7)*\ (@sinfreq_lt6-@sinfreq_lt8)*(@sinfreq_lt6-@sinfreq_lt9))+\ @sinfreq_l7*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt7-@sinfreq_lt1)*(@sinfreq_lt7-@sinfreq_lt2)*(@sinfreq_lt7-@sinfreq_lt3)*\ (@sinfreq_lt7-@sinfreq_lt4)*(@sinfreq_lt7-@sinfreq_lt5)*(@sinfreq_lt7-@sinfreq_lt6)*\ (@sinfreq_lt7-@sinfreq_lt8)*(@sinfreq_lt7-@sinfreq_lt9))+\ @sinfreq_l8*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt9)/\ ((@sinfreq_lt8-@sinfreq_lt1)*(@sinfreq_lt8-@sinfreq_lt2)*(@sinfreq_lt8-@sinfreq_lt3)*\ (@sinfreq_lt8-@sinfreq_lt4)*(@sinfreq_lt8-@sinfreq_lt5)*(@sinfreq_lt8-@sinfreq_lt6)*\ (@sinfreq_lt8-@sinfreq_lt7)*(@sinfreq_lt8-@sinfreq_lt9))+\ @sinfreq_l9*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)/\ ((@sinfreq_lt9-@sinfreq_lt1)*(@sinfreq_lt9-@sinfreq_lt2)*(@sinfreq_lt9-@sinfreq_lt3)*\ (@sinfreq_lt9-@sinfreq_lt4)*(@sinfreq_lt9-@sinfreq_lt5)*(@sinfreq_lt9-@sinfreq_lt6)*\ (@sinfreq_lt9-@sinfreq_lt7)*(@sinfreq_lt9-@sinfreq_lt8)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt8*omgt0*@sinfreq_a1+\ 8*gt7*omgt1*@sinfreq_c7+\ 28*gt6*omgt2*@sinfreq_c6+\ 56*gt5*omgt3*@sinfreq_c5+\ 70*gt4*omgt4*@sinfreq_c4+\ 56*gt3*omgt5*@sinfreq_c3+\ 28*gt2*omgt6*@sinfreq_c2+\ 8*gt1*omgt7*@sinfreq_c1+\ 1*gt0*omgt8*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt8*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 8*gt7*omgt1*@sinfreq_c7*@sinfreq_wc7+\ 28*gt6*omgt2*@sinfreq_c6*@sinfreq_wc6+\ 56*gt5*omgt3*@sinfreq_c5*@sinfreq_wc5+\ 70*gt4*omgt4*@sinfreq_c4*@sinfreq_wc4+\ 56*gt3*omgt5*@sinfreq_c3*@sinfreq_wc3+\ 28*gt2*omgt6*@sinfreq_c2*@sinfreq_wc2+\ 8*gt1*omgt7*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt8*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt8*omgt0*@sinfreq_wa1+\ 8*gt7*omgt1*@sinfreq_wc7+\ 28*gt6*omgt2*@sinfreq_wc6+\ 56*gt5*omgt3*@sinfreq_wc5+\ 70*gt4*omgt4*@sinfreq_wc4+\ 56*gt3*omgt5*@sinfreq_wc3+\ 28*gt2*omgt6*@sinfreq_wc2+\ 8*gt1*omgt7*@sinfreq_wc1+\ 1*gt0*omgt8*@sinfreq_wa0) endif elseif(@nsinfreq==10) if(@sinfreq_interp=="Lagrange") sinfreq=\ @sinfreq_l1*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt1-@sinfreq_lt2)*(@sinfreq_lt1-@sinfreq_lt3)*(@sinfreq_lt1-@sinfreq_lt4)*\ (@sinfreq_lt1-@sinfreq_lt5)*(@sinfreq_lt1-@sinfreq_lt6)*(@sinfreq_lt1-@sinfreq_lt7)*\ (@sinfreq_lt1-@sinfreq_lt8)*(@sinfreq_lt1-@sinfreq_lt9)*(@sinfreq_lt1-@sinfreq_lt10))+\ @sinfreq_l2*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt2-@sinfreq_lt1)*(@sinfreq_lt2-@sinfreq_lt3)*(@sinfreq_lt2-@sinfreq_lt4)*\ (@sinfreq_lt2-@sinfreq_lt5)*(@sinfreq_lt2-@sinfreq_lt6)*(@sinfreq_lt2-@sinfreq_lt7)*\ (@sinfreq_lt2-@sinfreq_lt8)*(@sinfreq_lt2-@sinfreq_lt9)*(@sinfreq_lt2-@sinfreq_lt10))+\ @sinfreq_l3*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt3-@sinfreq_lt1)*(@sinfreq_lt3-@sinfreq_lt2)*(@sinfreq_lt3-@sinfreq_lt4)*\ (@sinfreq_lt3-@sinfreq_lt5)*(@sinfreq_lt3-@sinfreq_lt6)*(@sinfreq_lt3-@sinfreq_lt7)*\ (@sinfreq_lt3-@sinfreq_lt8)*(@sinfreq_lt3-@sinfreq_lt9)*(@sinfreq_lt3-@sinfreq_lt10))+\ @sinfreq_l4*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt5)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt4-@sinfreq_lt1)*(@sinfreq_lt4-@sinfreq_lt2)*(@sinfreq_lt4-@sinfreq_lt3)*\ (@sinfreq_lt4-@sinfreq_lt5)*(@sinfreq_lt4-@sinfreq_lt6)*(@sinfreq_lt4-@sinfreq_lt7)*\ (@sinfreq_lt4-@sinfreq_lt8)*(@sinfreq_lt4-@sinfreq_lt9)*(@sinfreq_lt4-@sinfreq_lt10))+\ @sinfreq_l5*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt5-@sinfreq_lt1)*(@sinfreq_lt5-@sinfreq_lt2)*(@sinfreq_lt5-@sinfreq_lt3)*\ (@sinfreq_lt5-@sinfreq_lt4)*(@sinfreq_lt5-@sinfreq_lt6)*(@sinfreq_lt5-@sinfreq_lt7)*\ (@sinfreq_lt5-@sinfreq_lt8)*(@sinfreq_lt5-@sinfreq_lt9)*(@sinfreq_lt5-@sinfreq_lt10))+\ @sinfreq_l6*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt6-@sinfreq_lt1)*(@sinfreq_lt6-@sinfreq_lt2)*(@sinfreq_lt6-@sinfreq_lt3)*\ (@sinfreq_lt6-@sinfreq_lt4)*(@sinfreq_lt6-@sinfreq_lt5)*(@sinfreq_lt6-@sinfreq_lt7)*\ (@sinfreq_lt6-@sinfreq_lt8)*(@sinfreq_lt6-@sinfreq_lt9)*(@sinfreq_lt6-@sinfreq_lt10))+\ @sinfreq_l7*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt7-@sinfreq_lt1)*(@sinfreq_lt7-@sinfreq_lt2)*(@sinfreq_lt7-@sinfreq_lt3)*\ (@sinfreq_lt7-@sinfreq_lt4)*(@sinfreq_lt7-@sinfreq_lt5)*(@sinfreq_lt7-@sinfreq_lt6)*\ (@sinfreq_lt7-@sinfreq_lt8)*(@sinfreq_lt7-@sinfreq_lt9)*(@sinfreq_lt7-@sinfreq_lt10))+\ @sinfreq_l8*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt9)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt8-@sinfreq_lt1)*(@sinfreq_lt8-@sinfreq_lt2)*(@sinfreq_lt8-@sinfreq_lt3)*\ (@sinfreq_lt8-@sinfreq_lt4)*(@sinfreq_lt8-@sinfreq_lt5)*(@sinfreq_lt8-@sinfreq_lt6)*\ (@sinfreq_lt8-@sinfreq_lt7)*(@sinfreq_lt8-@sinfreq_lt9)*(@sinfreq_lt8-@sinfreq_lt10))+\ @sinfreq_l9*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*(gt-@sinfreq_lt4)*\ (gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*(gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*\ (gt-@sinfreq_lt10)/(\ (@sinfreq_lt9-@sinfreq_lt1)*(@sinfreq_lt9-@sinfreq_lt2)*(@sinfreq_lt9-@sinfreq_lt3)*\ (@sinfreq_lt9-@sinfreq_lt4)*(@sinfreq_lt9-@sinfreq_lt5)*(@sinfreq_lt9-@sinfreq_lt6)*\ (@sinfreq_lt9-@sinfreq_lt7)*(@sinfreq_lt9-@sinfreq_lt8)*(@sinfreq_lt9-@sinfreq_lt10))+\ @sinfreq_l10*(gt-@sinfreq_lt1)*(gt-@sinfreq_lt2)*(gt-@sinfreq_lt3)*\ (gt-@sinfreq_lt4)*(gt-@sinfreq_lt5)*(gt-@sinfreq_lt6)*\ (gt-@sinfreq_lt7)*(gt-@sinfreq_lt8)*(gt-@sinfreq_lt9)/(\ (@sinfreq_lt10-@sinfreq_lt1)*(@sinfreq_lt10-@sinfreq_lt2)*(@sinfreq_lt10-@sinfreq_lt3)*\ (@sinfreq_lt10-@sinfreq_lt4)*(@sinfreq_lt10-@sinfreq_lt5)*(@sinfreq_lt10-@sinfreq_lt6)*\ (@sinfreq_lt10-@sinfreq_lt7)*(@sinfreq_lt10-@sinfreq_lt8)*(@sinfreq_lt10-@sinfreq_lt9)) elseif(@sinfreq_interp=="Bezier") sinfreq=\ 1*gt9*omgt0*@sinfreq_a1+\ 9*gt8*omgt1*@sinfreq_c8+\ 36*gt7*omgt2*@sinfreq_c7+\ 84*gt6*omgt3*@sinfreq_c6+\ 126*gt5*omgt4*@sinfreq_c5+\ 126*gt4*omgt5*@sinfreq_c4+\ 84*gt3*omgt6*@sinfreq_c3+\ 36*gt2*omgt7*@sinfreq_c2+\ 9*gt1*omgt8*@sinfreq_c1+\ 1*gt0*omgt9*@sinfreq_a0 elseif(@sinfreq_interp=="rational Bezier") sinfreq=(\ 1*gt9*omgt0*@sinfreq_a1*@sinfreq_wa1+\ 9*gt8*omgt1*@sinfreq_c8*@sinfreq_wc8+\ 36*gt7*omgt2*@sinfreq_c7*@sinfreq_wc7+\ 84*gt6*omgt3*@sinfreq_c6*@sinfreq_wc6+\ 126*gt5*omgt4*@sinfreq_c5*@sinfreq_wc5+\ 126*gt4*omgt5*@sinfreq_c4*@sinfreq_wc4+\ 84*gt3*omgt6*@sinfreq_c3*@sinfreq_wc3+\ 36*gt2*omgt7*@sinfreq_c2*@sinfreq_wc2+\ 9*gt1*omgt8*@sinfreq_c1*@sinfreq_wc1+\ 1*gt0*omgt9*@sinfreq_a0*@sinfreq_wa0)/(\ 1*gt9*omgt0*@sinfreq_wa1+\ 9*gt8*omgt1*@sinfreq_wc8+\ 36*gt7*omgt2*@sinfreq_wc7+\ 84*gt6*omgt3*@sinfreq_wc6+\ 126*gt5*omgt4*@sinfreq_wc5+\ 126*gt4*omgt5*@sinfreq_wc4+\ 84*gt3*omgt6*@sinfreq_wc3+\ 36*gt2*omgt7*@sinfreq_wc2+\ 9*gt1*omgt8*@sinfreq_wc1+\ 1*gt0*omgt9*@sinfreq_wa0) endif endif ; ; sine phase ; if(@sinphase_interp=="constant") sinphase=@sinphase_const elseif(@sinphase_interp=="linear") sinphase=(@sinphase_one-@sinphase_zero)*gt+@sinphase_zero elseif(@nsinphase==3) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)/\ ((@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)/\ ((@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)/\ ((@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt2*omgt0*@sinphase_a1+\ 2*gt1*omgt1*@sinphase_c1+\ 1*gt0*omgt2*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt2*omgt0*@sinphase_a1*@sinphase_wa1+\ 2*gt1*omgt1*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt2*@sinphase_a0*@sinphase_wa0)/(\ 1*gt2*omgt0*@sinphase_wa1+\ 2*gt1*omgt1*@sinphase_wc1+\ 1*gt0*omgt2*@sinphase_wa0) endif elseif(@nsinphase==4) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)/\ ((@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)/\ ((@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)/\ ((@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)/\ ((@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt3*omgt0*@sinphase_a1+\ 3*gt2*omgt1*@sinphase_c2+\ 3*gt1*omgt2*@sinphase_c1+\ 1*gt0*omgt3*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt3*omgt0*@sinphase_a1*@sinphase_wa1+\ 3*gt2*omgt1*@sinphase_c2*@sinphase_wc2+\ 3*gt1*omgt2*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt3*@sinphase_a0*@sinphase_wa0)/(\ 1*gt3*omgt0*@sinphase_wa1+\ 3*gt2*omgt1*@sinphase_wc2+\ 3*gt1*omgt2*@sinphase_wc1+\ 1*gt0*omgt3*@sinphase_wa0) endif elseif(@nsinphase==5) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)/(\ (@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)/(\ (@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)/(\ (@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*\ (gt-@sinphase_lt5)/(\ (@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*\ (gt-@sinphase_lt4)/(\ (@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt4*omgt0*@sinphase_a1+\ 4*gt3*omgt1*@sinphase_c3+\ 6*gt2*omgt2*@sinphase_c2+\ 4*gt1*omgt3*@sinphase_c1+\ 1*gt0*omgt4*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt4*omgt0*@sinphase_a1*@sinphase_wa1+\ 4*gt3*omgt1*@sinphase_c3*@sinphase_wc3+\ 6*gt2*omgt2*@sinphase_c2*@sinphase_wc2+\ 4*gt1*omgt3*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt4*@sinphase_a0*@sinphase_wa0)/(\ 1*gt4*omgt0*@sinphase_wa1+\ 4*gt3*omgt1*@sinphase_wc3+\ 6*gt2*omgt2*@sinphase_wc2+\ 4*gt1*omgt3*@sinphase_wc1+\ 1*gt0*omgt4*@sinphase_wa0) endif elseif(@nsinphase==6) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)/(\ (@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5)*(@sinphase_lt1-@sinphase_lt6))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)/(\ (@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5)*(@sinphase_lt2-@sinphase_lt6))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)/(\ (@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5)*(@sinphase_lt3-@sinphase_lt6))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)/(\ (@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5)*(@sinphase_lt4-@sinphase_lt6))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt6)/(\ (@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)*(@sinphase_lt5-@sinphase_lt6))+\ @sinphase_l6*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)/(\ (@sinphase_lt6-@sinphase_lt1)*(@sinphase_lt6-@sinphase_lt2)*(@sinphase_lt6-@sinphase_lt3)*\ (@sinphase_lt6-@sinphase_lt4)*(@sinphase_lt6-@sinphase_lt5)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt5*omgt0*@sinphase_a1+\ 5*gt4*omgt1*@sinphase_c4+\ 10*gt3*omgt2*@sinphase_c3+\ 10*gt2*omgt3*@sinphase_c2+\ 5*gt1*omgt4*@sinphase_c1+\ 1*gt0*omgt5*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt5*omgt0*@sinphase_a1*@sinphase_wa1+\ 5*gt4*omgt1*@sinphase_c4*@sinphase_wc4+\ 10*gt3*omgt2*@sinphase_c3*@sinphase_wc3+\ 10*gt2*omgt3*@sinphase_c2*@sinphase_wc2+\ 5*gt1*omgt4*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt5*@sinphase_a0*@sinphase_wa0)/(\ 1*gt5*omgt0*@sinphase_wa1+\ 5*gt4*omgt1*@sinphase_wc4+\ 10*gt3*omgt2*@sinphase_wc3+\ 10*gt2*omgt3*@sinphase_wc2+\ 5*gt1*omgt4*@sinphase_wc1+\ 1*gt0*omgt5*@sinphase_wa0) endif elseif(@nsinphase==7) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5)*(@sinphase_lt1-@sinphase_lt6)*(@sinphase_lt1-@sinphase_lt7))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5)*(@sinphase_lt2-@sinphase_lt6)*(@sinphase_lt2-@sinphase_lt7))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5)*(@sinphase_lt3-@sinphase_lt6)*(@sinphase_lt3-@sinphase_lt7))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5)*(@sinphase_lt4-@sinphase_lt6)*(@sinphase_lt4-@sinphase_lt7))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)*(@sinphase_lt5-@sinphase_lt6)*(@sinphase_lt5-@sinphase_lt7))+\ @sinphase_l6*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt7)/(\ (@sinphase_lt6-@sinphase_lt1)*(@sinphase_lt6-@sinphase_lt2)*(@sinphase_lt6-@sinphase_lt3)*\ (@sinphase_lt6-@sinphase_lt4)*(@sinphase_lt6-@sinphase_lt5)*(@sinphase_lt6-@sinphase_lt7))+\ @sinphase_l7*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)/(\ (@sinphase_lt7-@sinphase_lt1)*(@sinphase_lt7-@sinphase_lt2)*(@sinphase_lt7-@sinphase_lt3)*\ (@sinphase_lt7-@sinphase_lt4)*(@sinphase_lt7-@sinphase_lt5)*(@sinphase_lt7-@sinphase_lt6)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt6*omgt0*@sinphase_a1+\ 6*gt5*omgt1*@sinphase_c5+\ 15*gt4*omgt2*@sinphase_c4+\ 20*gt3*omgt3*@sinphase_c3+\ 15*gt2*omgt4*@sinphase_c2+\ 6*gt1*omgt5*@sinphase_c1+\ 1*gt0*omgt6*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt6*omgt0*@sinphase_a1*@sinphase_wa1+\ 6*gt5*omgt1*@sinphase_c5*@sinphase_wc5+\ 15*gt4*omgt2*@sinphase_c4*@sinphase_wc4+\ 20*gt3*omgt3*@sinphase_c3*@sinphase_wc3+\ 15*gt2*omgt4*@sinphase_c2*@sinphase_wc2+\ 6*gt1*omgt5*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt6*@sinphase_a0*@sinphase_wa0)/(\ 1*gt6*omgt0*@sinphase_wa1+\ 6*gt5*omgt1*@sinphase_wc5+\ 15*gt4*omgt2*@sinphase_wc4+\ 20*gt3*omgt3*@sinphase_wc3+\ 15*gt2*omgt4*@sinphase_wc2+\ 6*gt1*omgt5*@sinphase_wc1+\ 1*gt0*omgt6*@sinphase_wa0) endif elseif(@nsinphase==8) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5)*(@sinphase_lt1-@sinphase_lt6)*(@sinphase_lt1-@sinphase_lt7)*\ (@sinphase_lt1-@sinphase_lt8))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5)*(@sinphase_lt2-@sinphase_lt6)*(@sinphase_lt2-@sinphase_lt7)*\ (@sinphase_lt2-@sinphase_lt8))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5)*(@sinphase_lt3-@sinphase_lt6)*(@sinphase_lt3-@sinphase_lt7)*\ (@sinphase_lt3-@sinphase_lt8))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5)*(@sinphase_lt4-@sinphase_lt6)*(@sinphase_lt4-@sinphase_lt7)*\ (@sinphase_lt4-@sinphase_lt8))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)*(@sinphase_lt5-@sinphase_lt6)*(@sinphase_lt5-@sinphase_lt7)*\ (@sinphase_lt5-@sinphase_lt8))+\ @sinphase_l6*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/(\ (@sinphase_lt6-@sinphase_lt1)*(@sinphase_lt6-@sinphase_lt2)*(@sinphase_lt6-@sinphase_lt3)*\ (@sinphase_lt6-@sinphase_lt4)*(@sinphase_lt6-@sinphase_lt5)*(@sinphase_lt6-@sinphase_lt7)*\ (@sinphase_lt6-@sinphase_lt8))+\ @sinphase_l7*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt8)/(\ (@sinphase_lt7-@sinphase_lt1)*(@sinphase_lt7-@sinphase_lt2)*(@sinphase_lt7-@sinphase_lt3)*\ (@sinphase_lt7-@sinphase_lt4)*(@sinphase_lt7-@sinphase_lt5)*(@sinphase_lt7-@sinphase_lt6)*\ (@sinphase_lt7-@sinphase_lt8))+\ @sinphase_l8*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt7)/(\ (@sinphase_lt8-@sinphase_lt1)*(@sinphase_lt8-@sinphase_lt2)*(@sinphase_lt8-@sinphase_lt3)*\ (@sinphase_lt8-@sinphase_lt4)*(@sinphase_lt8-@sinphase_lt5)*(@sinphase_lt8-@sinphase_lt6)*\ (@sinphase_lt8-@sinphase_lt7)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt7*omgt0*@sinphase_a1+\ 7*gt6*omgt1*@sinphase_c6+\ 21*gt5*omgt2*@sinphase_c5+\ 35*gt4*omgt3*@sinphase_c4+\ 35*gt3*omgt4*@sinphase_c3+\ 21*gt2*omgt5*@sinphase_c2+\ 7*gt1*omgt6*@sinphase_c1+\ 1*gt0*omgt7*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt7*omgt0*@sinphase_a1*@sinphase_wa1+\ 7*gt6*omgt1*@sinphase_c6*@sinphase_wc6+\ 21*gt5*omgt2*@sinphase_c5*@sinphase_wc5+\ 35*gt4*omgt3*@sinphase_c4*@sinphase_wc4+\ 35*gt3*omgt4*@sinphase_c3*@sinphase_wc3+\ 21*gt2*omgt5*@sinphase_c2*@sinphase_wc2+\ 7*gt1*omgt6*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt7*@sinphase_a0*@sinphase_wa0)/(\ 1*gt7*omgt0*@sinphase_wa1+\ 7*gt6*omgt1*@sinphase_wc6+\ 21*gt5*omgt2*@sinphase_wc5+\ 35*gt4*omgt3*@sinphase_wc4+\ 35*gt3*omgt4*@sinphase_wc3+\ 21*gt2*omgt5*@sinphase_wc2+\ 7*gt1*omgt6*@sinphase_wc1+\ 1*gt0*omgt7*@sinphase_wa0) endif elseif(@nsinphase==9) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5)*(@sinphase_lt1-@sinphase_lt6)*(@sinphase_lt1-@sinphase_lt7)*\ (@sinphase_lt1-@sinphase_lt8)*(@sinphase_lt1-@sinphase_lt9))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5)*(@sinphase_lt2-@sinphase_lt6)*(@sinphase_lt2-@sinphase_lt7)*\ (@sinphase_lt2-@sinphase_lt8)*(@sinphase_lt2-@sinphase_lt9))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5)*(@sinphase_lt3-@sinphase_lt6)*(@sinphase_lt3-@sinphase_lt7)*\ (@sinphase_lt3-@sinphase_lt8)*(@sinphase_lt3-@sinphase_lt9))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5)*(@sinphase_lt4-@sinphase_lt6)*(@sinphase_lt4-@sinphase_lt7)*\ (@sinphase_lt4-@sinphase_lt8)*(@sinphase_lt4-@sinphase_lt9))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)*(@sinphase_lt5-@sinphase_lt6)*(@sinphase_lt5-@sinphase_lt7)*\ (@sinphase_lt5-@sinphase_lt8)*(@sinphase_lt5-@sinphase_lt9))+\ @sinphase_l6*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt6-@sinphase_lt1)*(@sinphase_lt6-@sinphase_lt2)*(@sinphase_lt6-@sinphase_lt3)*\ (@sinphase_lt6-@sinphase_lt4)*(@sinphase_lt6-@sinphase_lt5)*(@sinphase_lt6-@sinphase_lt7)*\ (@sinphase_lt6-@sinphase_lt8)*(@sinphase_lt6-@sinphase_lt9))+\ @sinphase_l7*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/\ ((@sinphase_lt7-@sinphase_lt1)*(@sinphase_lt7-@sinphase_lt2)*(@sinphase_lt7-@sinphase_lt3)*\ (@sinphase_lt7-@sinphase_lt4)*(@sinphase_lt7-@sinphase_lt5)*(@sinphase_lt7-@sinphase_lt6)*\ (@sinphase_lt7-@sinphase_lt8)*(@sinphase_lt7-@sinphase_lt9))+\ @sinphase_l8*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt9)/\ ((@sinphase_lt8-@sinphase_lt1)*(@sinphase_lt8-@sinphase_lt2)*(@sinphase_lt8-@sinphase_lt3)*\ (@sinphase_lt8-@sinphase_lt4)*(@sinphase_lt8-@sinphase_lt5)*(@sinphase_lt8-@sinphase_lt6)*\ (@sinphase_lt8-@sinphase_lt7)*(@sinphase_lt8-@sinphase_lt9))+\ @sinphase_l9*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)/\ ((@sinphase_lt9-@sinphase_lt1)*(@sinphase_lt9-@sinphase_lt2)*(@sinphase_lt9-@sinphase_lt3)*\ (@sinphase_lt9-@sinphase_lt4)*(@sinphase_lt9-@sinphase_lt5)*(@sinphase_lt9-@sinphase_lt6)*\ (@sinphase_lt9-@sinphase_lt7)*(@sinphase_lt9-@sinphase_lt8)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt8*omgt0*@sinphase_a1+\ 8*gt7*omgt1*@sinphase_c7+\ 28*gt6*omgt2*@sinphase_c6+\ 56*gt5*omgt3*@sinphase_c5+\ 70*gt4*omgt4*@sinphase_c4+\ 56*gt3*omgt5*@sinphase_c3+\ 28*gt2*omgt6*@sinphase_c2+\ 8*gt1*omgt7*@sinphase_c1+\ 1*gt0*omgt8*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt8*omgt0*@sinphase_a1*@sinphase_wa1+\ 8*gt7*omgt1*@sinphase_c7*@sinphase_wc7+\ 28*gt6*omgt2*@sinphase_c6*@sinphase_wc6+\ 56*gt5*omgt3*@sinphase_c5*@sinphase_wc5+\ 70*gt4*omgt4*@sinphase_c4*@sinphase_wc4+\ 56*gt3*omgt5*@sinphase_c3*@sinphase_wc3+\ 28*gt2*omgt6*@sinphase_c2*@sinphase_wc2+\ 8*gt1*omgt7*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt8*@sinphase_a0*@sinphase_wa0)/(\ 1*gt8*omgt0*@sinphase_wa1+\ 8*gt7*omgt1*@sinphase_wc7+\ 28*gt6*omgt2*@sinphase_wc6+\ 56*gt5*omgt3*@sinphase_wc5+\ 70*gt4*omgt4*@sinphase_wc4+\ 56*gt3*omgt5*@sinphase_wc3+\ 28*gt2*omgt6*@sinphase_wc2+\ 8*gt1*omgt7*@sinphase_wc1+\ 1*gt0*omgt8*@sinphase_wa0) endif elseif(@nsinphase==10) if(@sinphase_interp=="Lagrange") sinphase=\ @sinphase_l1*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt1-@sinphase_lt2)*(@sinphase_lt1-@sinphase_lt3)*(@sinphase_lt1-@sinphase_lt4)*\ (@sinphase_lt1-@sinphase_lt5)*(@sinphase_lt1-@sinphase_lt6)*(@sinphase_lt1-@sinphase_lt7)*\ (@sinphase_lt1-@sinphase_lt8)*(@sinphase_lt1-@sinphase_lt9)*(@sinphase_lt1-@sinphase_lt10))+\ @sinphase_l2*(gt-@sinphase_lt1)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt2-@sinphase_lt1)*(@sinphase_lt2-@sinphase_lt3)*(@sinphase_lt2-@sinphase_lt4)*\ (@sinphase_lt2-@sinphase_lt5)*(@sinphase_lt2-@sinphase_lt6)*(@sinphase_lt2-@sinphase_lt7)*\ (@sinphase_lt2-@sinphase_lt8)*(@sinphase_lt2-@sinphase_lt9)*(@sinphase_lt2-@sinphase_lt10))+\ @sinphase_l3*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt4)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt3-@sinphase_lt1)*(@sinphase_lt3-@sinphase_lt2)*(@sinphase_lt3-@sinphase_lt4)*\ (@sinphase_lt3-@sinphase_lt5)*(@sinphase_lt3-@sinphase_lt6)*(@sinphase_lt3-@sinphase_lt7)*\ (@sinphase_lt3-@sinphase_lt8)*(@sinphase_lt3-@sinphase_lt9)*(@sinphase_lt3-@sinphase_lt10))+\ @sinphase_l4*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt5)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt4-@sinphase_lt1)*(@sinphase_lt4-@sinphase_lt2)*(@sinphase_lt4-@sinphase_lt3)*\ (@sinphase_lt4-@sinphase_lt5)*(@sinphase_lt4-@sinphase_lt6)*(@sinphase_lt4-@sinphase_lt7)*\ (@sinphase_lt4-@sinphase_lt8)*(@sinphase_lt4-@sinphase_lt9)*(@sinphase_lt4-@sinphase_lt10))+\ @sinphase_l5*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt5-@sinphase_lt1)*(@sinphase_lt5-@sinphase_lt2)*(@sinphase_lt5-@sinphase_lt3)*\ (@sinphase_lt5-@sinphase_lt4)*(@sinphase_lt5-@sinphase_lt6)*(@sinphase_lt5-@sinphase_lt7)*\ (@sinphase_lt5-@sinphase_lt8)*(@sinphase_lt5-@sinphase_lt9)*(@sinphase_lt5-@sinphase_lt10))+\ @sinphase_l6*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt6-@sinphase_lt1)*(@sinphase_lt6-@sinphase_lt2)*(@sinphase_lt6-@sinphase_lt3)*\ (@sinphase_lt6-@sinphase_lt4)*(@sinphase_lt6-@sinphase_lt5)*(@sinphase_lt6-@sinphase_lt7)*\ (@sinphase_lt6-@sinphase_lt8)*(@sinphase_lt6-@sinphase_lt9)*(@sinphase_lt6-@sinphase_lt10))+\ @sinphase_l7*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt7-@sinphase_lt1)*(@sinphase_lt7-@sinphase_lt2)*(@sinphase_lt7-@sinphase_lt3)*\ (@sinphase_lt7-@sinphase_lt4)*(@sinphase_lt7-@sinphase_lt5)*(@sinphase_lt7-@sinphase_lt6)*\ (@sinphase_lt7-@sinphase_lt8)*(@sinphase_lt7-@sinphase_lt9)*(@sinphase_lt7-@sinphase_lt10))+\ @sinphase_l8*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt9)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt8-@sinphase_lt1)*(@sinphase_lt8-@sinphase_lt2)*(@sinphase_lt8-@sinphase_lt3)*\ (@sinphase_lt8-@sinphase_lt4)*(@sinphase_lt8-@sinphase_lt5)*(@sinphase_lt8-@sinphase_lt6)*\ (@sinphase_lt8-@sinphase_lt7)*(@sinphase_lt8-@sinphase_lt9)*(@sinphase_lt8-@sinphase_lt10))+\ @sinphase_l9*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*(gt-@sinphase_lt4)*\ (gt-@sinphase_lt5)*(gt-@sinphase_lt6)*(gt-@sinphase_lt7)*(gt-@sinphase_lt8)*\ (gt-@sinphase_lt10)/(\ (@sinphase_lt9-@sinphase_lt1)*(@sinphase_lt9-@sinphase_lt2)*(@sinphase_lt9-@sinphase_lt3)*\ (@sinphase_lt9-@sinphase_lt4)*(@sinphase_lt9-@sinphase_lt5)*(@sinphase_lt9-@sinphase_lt6)*\ (@sinphase_lt9-@sinphase_lt7)*(@sinphase_lt9-@sinphase_lt8)*(@sinphase_lt9-@sinphase_lt10))+\ @sinphase_l10*(gt-@sinphase_lt1)*(gt-@sinphase_lt2)*(gt-@sinphase_lt3)*\ (gt-@sinphase_lt4)*(gt-@sinphase_lt5)*(gt-@sinphase_lt6)*\ (gt-@sinphase_lt7)*(gt-@sinphase_lt8)*(gt-@sinphase_lt9)/(\ (@sinphase_lt10-@sinphase_lt1)*(@sinphase_lt10-@sinphase_lt2)*(@sinphase_lt10-@sinphase_lt3)*\ (@sinphase_lt10-@sinphase_lt4)*(@sinphase_lt10-@sinphase_lt5)*(@sinphase_lt10-@sinphase_lt6)*\ (@sinphase_lt10-@sinphase_lt7)*(@sinphase_lt10-@sinphase_lt8)*(@sinphase_lt10-@sinphase_lt9)) elseif(@sinphase_interp=="Bezier") sinphase=\ 1*gt9*omgt0*@sinphase_a1+\ 9*gt8*omgt1*@sinphase_c8+\ 36*gt7*omgt2*@sinphase_c7+\ 84*gt6*omgt3*@sinphase_c6+\ 126*gt5*omgt4*@sinphase_c5+\ 126*gt4*omgt5*@sinphase_c4+\ 84*gt3*omgt6*@sinphase_c3+\ 36*gt2*omgt7*@sinphase_c2+\ 9*gt1*omgt8*@sinphase_c1+\ 1*gt0*omgt9*@sinphase_a0 elseif(@sinphase_interp=="rational Bezier") sinphase=(\ 1*gt9*omgt0*@sinphase_a1*@sinphase_wa1+\ 9*gt8*omgt1*@sinphase_c8*@sinphase_wc8+\ 36*gt7*omgt2*@sinphase_c7*@sinphase_wc7+\ 84*gt6*omgt3*@sinphase_c6*@sinphase_wc6+\ 126*gt5*omgt4*@sinphase_c5*@sinphase_wc5+\ 126*gt4*omgt5*@sinphase_c4*@sinphase_wc4+\ 84*gt3*omgt6*@sinphase_c3*@sinphase_wc3+\ 36*gt2*omgt7*@sinphase_c2*@sinphase_wc2+\ 9*gt1*omgt8*@sinphase_c1*@sinphase_wc1+\ 1*gt0*omgt9*@sinphase_a0*@sinphase_wa0)/(\ 1*gt9*omgt0*@sinphase_wa1+\ 9*gt8*omgt1*@sinphase_wc8+\ 36*gt7*omgt2*@sinphase_wc7+\ 84*gt6*omgt3*@sinphase_wc6+\ 126*gt5*omgt4*@sinphase_wc5+\ 126*gt4*omgt5*@sinphase_wc4+\ 84*gt3*omgt6*@sinphase_wc3+\ 36*gt2*omgt7*@sinphase_wc2+\ 9*gt1*omgt8*@sinphase_wc1+\ 1*gt0*omgt9*@sinphase_wa0) endif endif sinphase=sinphase*#pi/180 ; ; cosine amplitude ; if(@cosamp_interp=="constant") cosamp=@cosamp_const elseif(@cosamp_interp=="linear") cosamp=(@cosamp_one-@cosamp_zero)*gt+@cosamp_zero elseif(@ncosamp==3) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)/\ ((@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)/\ ((@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)/\ ((@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt2*omgt0*@cosamp_a1+\ 2*gt1*omgt1*@cosamp_c1+\ 1*gt0*omgt2*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt2*omgt0*@cosamp_a1*@cosamp_wa1+\ 2*gt1*omgt1*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt2*@cosamp_a0*@cosamp_wa0)/(\ 1*gt2*omgt0*@cosamp_wa1+\ 2*gt1*omgt1*@cosamp_wc1+\ 1*gt0*omgt2*@cosamp_wa0) endif elseif(@ncosamp==4) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)/\ ((@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)/\ ((@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)/\ ((@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)/\ ((@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt3*omgt0*@cosamp_a1+\ 3*gt2*omgt1*@cosamp_c2+\ 3*gt1*omgt2*@cosamp_c1+\ 1*gt0*omgt3*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt3*omgt0*@cosamp_a1*@cosamp_wa1+\ 3*gt2*omgt1*@cosamp_c2*@cosamp_wc2+\ 3*gt1*omgt2*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt3*@cosamp_a0*@cosamp_wa0)/(\ 1*gt3*omgt0*@cosamp_wa1+\ 3*gt2*omgt1*@cosamp_wc2+\ 3*gt1*omgt2*@cosamp_wc1+\ 1*gt0*omgt3*@cosamp_wa0) endif elseif(@ncosamp==5) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)/(\ (@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)/(\ (@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)/(\ (@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*\ (gt-@cosamp_lt5)/(\ (@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*\ (gt-@cosamp_lt4)/(\ (@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt4*omgt0*@cosamp_a1+\ 4*gt3*omgt1*@cosamp_c3+\ 6*gt2*omgt2*@cosamp_c2+\ 4*gt1*omgt3*@cosamp_c1+\ 1*gt0*omgt4*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt4*omgt0*@cosamp_a1*@cosamp_wa1+\ 4*gt3*omgt1*@cosamp_c3*@cosamp_wc3+\ 6*gt2*omgt2*@cosamp_c2*@cosamp_wc2+\ 4*gt1*omgt3*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt4*@cosamp_a0*@cosamp_wa0)/(\ 1*gt4*omgt0*@cosamp_wa1+\ 4*gt3*omgt1*@cosamp_wc3+\ 6*gt2*omgt2*@cosamp_wc2+\ 4*gt1*omgt3*@cosamp_wc1+\ 1*gt0*omgt4*@cosamp_wa0) endif elseif(@ncosamp==6) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)/(\ (@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5)*(@cosamp_lt1-@cosamp_lt6))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)/(\ (@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5)*(@cosamp_lt2-@cosamp_lt6))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)/(\ (@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5)*(@cosamp_lt3-@cosamp_lt6))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)/(\ (@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5)*(@cosamp_lt4-@cosamp_lt6))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt6)/(\ (@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)*(@cosamp_lt5-@cosamp_lt6))+\ @cosamp_l6*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)/(\ (@cosamp_lt6-@cosamp_lt1)*(@cosamp_lt6-@cosamp_lt2)*(@cosamp_lt6-@cosamp_lt3)*\ (@cosamp_lt6-@cosamp_lt4)*(@cosamp_lt6-@cosamp_lt5)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt5*omgt0*@cosamp_a1+\ 5*gt4*omgt1*@cosamp_c4+\ 10*gt3*omgt2*@cosamp_c3+\ 10*gt2*omgt3*@cosamp_c2+\ 5*gt1*omgt4*@cosamp_c1+\ 1*gt0*omgt5*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt5*omgt0*@cosamp_a1*@cosamp_wa1+\ 5*gt4*omgt1*@cosamp_c4*@cosamp_wc4+\ 10*gt3*omgt2*@cosamp_c3*@cosamp_wc3+\ 10*gt2*omgt3*@cosamp_c2*@cosamp_wc2+\ 5*gt1*omgt4*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt5*@cosamp_a0*@cosamp_wa0)/(\ 1*gt5*omgt0*@cosamp_wa1+\ 5*gt4*omgt1*@cosamp_wc4+\ 10*gt3*omgt2*@cosamp_wc3+\ 10*gt2*omgt3*@cosamp_wc2+\ 5*gt1*omgt4*@cosamp_wc1+\ 1*gt0*omgt5*@cosamp_wa0) endif elseif(@ncosamp==7) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5)*(@cosamp_lt1-@cosamp_lt6)*(@cosamp_lt1-@cosamp_lt7))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5)*(@cosamp_lt2-@cosamp_lt6)*(@cosamp_lt2-@cosamp_lt7))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5)*(@cosamp_lt3-@cosamp_lt6)*(@cosamp_lt3-@cosamp_lt7))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5)*(@cosamp_lt4-@cosamp_lt6)*(@cosamp_lt4-@cosamp_lt7))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)*(@cosamp_lt5-@cosamp_lt6)*(@cosamp_lt5-@cosamp_lt7))+\ @cosamp_l6*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt7)/(\ (@cosamp_lt6-@cosamp_lt1)*(@cosamp_lt6-@cosamp_lt2)*(@cosamp_lt6-@cosamp_lt3)*\ (@cosamp_lt6-@cosamp_lt4)*(@cosamp_lt6-@cosamp_lt5)*(@cosamp_lt6-@cosamp_lt7))+\ @cosamp_l7*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)/(\ (@cosamp_lt7-@cosamp_lt1)*(@cosamp_lt7-@cosamp_lt2)*(@cosamp_lt7-@cosamp_lt3)*\ (@cosamp_lt7-@cosamp_lt4)*(@cosamp_lt7-@cosamp_lt5)*(@cosamp_lt7-@cosamp_lt6)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt6*omgt0*@cosamp_a1+\ 6*gt5*omgt1*@cosamp_c5+\ 15*gt4*omgt2*@cosamp_c4+\ 20*gt3*omgt3*@cosamp_c3+\ 15*gt2*omgt4*@cosamp_c2+\ 6*gt1*omgt5*@cosamp_c1+\ 1*gt0*omgt6*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt6*omgt0*@cosamp_a1*@cosamp_wa1+\ 6*gt5*omgt1*@cosamp_c5*@cosamp_wc5+\ 15*gt4*omgt2*@cosamp_c4*@cosamp_wc4+\ 20*gt3*omgt3*@cosamp_c3*@cosamp_wc3+\ 15*gt2*omgt4*@cosamp_c2*@cosamp_wc2+\ 6*gt1*omgt5*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt6*@cosamp_a0*@cosamp_wa0)/(\ 1*gt6*omgt0*@cosamp_wa1+\ 6*gt5*omgt1*@cosamp_wc5+\ 15*gt4*omgt2*@cosamp_wc4+\ 20*gt3*omgt3*@cosamp_wc3+\ 15*gt2*omgt4*@cosamp_wc2+\ 6*gt1*omgt5*@cosamp_wc1+\ 1*gt0*omgt6*@cosamp_wa0) endif elseif(@ncosamp==8) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5)*(@cosamp_lt1-@cosamp_lt6)*(@cosamp_lt1-@cosamp_lt7)*\ (@cosamp_lt1-@cosamp_lt8))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5)*(@cosamp_lt2-@cosamp_lt6)*(@cosamp_lt2-@cosamp_lt7)*\ (@cosamp_lt2-@cosamp_lt8))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5)*(@cosamp_lt3-@cosamp_lt6)*(@cosamp_lt3-@cosamp_lt7)*\ (@cosamp_lt3-@cosamp_lt8))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5)*(@cosamp_lt4-@cosamp_lt6)*(@cosamp_lt4-@cosamp_lt7)*\ (@cosamp_lt4-@cosamp_lt8))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)*(@cosamp_lt5-@cosamp_lt6)*(@cosamp_lt5-@cosamp_lt7)*\ (@cosamp_lt5-@cosamp_lt8))+\ @cosamp_l6*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/(\ (@cosamp_lt6-@cosamp_lt1)*(@cosamp_lt6-@cosamp_lt2)*(@cosamp_lt6-@cosamp_lt3)*\ (@cosamp_lt6-@cosamp_lt4)*(@cosamp_lt6-@cosamp_lt5)*(@cosamp_lt6-@cosamp_lt7)*\ (@cosamp_lt6-@cosamp_lt8))+\ @cosamp_l7*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt8)/(\ (@cosamp_lt7-@cosamp_lt1)*(@cosamp_lt7-@cosamp_lt2)*(@cosamp_lt7-@cosamp_lt3)*\ (@cosamp_lt7-@cosamp_lt4)*(@cosamp_lt7-@cosamp_lt5)*(@cosamp_lt7-@cosamp_lt6)*\ (@cosamp_lt7-@cosamp_lt8))+\ @cosamp_l8*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt7)/(\ (@cosamp_lt8-@cosamp_lt1)*(@cosamp_lt8-@cosamp_lt2)*(@cosamp_lt8-@cosamp_lt3)*\ (@cosamp_lt8-@cosamp_lt4)*(@cosamp_lt8-@cosamp_lt5)*(@cosamp_lt8-@cosamp_lt6)*\ (@cosamp_lt8-@cosamp_lt7)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt7*omgt0*@cosamp_a1+\ 7*gt6*omgt1*@cosamp_c6+\ 21*gt5*omgt2*@cosamp_c5+\ 35*gt4*omgt3*@cosamp_c4+\ 35*gt3*omgt4*@cosamp_c3+\ 21*gt2*omgt5*@cosamp_c2+\ 7*gt1*omgt6*@cosamp_c1+\ 1*gt0*omgt7*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt7*omgt0*@cosamp_a1*@cosamp_wa1+\ 7*gt6*omgt1*@cosamp_c6*@cosamp_wc6+\ 21*gt5*omgt2*@cosamp_c5*@cosamp_wc5+\ 35*gt4*omgt3*@cosamp_c4*@cosamp_wc4+\ 35*gt3*omgt4*@cosamp_c3*@cosamp_wc3+\ 21*gt2*omgt5*@cosamp_c2*@cosamp_wc2+\ 7*gt1*omgt6*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt7*@cosamp_a0*@cosamp_wa0)/(\ 1*gt7*omgt0*@cosamp_wa1+\ 7*gt6*omgt1*@cosamp_wc6+\ 21*gt5*omgt2*@cosamp_wc5+\ 35*gt4*omgt3*@cosamp_wc4+\ 35*gt3*omgt4*@cosamp_wc3+\ 21*gt2*omgt5*@cosamp_wc2+\ 7*gt1*omgt6*@cosamp_wc1+\ 1*gt0*omgt7*@cosamp_wa0) endif elseif(@ncosamp==9) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5)*(@cosamp_lt1-@cosamp_lt6)*(@cosamp_lt1-@cosamp_lt7)*\ (@cosamp_lt1-@cosamp_lt8)*(@cosamp_lt1-@cosamp_lt9))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5)*(@cosamp_lt2-@cosamp_lt6)*(@cosamp_lt2-@cosamp_lt7)*\ (@cosamp_lt2-@cosamp_lt8)*(@cosamp_lt2-@cosamp_lt9))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5)*(@cosamp_lt3-@cosamp_lt6)*(@cosamp_lt3-@cosamp_lt7)*\ (@cosamp_lt3-@cosamp_lt8)*(@cosamp_lt3-@cosamp_lt9))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5)*(@cosamp_lt4-@cosamp_lt6)*(@cosamp_lt4-@cosamp_lt7)*\ (@cosamp_lt4-@cosamp_lt8)*(@cosamp_lt4-@cosamp_lt9))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)*(@cosamp_lt5-@cosamp_lt6)*(@cosamp_lt5-@cosamp_lt7)*\ (@cosamp_lt5-@cosamp_lt8)*(@cosamp_lt5-@cosamp_lt9))+\ @cosamp_l6*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt6-@cosamp_lt1)*(@cosamp_lt6-@cosamp_lt2)*(@cosamp_lt6-@cosamp_lt3)*\ (@cosamp_lt6-@cosamp_lt4)*(@cosamp_lt6-@cosamp_lt5)*(@cosamp_lt6-@cosamp_lt7)*\ (@cosamp_lt6-@cosamp_lt8)*(@cosamp_lt6-@cosamp_lt9))+\ @cosamp_l7*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/\ ((@cosamp_lt7-@cosamp_lt1)*(@cosamp_lt7-@cosamp_lt2)*(@cosamp_lt7-@cosamp_lt3)*\ (@cosamp_lt7-@cosamp_lt4)*(@cosamp_lt7-@cosamp_lt5)*(@cosamp_lt7-@cosamp_lt6)*\ (@cosamp_lt7-@cosamp_lt8)*(@cosamp_lt7-@cosamp_lt9))+\ @cosamp_l8*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt9)/\ ((@cosamp_lt8-@cosamp_lt1)*(@cosamp_lt8-@cosamp_lt2)*(@cosamp_lt8-@cosamp_lt3)*\ (@cosamp_lt8-@cosamp_lt4)*(@cosamp_lt8-@cosamp_lt5)*(@cosamp_lt8-@cosamp_lt6)*\ (@cosamp_lt8-@cosamp_lt7)*(@cosamp_lt8-@cosamp_lt9))+\ @cosamp_l9*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)/\ ((@cosamp_lt9-@cosamp_lt1)*(@cosamp_lt9-@cosamp_lt2)*(@cosamp_lt9-@cosamp_lt3)*\ (@cosamp_lt9-@cosamp_lt4)*(@cosamp_lt9-@cosamp_lt5)*(@cosamp_lt9-@cosamp_lt6)*\ (@cosamp_lt9-@cosamp_lt7)*(@cosamp_lt9-@cosamp_lt8)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt8*omgt0*@cosamp_a1+\ 8*gt7*omgt1*@cosamp_c7+\ 28*gt6*omgt2*@cosamp_c6+\ 56*gt5*omgt3*@cosamp_c5+\ 70*gt4*omgt4*@cosamp_c4+\ 56*gt3*omgt5*@cosamp_c3+\ 28*gt2*omgt6*@cosamp_c2+\ 8*gt1*omgt7*@cosamp_c1+\ 1*gt0*omgt8*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt8*omgt0*@cosamp_a1*@cosamp_wa1+\ 8*gt7*omgt1*@cosamp_c7*@cosamp_wc7+\ 28*gt6*omgt2*@cosamp_c6*@cosamp_wc6+\ 56*gt5*omgt3*@cosamp_c5*@cosamp_wc5+\ 70*gt4*omgt4*@cosamp_c4*@cosamp_wc4+\ 56*gt3*omgt5*@cosamp_c3*@cosamp_wc3+\ 28*gt2*omgt6*@cosamp_c2*@cosamp_wc2+\ 8*gt1*omgt7*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt8*@cosamp_a0*@cosamp_wa0)/(\ 1*gt8*omgt0*@cosamp_wa1+\ 8*gt7*omgt1*@cosamp_wc7+\ 28*gt6*omgt2*@cosamp_wc6+\ 56*gt5*omgt3*@cosamp_wc5+\ 70*gt4*omgt4*@cosamp_wc4+\ 56*gt3*omgt5*@cosamp_wc3+\ 28*gt2*omgt6*@cosamp_wc2+\ 8*gt1*omgt7*@cosamp_wc1+\ 1*gt0*omgt8*@cosamp_wa0) endif elseif(@ncosamp==10) if(@cosamp_interp=="Lagrange") cosamp=\ @cosamp_l1*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt1-@cosamp_lt2)*(@cosamp_lt1-@cosamp_lt3)*(@cosamp_lt1-@cosamp_lt4)*\ (@cosamp_lt1-@cosamp_lt5)*(@cosamp_lt1-@cosamp_lt6)*(@cosamp_lt1-@cosamp_lt7)*\ (@cosamp_lt1-@cosamp_lt8)*(@cosamp_lt1-@cosamp_lt9)*(@cosamp_lt1-@cosamp_lt10))+\ @cosamp_l2*(gt-@cosamp_lt1)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt2-@cosamp_lt1)*(@cosamp_lt2-@cosamp_lt3)*(@cosamp_lt2-@cosamp_lt4)*\ (@cosamp_lt2-@cosamp_lt5)*(@cosamp_lt2-@cosamp_lt6)*(@cosamp_lt2-@cosamp_lt7)*\ (@cosamp_lt2-@cosamp_lt8)*(@cosamp_lt2-@cosamp_lt9)*(@cosamp_lt2-@cosamp_lt10))+\ @cosamp_l3*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt4)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt3-@cosamp_lt1)*(@cosamp_lt3-@cosamp_lt2)*(@cosamp_lt3-@cosamp_lt4)*\ (@cosamp_lt3-@cosamp_lt5)*(@cosamp_lt3-@cosamp_lt6)*(@cosamp_lt3-@cosamp_lt7)*\ (@cosamp_lt3-@cosamp_lt8)*(@cosamp_lt3-@cosamp_lt9)*(@cosamp_lt3-@cosamp_lt10))+\ @cosamp_l4*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt5)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt4-@cosamp_lt1)*(@cosamp_lt4-@cosamp_lt2)*(@cosamp_lt4-@cosamp_lt3)*\ (@cosamp_lt4-@cosamp_lt5)*(@cosamp_lt4-@cosamp_lt6)*(@cosamp_lt4-@cosamp_lt7)*\ (@cosamp_lt4-@cosamp_lt8)*(@cosamp_lt4-@cosamp_lt9)*(@cosamp_lt4-@cosamp_lt10))+\ @cosamp_l5*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt5-@cosamp_lt1)*(@cosamp_lt5-@cosamp_lt2)*(@cosamp_lt5-@cosamp_lt3)*\ (@cosamp_lt5-@cosamp_lt4)*(@cosamp_lt5-@cosamp_lt6)*(@cosamp_lt5-@cosamp_lt7)*\ (@cosamp_lt5-@cosamp_lt8)*(@cosamp_lt5-@cosamp_lt9)*(@cosamp_lt5-@cosamp_lt10))+\ @cosamp_l6*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt6-@cosamp_lt1)*(@cosamp_lt6-@cosamp_lt2)*(@cosamp_lt6-@cosamp_lt3)*\ (@cosamp_lt6-@cosamp_lt4)*(@cosamp_lt6-@cosamp_lt5)*(@cosamp_lt6-@cosamp_lt7)*\ (@cosamp_lt6-@cosamp_lt8)*(@cosamp_lt6-@cosamp_lt9)*(@cosamp_lt6-@cosamp_lt10))+\ @cosamp_l7*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt7-@cosamp_lt1)*(@cosamp_lt7-@cosamp_lt2)*(@cosamp_lt7-@cosamp_lt3)*\ (@cosamp_lt7-@cosamp_lt4)*(@cosamp_lt7-@cosamp_lt5)*(@cosamp_lt7-@cosamp_lt6)*\ (@cosamp_lt7-@cosamp_lt8)*(@cosamp_lt7-@cosamp_lt9)*(@cosamp_lt7-@cosamp_lt10))+\ @cosamp_l8*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt9)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt8-@cosamp_lt1)*(@cosamp_lt8-@cosamp_lt2)*(@cosamp_lt8-@cosamp_lt3)*\ (@cosamp_lt8-@cosamp_lt4)*(@cosamp_lt8-@cosamp_lt5)*(@cosamp_lt8-@cosamp_lt6)*\ (@cosamp_lt8-@cosamp_lt7)*(@cosamp_lt8-@cosamp_lt9)*(@cosamp_lt8-@cosamp_lt10))+\ @cosamp_l9*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*(gt-@cosamp_lt4)*\ (gt-@cosamp_lt5)*(gt-@cosamp_lt6)*(gt-@cosamp_lt7)*(gt-@cosamp_lt8)*\ (gt-@cosamp_lt10)/(\ (@cosamp_lt9-@cosamp_lt1)*(@cosamp_lt9-@cosamp_lt2)*(@cosamp_lt9-@cosamp_lt3)*\ (@cosamp_lt9-@cosamp_lt4)*(@cosamp_lt9-@cosamp_lt5)*(@cosamp_lt9-@cosamp_lt6)*\ (@cosamp_lt9-@cosamp_lt7)*(@cosamp_lt9-@cosamp_lt8)*(@cosamp_lt9-@cosamp_lt10))+\ @cosamp_l10*(gt-@cosamp_lt1)*(gt-@cosamp_lt2)*(gt-@cosamp_lt3)*\ (gt-@cosamp_lt4)*(gt-@cosamp_lt5)*(gt-@cosamp_lt6)*\ (gt-@cosamp_lt7)*(gt-@cosamp_lt8)*(gt-@cosamp_lt9)/(\ (@cosamp_lt10-@cosamp_lt1)*(@cosamp_lt10-@cosamp_lt2)*(@cosamp_lt10-@cosamp_lt3)*\ (@cosamp_lt10-@cosamp_lt4)*(@cosamp_lt10-@cosamp_lt5)*(@cosamp_lt10-@cosamp_lt6)*\ (@cosamp_lt10-@cosamp_lt7)*(@cosamp_lt10-@cosamp_lt8)*(@cosamp_lt10-@cosamp_lt9)) elseif(@cosamp_interp=="Bezier") cosamp=\ 1*gt9*omgt0*@cosamp_a1+\ 9*gt8*omgt1*@cosamp_c8+\ 36*gt7*omgt2*@cosamp_c7+\ 84*gt6*omgt3*@cosamp_c6+\ 126*gt5*omgt4*@cosamp_c5+\ 126*gt4*omgt5*@cosamp_c4+\ 84*gt3*omgt6*@cosamp_c3+\ 36*gt2*omgt7*@cosamp_c2+\ 9*gt1*omgt8*@cosamp_c1+\ 1*gt0*omgt9*@cosamp_a0 elseif(@cosamp_interp=="rational Bezier") cosamp=(\ 1*gt9*omgt0*@cosamp_a1*@cosamp_wa1+\ 9*gt8*omgt1*@cosamp_c8*@cosamp_wc8+\ 36*gt7*omgt2*@cosamp_c7*@cosamp_wc7+\ 84*gt6*omgt3*@cosamp_c6*@cosamp_wc6+\ 126*gt5*omgt4*@cosamp_c5*@cosamp_wc5+\ 126*gt4*omgt5*@cosamp_c4*@cosamp_wc4+\ 84*gt3*omgt6*@cosamp_c3*@cosamp_wc3+\ 36*gt2*omgt7*@cosamp_c2*@cosamp_wc2+\ 9*gt1*omgt8*@cosamp_c1*@cosamp_wc1+\ 1*gt0*omgt9*@cosamp_a0*@cosamp_wa0)/(\ 1*gt9*omgt0*@cosamp_wa1+\ 9*gt8*omgt1*@cosamp_wc8+\ 36*gt7*omgt2*@cosamp_wc7+\ 84*gt6*omgt3*@cosamp_wc6+\ 126*gt5*omgt4*@cosamp_wc5+\ 126*gt4*omgt5*@cosamp_wc4+\ 84*gt3*omgt6*@cosamp_wc3+\ 36*gt2*omgt7*@cosamp_wc2+\ 9*gt1*omgt8*@cosamp_wc1+\ 1*gt0*omgt9*@cosamp_wa0) endif endif ; ; cosine frequency ; if(@cosfreq_interp=="constant") cosfreq=@cosfreq_const elseif(@cosfreq_interp=="linear") cosfreq=(@cosfreq_one-@cosfreq_zero)*gt+@cosfreq_zero elseif(@ncosfreq==3) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)/\ ((@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)/\ ((@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)/\ ((@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt2*omgt0*@cosfreq_a1+\ 2*gt1*omgt1*@cosfreq_c1+\ 1*gt0*omgt2*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt2*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 2*gt1*omgt1*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt2*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt2*omgt0*@cosfreq_wa1+\ 2*gt1*omgt1*@cosfreq_wc1+\ 1*gt0*omgt2*@cosfreq_wa0) endif elseif(@ncosfreq==4) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)/\ ((@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)/\ ((@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)/\ ((@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)/\ ((@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt3*omgt0*@cosfreq_a1+\ 3*gt2*omgt1*@cosfreq_c2+\ 3*gt1*omgt2*@cosfreq_c1+\ 1*gt0*omgt3*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt3*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 3*gt2*omgt1*@cosfreq_c2*@cosfreq_wc2+\ 3*gt1*omgt2*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt3*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt3*omgt0*@cosfreq_wa1+\ 3*gt2*omgt1*@cosfreq_wc2+\ 3*gt1*omgt2*@cosfreq_wc1+\ 1*gt0*omgt3*@cosfreq_wa0) endif elseif(@ncosfreq==5) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)/(\ (@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)/(\ (@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)/(\ (@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*\ (gt-@cosfreq_lt5)/(\ (@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*\ (gt-@cosfreq_lt4)/(\ (@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt4*omgt0*@cosfreq_a1+\ 4*gt3*omgt1*@cosfreq_c3+\ 6*gt2*omgt2*@cosfreq_c2+\ 4*gt1*omgt3*@cosfreq_c1+\ 1*gt0*omgt4*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt4*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 4*gt3*omgt1*@cosfreq_c3*@cosfreq_wc3+\ 6*gt2*omgt2*@cosfreq_c2*@cosfreq_wc2+\ 4*gt1*omgt3*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt4*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt4*omgt0*@cosfreq_wa1+\ 4*gt3*omgt1*@cosfreq_wc3+\ 6*gt2*omgt2*@cosfreq_wc2+\ 4*gt1*omgt3*@cosfreq_wc1+\ 1*gt0*omgt4*@cosfreq_wa0) endif elseif(@ncosfreq==6) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)/(\ (@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5)*(@cosfreq_lt1-@cosfreq_lt6))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)/(\ (@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5)*(@cosfreq_lt2-@cosfreq_lt6))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)/(\ (@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5)*(@cosfreq_lt3-@cosfreq_lt6))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)/(\ (@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5)*(@cosfreq_lt4-@cosfreq_lt6))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt6)/(\ (@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)*(@cosfreq_lt5-@cosfreq_lt6))+\ @cosfreq_l6*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)/(\ (@cosfreq_lt6-@cosfreq_lt1)*(@cosfreq_lt6-@cosfreq_lt2)*(@cosfreq_lt6-@cosfreq_lt3)*\ (@cosfreq_lt6-@cosfreq_lt4)*(@cosfreq_lt6-@cosfreq_lt5)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt5*omgt0*@cosfreq_a1+\ 5*gt4*omgt1*@cosfreq_c4+\ 10*gt3*omgt2*@cosfreq_c3+\ 10*gt2*omgt3*@cosfreq_c2+\ 5*gt1*omgt4*@cosfreq_c1+\ 1*gt0*omgt5*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt5*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 5*gt4*omgt1*@cosfreq_c4*@cosfreq_wc4+\ 10*gt3*omgt2*@cosfreq_c3*@cosfreq_wc3+\ 10*gt2*omgt3*@cosfreq_c2*@cosfreq_wc2+\ 5*gt1*omgt4*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt5*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt5*omgt0*@cosfreq_wa1+\ 5*gt4*omgt1*@cosfreq_wc4+\ 10*gt3*omgt2*@cosfreq_wc3+\ 10*gt2*omgt3*@cosfreq_wc2+\ 5*gt1*omgt4*@cosfreq_wc1+\ 1*gt0*omgt5*@cosfreq_wa0) endif elseif(@ncosfreq==7) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5)*(@cosfreq_lt1-@cosfreq_lt6)*(@cosfreq_lt1-@cosfreq_lt7))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5)*(@cosfreq_lt2-@cosfreq_lt6)*(@cosfreq_lt2-@cosfreq_lt7))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5)*(@cosfreq_lt3-@cosfreq_lt6)*(@cosfreq_lt3-@cosfreq_lt7))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5)*(@cosfreq_lt4-@cosfreq_lt6)*(@cosfreq_lt4-@cosfreq_lt7))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)*(@cosfreq_lt5-@cosfreq_lt6)*(@cosfreq_lt5-@cosfreq_lt7))+\ @cosfreq_l6*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt6-@cosfreq_lt1)*(@cosfreq_lt6-@cosfreq_lt2)*(@cosfreq_lt6-@cosfreq_lt3)*\ (@cosfreq_lt6-@cosfreq_lt4)*(@cosfreq_lt6-@cosfreq_lt5)*(@cosfreq_lt6-@cosfreq_lt7))+\ @cosfreq_l7*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)/(\ (@cosfreq_lt7-@cosfreq_lt1)*(@cosfreq_lt7-@cosfreq_lt2)*(@cosfreq_lt7-@cosfreq_lt3)*\ (@cosfreq_lt7-@cosfreq_lt4)*(@cosfreq_lt7-@cosfreq_lt5)*(@cosfreq_lt7-@cosfreq_lt6)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt6*omgt0*@cosfreq_a1+\ 6*gt5*omgt1*@cosfreq_c5+\ 15*gt4*omgt2*@cosfreq_c4+\ 20*gt3*omgt3*@cosfreq_c3+\ 15*gt2*omgt4*@cosfreq_c2+\ 6*gt1*omgt5*@cosfreq_c1+\ 1*gt0*omgt6*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt6*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 6*gt5*omgt1*@cosfreq_c5*@cosfreq_wc5+\ 15*gt4*omgt2*@cosfreq_c4*@cosfreq_wc4+\ 20*gt3*omgt3*@cosfreq_c3*@cosfreq_wc3+\ 15*gt2*omgt4*@cosfreq_c2*@cosfreq_wc2+\ 6*gt1*omgt5*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt6*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt6*omgt0*@cosfreq_wa1+\ 6*gt5*omgt1*@cosfreq_wc5+\ 15*gt4*omgt2*@cosfreq_wc4+\ 20*gt3*omgt3*@cosfreq_wc3+\ 15*gt2*omgt4*@cosfreq_wc2+\ 6*gt1*omgt5*@cosfreq_wc1+\ 1*gt0*omgt6*@cosfreq_wa0) endif elseif(@ncosfreq==8) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5)*(@cosfreq_lt1-@cosfreq_lt6)*(@cosfreq_lt1-@cosfreq_lt7)*\ (@cosfreq_lt1-@cosfreq_lt8))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5)*(@cosfreq_lt2-@cosfreq_lt6)*(@cosfreq_lt2-@cosfreq_lt7)*\ (@cosfreq_lt2-@cosfreq_lt8))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5)*(@cosfreq_lt3-@cosfreq_lt6)*(@cosfreq_lt3-@cosfreq_lt7)*\ (@cosfreq_lt3-@cosfreq_lt8))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5)*(@cosfreq_lt4-@cosfreq_lt6)*(@cosfreq_lt4-@cosfreq_lt7)*\ (@cosfreq_lt4-@cosfreq_lt8))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)*(@cosfreq_lt5-@cosfreq_lt6)*(@cosfreq_lt5-@cosfreq_lt7)*\ (@cosfreq_lt5-@cosfreq_lt8))+\ @cosfreq_l6*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt6-@cosfreq_lt1)*(@cosfreq_lt6-@cosfreq_lt2)*(@cosfreq_lt6-@cosfreq_lt3)*\ (@cosfreq_lt6-@cosfreq_lt4)*(@cosfreq_lt6-@cosfreq_lt5)*(@cosfreq_lt6-@cosfreq_lt7)*\ (@cosfreq_lt6-@cosfreq_lt8))+\ @cosfreq_l7*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt8)/(\ (@cosfreq_lt7-@cosfreq_lt1)*(@cosfreq_lt7-@cosfreq_lt2)*(@cosfreq_lt7-@cosfreq_lt3)*\ (@cosfreq_lt7-@cosfreq_lt4)*(@cosfreq_lt7-@cosfreq_lt5)*(@cosfreq_lt7-@cosfreq_lt6)*\ (@cosfreq_lt7-@cosfreq_lt8))+\ @cosfreq_l8*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)/(\ (@cosfreq_lt8-@cosfreq_lt1)*(@cosfreq_lt8-@cosfreq_lt2)*(@cosfreq_lt8-@cosfreq_lt3)*\ (@cosfreq_lt8-@cosfreq_lt4)*(@cosfreq_lt8-@cosfreq_lt5)*(@cosfreq_lt8-@cosfreq_lt6)*\ (@cosfreq_lt8-@cosfreq_lt7)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt7*omgt0*@cosfreq_a1+\ 7*gt6*omgt1*@cosfreq_c6+\ 21*gt5*omgt2*@cosfreq_c5+\ 35*gt4*omgt3*@cosfreq_c4+\ 35*gt3*omgt4*@cosfreq_c3+\ 21*gt2*omgt5*@cosfreq_c2+\ 7*gt1*omgt6*@cosfreq_c1+\ 1*gt0*omgt7*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt7*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 7*gt6*omgt1*@cosfreq_c6*@cosfreq_wc6+\ 21*gt5*omgt2*@cosfreq_c5*@cosfreq_wc5+\ 35*gt4*omgt3*@cosfreq_c4*@cosfreq_wc4+\ 35*gt3*omgt4*@cosfreq_c3*@cosfreq_wc3+\ 21*gt2*omgt5*@cosfreq_c2*@cosfreq_wc2+\ 7*gt1*omgt6*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt7*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt7*omgt0*@cosfreq_wa1+\ 7*gt6*omgt1*@cosfreq_wc6+\ 21*gt5*omgt2*@cosfreq_wc5+\ 35*gt4*omgt3*@cosfreq_wc4+\ 35*gt3*omgt4*@cosfreq_wc3+\ 21*gt2*omgt5*@cosfreq_wc2+\ 7*gt1*omgt6*@cosfreq_wc1+\ 1*gt0*omgt7*@cosfreq_wa0) endif elseif(@ncosfreq==9) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5)*(@cosfreq_lt1-@cosfreq_lt6)*(@cosfreq_lt1-@cosfreq_lt7)*\ (@cosfreq_lt1-@cosfreq_lt8)*(@cosfreq_lt1-@cosfreq_lt9))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5)*(@cosfreq_lt2-@cosfreq_lt6)*(@cosfreq_lt2-@cosfreq_lt7)*\ (@cosfreq_lt2-@cosfreq_lt8)*(@cosfreq_lt2-@cosfreq_lt9))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5)*(@cosfreq_lt3-@cosfreq_lt6)*(@cosfreq_lt3-@cosfreq_lt7)*\ (@cosfreq_lt3-@cosfreq_lt8)*(@cosfreq_lt3-@cosfreq_lt9))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5)*(@cosfreq_lt4-@cosfreq_lt6)*(@cosfreq_lt4-@cosfreq_lt7)*\ (@cosfreq_lt4-@cosfreq_lt8)*(@cosfreq_lt4-@cosfreq_lt9))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)*(@cosfreq_lt5-@cosfreq_lt6)*(@cosfreq_lt5-@cosfreq_lt7)*\ (@cosfreq_lt5-@cosfreq_lt8)*(@cosfreq_lt5-@cosfreq_lt9))+\ @cosfreq_l6*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt6-@cosfreq_lt1)*(@cosfreq_lt6-@cosfreq_lt2)*(@cosfreq_lt6-@cosfreq_lt3)*\ (@cosfreq_lt6-@cosfreq_lt4)*(@cosfreq_lt6-@cosfreq_lt5)*(@cosfreq_lt6-@cosfreq_lt7)*\ (@cosfreq_lt6-@cosfreq_lt8)*(@cosfreq_lt6-@cosfreq_lt9))+\ @cosfreq_l7*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt7-@cosfreq_lt1)*(@cosfreq_lt7-@cosfreq_lt2)*(@cosfreq_lt7-@cosfreq_lt3)*\ (@cosfreq_lt7-@cosfreq_lt4)*(@cosfreq_lt7-@cosfreq_lt5)*(@cosfreq_lt7-@cosfreq_lt6)*\ (@cosfreq_lt7-@cosfreq_lt8)*(@cosfreq_lt7-@cosfreq_lt9))+\ @cosfreq_l8*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt9)/\ ((@cosfreq_lt8-@cosfreq_lt1)*(@cosfreq_lt8-@cosfreq_lt2)*(@cosfreq_lt8-@cosfreq_lt3)*\ (@cosfreq_lt8-@cosfreq_lt4)*(@cosfreq_lt8-@cosfreq_lt5)*(@cosfreq_lt8-@cosfreq_lt6)*\ (@cosfreq_lt8-@cosfreq_lt7)*(@cosfreq_lt8-@cosfreq_lt9))+\ @cosfreq_l9*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)/\ ((@cosfreq_lt9-@cosfreq_lt1)*(@cosfreq_lt9-@cosfreq_lt2)*(@cosfreq_lt9-@cosfreq_lt3)*\ (@cosfreq_lt9-@cosfreq_lt4)*(@cosfreq_lt9-@cosfreq_lt5)*(@cosfreq_lt9-@cosfreq_lt6)*\ (@cosfreq_lt9-@cosfreq_lt7)*(@cosfreq_lt9-@cosfreq_lt8)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt8*omgt0*@cosfreq_a1+\ 8*gt7*omgt1*@cosfreq_c7+\ 28*gt6*omgt2*@cosfreq_c6+\ 56*gt5*omgt3*@cosfreq_c5+\ 70*gt4*omgt4*@cosfreq_c4+\ 56*gt3*omgt5*@cosfreq_c3+\ 28*gt2*omgt6*@cosfreq_c2+\ 8*gt1*omgt7*@cosfreq_c1+\ 1*gt0*omgt8*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt8*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 8*gt7*omgt1*@cosfreq_c7*@cosfreq_wc7+\ 28*gt6*omgt2*@cosfreq_c6*@cosfreq_wc6+\ 56*gt5*omgt3*@cosfreq_c5*@cosfreq_wc5+\ 70*gt4*omgt4*@cosfreq_c4*@cosfreq_wc4+\ 56*gt3*omgt5*@cosfreq_c3*@cosfreq_wc3+\ 28*gt2*omgt6*@cosfreq_c2*@cosfreq_wc2+\ 8*gt1*omgt7*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt8*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt8*omgt0*@cosfreq_wa1+\ 8*gt7*omgt1*@cosfreq_wc7+\ 28*gt6*omgt2*@cosfreq_wc6+\ 56*gt5*omgt3*@cosfreq_wc5+\ 70*gt4*omgt4*@cosfreq_wc4+\ 56*gt3*omgt5*@cosfreq_wc3+\ 28*gt2*omgt6*@cosfreq_wc2+\ 8*gt1*omgt7*@cosfreq_wc1+\ 1*gt0*omgt8*@cosfreq_wa0) endif elseif(@ncosfreq==10) if(@cosfreq_interp=="Lagrange") cosfreq=\ @cosfreq_l1*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt1-@cosfreq_lt2)*(@cosfreq_lt1-@cosfreq_lt3)*(@cosfreq_lt1-@cosfreq_lt4)*\ (@cosfreq_lt1-@cosfreq_lt5)*(@cosfreq_lt1-@cosfreq_lt6)*(@cosfreq_lt1-@cosfreq_lt7)*\ (@cosfreq_lt1-@cosfreq_lt8)*(@cosfreq_lt1-@cosfreq_lt9)*(@cosfreq_lt1-@cosfreq_lt10))+\ @cosfreq_l2*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt2-@cosfreq_lt1)*(@cosfreq_lt2-@cosfreq_lt3)*(@cosfreq_lt2-@cosfreq_lt4)*\ (@cosfreq_lt2-@cosfreq_lt5)*(@cosfreq_lt2-@cosfreq_lt6)*(@cosfreq_lt2-@cosfreq_lt7)*\ (@cosfreq_lt2-@cosfreq_lt8)*(@cosfreq_lt2-@cosfreq_lt9)*(@cosfreq_lt2-@cosfreq_lt10))+\ @cosfreq_l3*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt3-@cosfreq_lt1)*(@cosfreq_lt3-@cosfreq_lt2)*(@cosfreq_lt3-@cosfreq_lt4)*\ (@cosfreq_lt3-@cosfreq_lt5)*(@cosfreq_lt3-@cosfreq_lt6)*(@cosfreq_lt3-@cosfreq_lt7)*\ (@cosfreq_lt3-@cosfreq_lt8)*(@cosfreq_lt3-@cosfreq_lt9)*(@cosfreq_lt3-@cosfreq_lt10))+\ @cosfreq_l4*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt5)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt4-@cosfreq_lt1)*(@cosfreq_lt4-@cosfreq_lt2)*(@cosfreq_lt4-@cosfreq_lt3)*\ (@cosfreq_lt4-@cosfreq_lt5)*(@cosfreq_lt4-@cosfreq_lt6)*(@cosfreq_lt4-@cosfreq_lt7)*\ (@cosfreq_lt4-@cosfreq_lt8)*(@cosfreq_lt4-@cosfreq_lt9)*(@cosfreq_lt4-@cosfreq_lt10))+\ @cosfreq_l5*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt5-@cosfreq_lt1)*(@cosfreq_lt5-@cosfreq_lt2)*(@cosfreq_lt5-@cosfreq_lt3)*\ (@cosfreq_lt5-@cosfreq_lt4)*(@cosfreq_lt5-@cosfreq_lt6)*(@cosfreq_lt5-@cosfreq_lt7)*\ (@cosfreq_lt5-@cosfreq_lt8)*(@cosfreq_lt5-@cosfreq_lt9)*(@cosfreq_lt5-@cosfreq_lt10))+\ @cosfreq_l6*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt6-@cosfreq_lt1)*(@cosfreq_lt6-@cosfreq_lt2)*(@cosfreq_lt6-@cosfreq_lt3)*\ (@cosfreq_lt6-@cosfreq_lt4)*(@cosfreq_lt6-@cosfreq_lt5)*(@cosfreq_lt6-@cosfreq_lt7)*\ (@cosfreq_lt6-@cosfreq_lt8)*(@cosfreq_lt6-@cosfreq_lt9)*(@cosfreq_lt6-@cosfreq_lt10))+\ @cosfreq_l7*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt7-@cosfreq_lt1)*(@cosfreq_lt7-@cosfreq_lt2)*(@cosfreq_lt7-@cosfreq_lt3)*\ (@cosfreq_lt7-@cosfreq_lt4)*(@cosfreq_lt7-@cosfreq_lt5)*(@cosfreq_lt7-@cosfreq_lt6)*\ (@cosfreq_lt7-@cosfreq_lt8)*(@cosfreq_lt7-@cosfreq_lt9)*(@cosfreq_lt7-@cosfreq_lt10))+\ @cosfreq_l8*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt9)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt8-@cosfreq_lt1)*(@cosfreq_lt8-@cosfreq_lt2)*(@cosfreq_lt8-@cosfreq_lt3)*\ (@cosfreq_lt8-@cosfreq_lt4)*(@cosfreq_lt8-@cosfreq_lt5)*(@cosfreq_lt8-@cosfreq_lt6)*\ (@cosfreq_lt8-@cosfreq_lt7)*(@cosfreq_lt8-@cosfreq_lt9)*(@cosfreq_lt8-@cosfreq_lt10))+\ @cosfreq_l9*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*(gt-@cosfreq_lt4)*\ (gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*(gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*\ (gt-@cosfreq_lt10)/(\ (@cosfreq_lt9-@cosfreq_lt1)*(@cosfreq_lt9-@cosfreq_lt2)*(@cosfreq_lt9-@cosfreq_lt3)*\ (@cosfreq_lt9-@cosfreq_lt4)*(@cosfreq_lt9-@cosfreq_lt5)*(@cosfreq_lt9-@cosfreq_lt6)*\ (@cosfreq_lt9-@cosfreq_lt7)*(@cosfreq_lt9-@cosfreq_lt8)*(@cosfreq_lt9-@cosfreq_lt10))+\ @cosfreq_l10*(gt-@cosfreq_lt1)*(gt-@cosfreq_lt2)*(gt-@cosfreq_lt3)*\ (gt-@cosfreq_lt4)*(gt-@cosfreq_lt5)*(gt-@cosfreq_lt6)*\ (gt-@cosfreq_lt7)*(gt-@cosfreq_lt8)*(gt-@cosfreq_lt9)/(\ (@cosfreq_lt10-@cosfreq_lt1)*(@cosfreq_lt10-@cosfreq_lt2)*(@cosfreq_lt10-@cosfreq_lt3)*\ (@cosfreq_lt10-@cosfreq_lt4)*(@cosfreq_lt10-@cosfreq_lt5)*(@cosfreq_lt10-@cosfreq_lt6)*\ (@cosfreq_lt10-@cosfreq_lt7)*(@cosfreq_lt10-@cosfreq_lt8)*(@cosfreq_lt10-@cosfreq_lt9)) elseif(@cosfreq_interp=="Bezier") cosfreq=\ 1*gt9*omgt0*@cosfreq_a1+\ 9*gt8*omgt1*@cosfreq_c8+\ 36*gt7*omgt2*@cosfreq_c7+\ 84*gt6*omgt3*@cosfreq_c6+\ 126*gt5*omgt4*@cosfreq_c5+\ 126*gt4*omgt5*@cosfreq_c4+\ 84*gt3*omgt6*@cosfreq_c3+\ 36*gt2*omgt7*@cosfreq_c2+\ 9*gt1*omgt8*@cosfreq_c1+\ 1*gt0*omgt9*@cosfreq_a0 elseif(@cosfreq_interp=="rational Bezier") cosfreq=(\ 1*gt9*omgt0*@cosfreq_a1*@cosfreq_wa1+\ 9*gt8*omgt1*@cosfreq_c8*@cosfreq_wc8+\ 36*gt7*omgt2*@cosfreq_c7*@cosfreq_wc7+\ 84*gt6*omgt3*@cosfreq_c6*@cosfreq_wc6+\ 126*gt5*omgt4*@cosfreq_c5*@cosfreq_wc5+\ 126*gt4*omgt5*@cosfreq_c4*@cosfreq_wc4+\ 84*gt3*omgt6*@cosfreq_c3*@cosfreq_wc3+\ 36*gt2*omgt7*@cosfreq_c2*@cosfreq_wc2+\ 9*gt1*omgt8*@cosfreq_c1*@cosfreq_wc1+\ 1*gt0*omgt9*@cosfreq_a0*@cosfreq_wa0)/(\ 1*gt9*omgt0*@cosfreq_wa1+\ 9*gt8*omgt1*@cosfreq_wc8+\ 36*gt7*omgt2*@cosfreq_wc7+\ 84*gt6*omgt3*@cosfreq_wc6+\ 126*gt5*omgt4*@cosfreq_wc5+\ 126*gt4*omgt5*@cosfreq_wc4+\ 84*gt3*omgt6*@cosfreq_wc3+\ 36*gt2*omgt7*@cosfreq_wc2+\ 9*gt1*omgt8*@cosfreq_wc1+\ 1*gt0*omgt9*@cosfreq_wa0) endif endif ; ; cosine phase ; if(@cosphase_interp=="constant") cosphase=@cosphase_const elseif(@cosphase_interp=="linear") cosphase=(@cosphase_one-@cosphase_zero)*gt+@cosphase_zero elseif(@ncosphase==3) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)/\ ((@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)/\ ((@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)/\ ((@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt2*omgt0*@cosphase_a1+\ 2*gt1*omgt1*@cosphase_c1+\ 1*gt0*omgt2*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt2*omgt0*@cosphase_a1*@cosphase_wa1+\ 2*gt1*omgt1*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt2*@cosphase_a0*@cosphase_wa0)/(\ 1*gt2*omgt0*@cosphase_wa1+\ 2*gt1*omgt1*@cosphase_wc1+\ 1*gt0*omgt2*@cosphase_wa0) endif elseif(@ncosphase==4) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)/\ ((@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)/\ ((@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)/\ ((@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)/\ ((@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt3*omgt0*@cosphase_a1+\ 3*gt2*omgt1*@cosphase_c2+\ 3*gt1*omgt2*@cosphase_c1+\ 1*gt0*omgt3*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt3*omgt0*@cosphase_a1*@cosphase_wa1+\ 3*gt2*omgt1*@cosphase_c2*@cosphase_wc2+\ 3*gt1*omgt2*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt3*@cosphase_a0*@cosphase_wa0)/(\ 1*gt3*omgt0*@cosphase_wa1+\ 3*gt2*omgt1*@cosphase_wc2+\ 3*gt1*omgt2*@cosphase_wc1+\ 1*gt0*omgt3*@cosphase_wa0) endif elseif(@ncosphase==5) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)/(\ (@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)/(\ (@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)/(\ (@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*\ (gt-@cosphase_lt5)/(\ (@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*\ (gt-@cosphase_lt4)/(\ (@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt4*omgt0*@cosphase_a1+\ 4*gt3*omgt1*@cosphase_c3+\ 6*gt2*omgt2*@cosphase_c2+\ 4*gt1*omgt3*@cosphase_c1+\ 1*gt0*omgt4*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt4*omgt0*@cosphase_a1*@cosphase_wa1+\ 4*gt3*omgt1*@cosphase_c3*@cosphase_wc3+\ 6*gt2*omgt2*@cosphase_c2*@cosphase_wc2+\ 4*gt1*omgt3*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt4*@cosphase_a0*@cosphase_wa0)/(\ 1*gt4*omgt0*@cosphase_wa1+\ 4*gt3*omgt1*@cosphase_wc3+\ 6*gt2*omgt2*@cosphase_wc2+\ 4*gt1*omgt3*@cosphase_wc1+\ 1*gt0*omgt4*@cosphase_wa0) endif elseif(@ncosphase==6) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)/(\ (@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5)*(@cosphase_lt1-@cosphase_lt6))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)/(\ (@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5)*(@cosphase_lt2-@cosphase_lt6))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)/(\ (@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5)*(@cosphase_lt3-@cosphase_lt6))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)/(\ (@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5)*(@cosphase_lt4-@cosphase_lt6))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt6)/(\ (@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)*(@cosphase_lt5-@cosphase_lt6))+\ @cosphase_l6*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)/(\ (@cosphase_lt6-@cosphase_lt1)*(@cosphase_lt6-@cosphase_lt2)*(@cosphase_lt6-@cosphase_lt3)*\ (@cosphase_lt6-@cosphase_lt4)*(@cosphase_lt6-@cosphase_lt5)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt5*omgt0*@cosphase_a1+\ 5*gt4*omgt1*@cosphase_c4+\ 10*gt3*omgt2*@cosphase_c3+\ 10*gt2*omgt3*@cosphase_c2+\ 5*gt1*omgt4*@cosphase_c1+\ 1*gt0*omgt5*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt5*omgt0*@cosphase_a1*@cosphase_wa1+\ 5*gt4*omgt1*@cosphase_c4*@cosphase_wc4+\ 10*gt3*omgt2*@cosphase_c3*@cosphase_wc3+\ 10*gt2*omgt3*@cosphase_c2*@cosphase_wc2+\ 5*gt1*omgt4*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt5*@cosphase_a0*@cosphase_wa0)/(\ 1*gt5*omgt0*@cosphase_wa1+\ 5*gt4*omgt1*@cosphase_wc4+\ 10*gt3*omgt2*@cosphase_wc3+\ 10*gt2*omgt3*@cosphase_wc2+\ 5*gt1*omgt4*@cosphase_wc1+\ 1*gt0*omgt5*@cosphase_wa0) endif elseif(@ncosphase==7) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5)*(@cosphase_lt1-@cosphase_lt6)*(@cosphase_lt1-@cosphase_lt7))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5)*(@cosphase_lt2-@cosphase_lt6)*(@cosphase_lt2-@cosphase_lt7))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5)*(@cosphase_lt3-@cosphase_lt6)*(@cosphase_lt3-@cosphase_lt7))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5)*(@cosphase_lt4-@cosphase_lt6)*(@cosphase_lt4-@cosphase_lt7))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)*(@cosphase_lt5-@cosphase_lt6)*(@cosphase_lt5-@cosphase_lt7))+\ @cosphase_l6*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt7)/(\ (@cosphase_lt6-@cosphase_lt1)*(@cosphase_lt6-@cosphase_lt2)*(@cosphase_lt6-@cosphase_lt3)*\ (@cosphase_lt6-@cosphase_lt4)*(@cosphase_lt6-@cosphase_lt5)*(@cosphase_lt6-@cosphase_lt7))+\ @cosphase_l7*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)/(\ (@cosphase_lt7-@cosphase_lt1)*(@cosphase_lt7-@cosphase_lt2)*(@cosphase_lt7-@cosphase_lt3)*\ (@cosphase_lt7-@cosphase_lt4)*(@cosphase_lt7-@cosphase_lt5)*(@cosphase_lt7-@cosphase_lt6)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt6*omgt0*@cosphase_a1+\ 6*gt5*omgt1*@cosphase_c5+\ 15*gt4*omgt2*@cosphase_c4+\ 20*gt3*omgt3*@cosphase_c3+\ 15*gt2*omgt4*@cosphase_c2+\ 6*gt1*omgt5*@cosphase_c1+\ 1*gt0*omgt6*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt6*omgt0*@cosphase_a1*@cosphase_wa1+\ 6*gt5*omgt1*@cosphase_c5*@cosphase_wc5+\ 15*gt4*omgt2*@cosphase_c4*@cosphase_wc4+\ 20*gt3*omgt3*@cosphase_c3*@cosphase_wc3+\ 15*gt2*omgt4*@cosphase_c2*@cosphase_wc2+\ 6*gt1*omgt5*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt6*@cosphase_a0*@cosphase_wa0)/(\ 1*gt6*omgt0*@cosphase_wa1+\ 6*gt5*omgt1*@cosphase_wc5+\ 15*gt4*omgt2*@cosphase_wc4+\ 20*gt3*omgt3*@cosphase_wc3+\ 15*gt2*omgt4*@cosphase_wc2+\ 6*gt1*omgt5*@cosphase_wc1+\ 1*gt0*omgt6*@cosphase_wa0) endif elseif(@ncosphase==8) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5)*(@cosphase_lt1-@cosphase_lt6)*(@cosphase_lt1-@cosphase_lt7)*\ (@cosphase_lt1-@cosphase_lt8))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5)*(@cosphase_lt2-@cosphase_lt6)*(@cosphase_lt2-@cosphase_lt7)*\ (@cosphase_lt2-@cosphase_lt8))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5)*(@cosphase_lt3-@cosphase_lt6)*(@cosphase_lt3-@cosphase_lt7)*\ (@cosphase_lt3-@cosphase_lt8))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5)*(@cosphase_lt4-@cosphase_lt6)*(@cosphase_lt4-@cosphase_lt7)*\ (@cosphase_lt4-@cosphase_lt8))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)*(@cosphase_lt5-@cosphase_lt6)*(@cosphase_lt5-@cosphase_lt7)*\ (@cosphase_lt5-@cosphase_lt8))+\ @cosphase_l6*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/(\ (@cosphase_lt6-@cosphase_lt1)*(@cosphase_lt6-@cosphase_lt2)*(@cosphase_lt6-@cosphase_lt3)*\ (@cosphase_lt6-@cosphase_lt4)*(@cosphase_lt6-@cosphase_lt5)*(@cosphase_lt6-@cosphase_lt7)*\ (@cosphase_lt6-@cosphase_lt8))+\ @cosphase_l7*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt8)/(\ (@cosphase_lt7-@cosphase_lt1)*(@cosphase_lt7-@cosphase_lt2)*(@cosphase_lt7-@cosphase_lt3)*\ (@cosphase_lt7-@cosphase_lt4)*(@cosphase_lt7-@cosphase_lt5)*(@cosphase_lt7-@cosphase_lt6)*\ (@cosphase_lt7-@cosphase_lt8))+\ @cosphase_l8*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt7)/(\ (@cosphase_lt8-@cosphase_lt1)*(@cosphase_lt8-@cosphase_lt2)*(@cosphase_lt8-@cosphase_lt3)*\ (@cosphase_lt8-@cosphase_lt4)*(@cosphase_lt8-@cosphase_lt5)*(@cosphase_lt8-@cosphase_lt6)*\ (@cosphase_lt8-@cosphase_lt7)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt7*omgt0*@cosphase_a1+\ 7*gt6*omgt1*@cosphase_c6+\ 21*gt5*omgt2*@cosphase_c5+\ 35*gt4*omgt3*@cosphase_c4+\ 35*gt3*omgt4*@cosphase_c3+\ 21*gt2*omgt5*@cosphase_c2+\ 7*gt1*omgt6*@cosphase_c1+\ 1*gt0*omgt7*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt7*omgt0*@cosphase_a1*@cosphase_wa1+\ 7*gt6*omgt1*@cosphase_c6*@cosphase_wc6+\ 21*gt5*omgt2*@cosphase_c5*@cosphase_wc5+\ 35*gt4*omgt3*@cosphase_c4*@cosphase_wc4+\ 35*gt3*omgt4*@cosphase_c3*@cosphase_wc3+\ 21*gt2*omgt5*@cosphase_c2*@cosphase_wc2+\ 7*gt1*omgt6*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt7*@cosphase_a0*@cosphase_wa0)/(\ 1*gt7*omgt0*@cosphase_wa1+\ 7*gt6*omgt1*@cosphase_wc6+\ 21*gt5*omgt2*@cosphase_wc5+\ 35*gt4*omgt3*@cosphase_wc4+\ 35*gt3*omgt4*@cosphase_wc3+\ 21*gt2*omgt5*@cosphase_wc2+\ 7*gt1*omgt6*@cosphase_wc1+\ 1*gt0*omgt7*@cosphase_wa0) endif elseif(@ncosphase==9) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5)*(@cosphase_lt1-@cosphase_lt6)*(@cosphase_lt1-@cosphase_lt7)*\ (@cosphase_lt1-@cosphase_lt8)*(@cosphase_lt1-@cosphase_lt9))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5)*(@cosphase_lt2-@cosphase_lt6)*(@cosphase_lt2-@cosphase_lt7)*\ (@cosphase_lt2-@cosphase_lt8)*(@cosphase_lt2-@cosphase_lt9))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5)*(@cosphase_lt3-@cosphase_lt6)*(@cosphase_lt3-@cosphase_lt7)*\ (@cosphase_lt3-@cosphase_lt8)*(@cosphase_lt3-@cosphase_lt9))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5)*(@cosphase_lt4-@cosphase_lt6)*(@cosphase_lt4-@cosphase_lt7)*\ (@cosphase_lt4-@cosphase_lt8)*(@cosphase_lt4-@cosphase_lt9))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)*(@cosphase_lt5-@cosphase_lt6)*(@cosphase_lt5-@cosphase_lt7)*\ (@cosphase_lt5-@cosphase_lt8)*(@cosphase_lt5-@cosphase_lt9))+\ @cosphase_l6*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt6-@cosphase_lt1)*(@cosphase_lt6-@cosphase_lt2)*(@cosphase_lt6-@cosphase_lt3)*\ (@cosphase_lt6-@cosphase_lt4)*(@cosphase_lt6-@cosphase_lt5)*(@cosphase_lt6-@cosphase_lt7)*\ (@cosphase_lt6-@cosphase_lt8)*(@cosphase_lt6-@cosphase_lt9))+\ @cosphase_l7*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/\ ((@cosphase_lt7-@cosphase_lt1)*(@cosphase_lt7-@cosphase_lt2)*(@cosphase_lt7-@cosphase_lt3)*\ (@cosphase_lt7-@cosphase_lt4)*(@cosphase_lt7-@cosphase_lt5)*(@cosphase_lt7-@cosphase_lt6)*\ (@cosphase_lt7-@cosphase_lt8)*(@cosphase_lt7-@cosphase_lt9))+\ @cosphase_l8*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt9)/\ ((@cosphase_lt8-@cosphase_lt1)*(@cosphase_lt8-@cosphase_lt2)*(@cosphase_lt8-@cosphase_lt3)*\ (@cosphase_lt8-@cosphase_lt4)*(@cosphase_lt8-@cosphase_lt5)*(@cosphase_lt8-@cosphase_lt6)*\ (@cosphase_lt8-@cosphase_lt7)*(@cosphase_lt8-@cosphase_lt9))+\ @cosphase_l9*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)/\ ((@cosphase_lt9-@cosphase_lt1)*(@cosphase_lt9-@cosphase_lt2)*(@cosphase_lt9-@cosphase_lt3)*\ (@cosphase_lt9-@cosphase_lt4)*(@cosphase_lt9-@cosphase_lt5)*(@cosphase_lt9-@cosphase_lt6)*\ (@cosphase_lt9-@cosphase_lt7)*(@cosphase_lt9-@cosphase_lt8)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt8*omgt0*@cosphase_a1+\ 8*gt7*omgt1*@cosphase_c7+\ 28*gt6*omgt2*@cosphase_c6+\ 56*gt5*omgt3*@cosphase_c5+\ 70*gt4*omgt4*@cosphase_c4+\ 56*gt3*omgt5*@cosphase_c3+\ 28*gt2*omgt6*@cosphase_c2+\ 8*gt1*omgt7*@cosphase_c1+\ 1*gt0*omgt8*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt8*omgt0*@cosphase_a1*@cosphase_wa1+\ 8*gt7*omgt1*@cosphase_c7*@cosphase_wc7+\ 28*gt6*omgt2*@cosphase_c6*@cosphase_wc6+\ 56*gt5*omgt3*@cosphase_c5*@cosphase_wc5+\ 70*gt4*omgt4*@cosphase_c4*@cosphase_wc4+\ 56*gt3*omgt5*@cosphase_c3*@cosphase_wc3+\ 28*gt2*omgt6*@cosphase_c2*@cosphase_wc2+\ 8*gt1*omgt7*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt8*@cosphase_a0*@cosphase_wa0)/(\ 1*gt8*omgt0*@cosphase_wa1+\ 8*gt7*omgt1*@cosphase_wc7+\ 28*gt6*omgt2*@cosphase_wc6+\ 56*gt5*omgt3*@cosphase_wc5+\ 70*gt4*omgt4*@cosphase_wc4+\ 56*gt3*omgt5*@cosphase_wc3+\ 28*gt2*omgt6*@cosphase_wc2+\ 8*gt1*omgt7*@cosphase_wc1+\ 1*gt0*omgt8*@cosphase_wa0) endif elseif(@ncosphase==10) if(@cosphase_interp=="Lagrange") cosphase=\ @cosphase_l1*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt1-@cosphase_lt2)*(@cosphase_lt1-@cosphase_lt3)*(@cosphase_lt1-@cosphase_lt4)*\ (@cosphase_lt1-@cosphase_lt5)*(@cosphase_lt1-@cosphase_lt6)*(@cosphase_lt1-@cosphase_lt7)*\ (@cosphase_lt1-@cosphase_lt8)*(@cosphase_lt1-@cosphase_lt9)*(@cosphase_lt1-@cosphase_lt10))+\ @cosphase_l2*(gt-@cosphase_lt1)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt2-@cosphase_lt1)*(@cosphase_lt2-@cosphase_lt3)*(@cosphase_lt2-@cosphase_lt4)*\ (@cosphase_lt2-@cosphase_lt5)*(@cosphase_lt2-@cosphase_lt6)*(@cosphase_lt2-@cosphase_lt7)*\ (@cosphase_lt2-@cosphase_lt8)*(@cosphase_lt2-@cosphase_lt9)*(@cosphase_lt2-@cosphase_lt10))+\ @cosphase_l3*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt4)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt3-@cosphase_lt1)*(@cosphase_lt3-@cosphase_lt2)*(@cosphase_lt3-@cosphase_lt4)*\ (@cosphase_lt3-@cosphase_lt5)*(@cosphase_lt3-@cosphase_lt6)*(@cosphase_lt3-@cosphase_lt7)*\ (@cosphase_lt3-@cosphase_lt8)*(@cosphase_lt3-@cosphase_lt9)*(@cosphase_lt3-@cosphase_lt10))+\ @cosphase_l4*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt5)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt4-@cosphase_lt1)*(@cosphase_lt4-@cosphase_lt2)*(@cosphase_lt4-@cosphase_lt3)*\ (@cosphase_lt4-@cosphase_lt5)*(@cosphase_lt4-@cosphase_lt6)*(@cosphase_lt4-@cosphase_lt7)*\ (@cosphase_lt4-@cosphase_lt8)*(@cosphase_lt4-@cosphase_lt9)*(@cosphase_lt4-@cosphase_lt10))+\ @cosphase_l5*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt5-@cosphase_lt1)*(@cosphase_lt5-@cosphase_lt2)*(@cosphase_lt5-@cosphase_lt3)*\ (@cosphase_lt5-@cosphase_lt4)*(@cosphase_lt5-@cosphase_lt6)*(@cosphase_lt5-@cosphase_lt7)*\ (@cosphase_lt5-@cosphase_lt8)*(@cosphase_lt5-@cosphase_lt9)*(@cosphase_lt5-@cosphase_lt10))+\ @cosphase_l6*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt6-@cosphase_lt1)*(@cosphase_lt6-@cosphase_lt2)*(@cosphase_lt6-@cosphase_lt3)*\ (@cosphase_lt6-@cosphase_lt4)*(@cosphase_lt6-@cosphase_lt5)*(@cosphase_lt6-@cosphase_lt7)*\ (@cosphase_lt6-@cosphase_lt8)*(@cosphase_lt6-@cosphase_lt9)*(@cosphase_lt6-@cosphase_lt10))+\ @cosphase_l7*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt7-@cosphase_lt1)*(@cosphase_lt7-@cosphase_lt2)*(@cosphase_lt7-@cosphase_lt3)*\ (@cosphase_lt7-@cosphase_lt4)*(@cosphase_lt7-@cosphase_lt5)*(@cosphase_lt7-@cosphase_lt6)*\ (@cosphase_lt7-@cosphase_lt8)*(@cosphase_lt7-@cosphase_lt9)*(@cosphase_lt7-@cosphase_lt10))+\ @cosphase_l8*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt9)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt8-@cosphase_lt1)*(@cosphase_lt8-@cosphase_lt2)*(@cosphase_lt8-@cosphase_lt3)*\ (@cosphase_lt8-@cosphase_lt4)*(@cosphase_lt8-@cosphase_lt5)*(@cosphase_lt8-@cosphase_lt6)*\ (@cosphase_lt8-@cosphase_lt7)*(@cosphase_lt8-@cosphase_lt9)*(@cosphase_lt8-@cosphase_lt10))+\ @cosphase_l9*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*(gt-@cosphase_lt4)*\ (gt-@cosphase_lt5)*(gt-@cosphase_lt6)*(gt-@cosphase_lt7)*(gt-@cosphase_lt8)*\ (gt-@cosphase_lt10)/(\ (@cosphase_lt9-@cosphase_lt1)*(@cosphase_lt9-@cosphase_lt2)*(@cosphase_lt9-@cosphase_lt3)*\ (@cosphase_lt9-@cosphase_lt4)*(@cosphase_lt9-@cosphase_lt5)*(@cosphase_lt9-@cosphase_lt6)*\ (@cosphase_lt9-@cosphase_lt7)*(@cosphase_lt9-@cosphase_lt8)*(@cosphase_lt9-@cosphase_lt10))+\ @cosphase_l10*(gt-@cosphase_lt1)*(gt-@cosphase_lt2)*(gt-@cosphase_lt3)*\ (gt-@cosphase_lt4)*(gt-@cosphase_lt5)*(gt-@cosphase_lt6)*\ (gt-@cosphase_lt7)*(gt-@cosphase_lt8)*(gt-@cosphase_lt9)/(\ (@cosphase_lt10-@cosphase_lt1)*(@cosphase_lt10-@cosphase_lt2)*(@cosphase_lt10-@cosphase_lt3)*\ (@cosphase_lt10-@cosphase_lt4)*(@cosphase_lt10-@cosphase_lt5)*(@cosphase_lt10-@cosphase_lt6)*\ (@cosphase_lt10-@cosphase_lt7)*(@cosphase_lt10-@cosphase_lt8)*(@cosphase_lt10-@cosphase_lt9)) elseif(@cosphase_interp=="Bezier") cosphase=\ 1*gt9*omgt0*@cosphase_a1+\ 9*gt8*omgt1*@cosphase_c8+\ 36*gt7*omgt2*@cosphase_c7+\ 84*gt6*omgt3*@cosphase_c6+\ 126*gt5*omgt4*@cosphase_c5+\ 126*gt4*omgt5*@cosphase_c4+\ 84*gt3*omgt6*@cosphase_c3+\ 36*gt2*omgt7*@cosphase_c2+\ 9*gt1*omgt8*@cosphase_c1+\ 1*gt0*omgt9*@cosphase_a0 elseif(@cosphase_interp=="rational Bezier") cosphase=(\ 1*gt9*omgt0*@cosphase_a1*@cosphase_wa1+\ 9*gt8*omgt1*@cosphase_c8*@cosphase_wc8+\ 36*gt7*omgt2*@cosphase_c7*@cosphase_wc7+\ 84*gt6*omgt3*@cosphase_c6*@cosphase_wc6+\ 126*gt5*omgt4*@cosphase_c5*@cosphase_wc5+\ 126*gt4*omgt5*@cosphase_c4*@cosphase_wc4+\ 84*gt3*omgt6*@cosphase_c3*@cosphase_wc3+\ 36*gt2*omgt7*@cosphase_c2*@cosphase_wc2+\ 9*gt1*omgt8*@cosphase_c1*@cosphase_wc1+\ 1*gt0*omgt9*@cosphase_a0*@cosphase_wa0)/(\ 1*gt9*omgt0*@cosphase_wa1+\ 9*gt8*omgt1*@cosphase_wc8+\ 36*gt7*omgt2*@cosphase_wc7+\ 84*gt6*omgt3*@cosphase_wc6+\ 126*gt5*omgt4*@cosphase_wc5+\ 126*gt4*omgt5*@cosphase_wc4+\ 84*gt3*omgt6*@cosphase_wc3+\ 36*gt2*omgt7*@cosphase_wc2+\ 9*gt1*omgt8*@cosphase_wc1+\ 1*gt0*omgt9*@cosphase_wa0) endif endif cosphase=cosphase*#pi/180 ; ; center ; if(@center_interp=="constant") center=@center_const elseif(@center_interp=="linear") center=(@center_one-@center_zero)*gt+@center_zero elseif(@ncenter==3) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)/\ ((@center_lt1-@center_lt2)*(@center_lt1-@center_lt3))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)/\ ((@center_lt2-@center_lt1)*(@center_lt2-@center_lt3))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)/\ ((@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)) elseif(@center_interp=="Bezier") center=\ 1*gt2*omgt0*@center_a1+\ 2*gt1*omgt1*@center_c1+\ 1*gt0*omgt2*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt2*omgt0*@center_a1*@center_wa1+\ 2*gt1*omgt1*@center_c1*@center_wc1+\ 1*gt0*omgt2*@center_a0*@center_wa0)/(\ 1*gt2*omgt0*@center_wa1+\ 2*gt1*omgt1*@center_wc1+\ 1*gt0*omgt2*@center_wa0) endif elseif(@ncenter==4) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)/\ ((@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)/\ ((@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)/\ ((@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)/\ ((@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)) elseif(@center_interp=="Bezier") center=\ 1*gt3*omgt0*@center_a1+\ 3*gt2*omgt1*@center_c2+\ 3*gt1*omgt2*@center_c1+\ 1*gt0*omgt3*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt3*omgt0*@center_a1*@center_wa1+\ 3*gt2*omgt1*@center_c2*@center_wc2+\ 3*gt1*omgt2*@center_c1*@center_wc1+\ 1*gt0*omgt3*@center_a0*@center_wa0)/(\ 1*gt3*omgt0*@center_wa1+\ 3*gt2*omgt1*@center_wc2+\ 3*gt1*omgt2*@center_wc1+\ 1*gt0*omgt3*@center_wa0) endif elseif(@ncenter==5) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)/(\ (@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)/(\ (@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*\ (gt-@center_lt5)/(\ (@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*\ (gt-@center_lt5)/(\ (@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*\ (gt-@center_lt4)/(\ (@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)) elseif(@center_interp=="Bezier") center=\ 1*gt4*omgt0*@center_a1+\ 4*gt3*omgt1*@center_c3+\ 6*gt2*omgt2*@center_c2+\ 4*gt1*omgt3*@center_c1+\ 1*gt0*omgt4*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt4*omgt0*@center_a1*@center_wa1+\ 4*gt3*omgt1*@center_c3*@center_wc3+\ 6*gt2*omgt2*@center_c2*@center_wc2+\ 4*gt1*omgt3*@center_c1*@center_wc1+\ 1*gt0*omgt4*@center_a0*@center_wa0)/(\ 1*gt4*omgt0*@center_wa1+\ 4*gt3*omgt1*@center_wc3+\ 6*gt2*omgt2*@center_wc2+\ 4*gt1*omgt3*@center_wc1+\ 1*gt0*omgt4*@center_wa0) endif elseif(@ncenter==6) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)/(\ (@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5)*(@center_lt1-@center_lt6))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)/(\ (@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5)*(@center_lt2-@center_lt6))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)/(\ (@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5)*(@center_lt3-@center_lt6))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt5)*\ (gt-@center_lt6)/(\ (@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5)*(@center_lt4-@center_lt6))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt6)/(\ (@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)*(@center_lt5-@center_lt6))+\ @center_l6*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)/(\ (@center_lt6-@center_lt1)*(@center_lt6-@center_lt2)*(@center_lt6-@center_lt3)*\ (@center_lt6-@center_lt4)*(@center_lt6-@center_lt5)) elseif(@center_interp=="Bezier") center=\ 1*gt5*omgt0*@center_a1+\ 5*gt4*omgt1*@center_c4+\ 10*gt3*omgt2*@center_c3+\ 10*gt2*omgt3*@center_c2+\ 5*gt1*omgt4*@center_c1+\ 1*gt0*omgt5*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt5*omgt0*@center_a1*@center_wa1+\ 5*gt4*omgt1*@center_c4*@center_wc4+\ 10*gt3*omgt2*@center_c3*@center_wc3+\ 10*gt2*omgt3*@center_c2*@center_wc2+\ 5*gt1*omgt4*@center_c1*@center_wc1+\ 1*gt0*omgt5*@center_a0*@center_wa0)/(\ 1*gt5*omgt0*@center_wa1+\ 5*gt4*omgt1*@center_wc4+\ 10*gt3*omgt2*@center_wc3+\ 10*gt2*omgt3*@center_wc2+\ 5*gt1*omgt4*@center_wc1+\ 1*gt0*omgt5*@center_wa0) endif elseif(@ncenter==7) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5)*(@center_lt1-@center_lt6)*(@center_lt1-@center_lt7))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5)*(@center_lt2-@center_lt6)*(@center_lt2-@center_lt7))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5)*(@center_lt3-@center_lt6)*(@center_lt3-@center_lt7))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5)*(@center_lt4-@center_lt6)*(@center_lt4-@center_lt7))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)*(@center_lt5-@center_lt6)*(@center_lt5-@center_lt7))+\ @center_l6*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt7)/(\ (@center_lt6-@center_lt1)*(@center_lt6-@center_lt2)*(@center_lt6-@center_lt3)*\ (@center_lt6-@center_lt4)*(@center_lt6-@center_lt5)*(@center_lt6-@center_lt7))+\ @center_l7*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)/(\ (@center_lt7-@center_lt1)*(@center_lt7-@center_lt2)*(@center_lt7-@center_lt3)*\ (@center_lt7-@center_lt4)*(@center_lt7-@center_lt5)*(@center_lt7-@center_lt6)) elseif(@center_interp=="Bezier") center=\ 1*gt6*omgt0*@center_a1+\ 6*gt5*omgt1*@center_c5+\ 15*gt4*omgt2*@center_c4+\ 20*gt3*omgt3*@center_c3+\ 15*gt2*omgt4*@center_c2+\ 6*gt1*omgt5*@center_c1+\ 1*gt0*omgt6*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt6*omgt0*@center_a1*@center_wa1+\ 6*gt5*omgt1*@center_c5*@center_wc5+\ 15*gt4*omgt2*@center_c4*@center_wc4+\ 20*gt3*omgt3*@center_c3*@center_wc3+\ 15*gt2*omgt4*@center_c2*@center_wc2+\ 6*gt1*omgt5*@center_c1*@center_wc1+\ 1*gt0*omgt6*@center_a0*@center_wa0)/(\ 1*gt6*omgt0*@center_wa1+\ 6*gt5*omgt1*@center_wc5+\ 15*gt4*omgt2*@center_wc4+\ 20*gt3*omgt3*@center_wc3+\ 15*gt2*omgt4*@center_wc2+\ 6*gt1*omgt5*@center_wc1+\ 1*gt0*omgt6*@center_wa0) endif elseif(@ncenter==8) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5)*(@center_lt1-@center_lt6)*(@center_lt1-@center_lt7)*\ (@center_lt1-@center_lt8))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5)*(@center_lt2-@center_lt6)*(@center_lt2-@center_lt7)*\ (@center_lt2-@center_lt8))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5)*(@center_lt3-@center_lt6)*(@center_lt3-@center_lt7)*\ (@center_lt3-@center_lt8))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5)*(@center_lt4-@center_lt6)*(@center_lt4-@center_lt7)*\ (@center_lt4-@center_lt8))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)*(@center_lt5-@center_lt6)*(@center_lt5-@center_lt7)*\ (@center_lt5-@center_lt8))+\ @center_l6*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt7)*(gt-@center_lt8)/(\ (@center_lt6-@center_lt1)*(@center_lt6-@center_lt2)*(@center_lt6-@center_lt3)*\ (@center_lt6-@center_lt4)*(@center_lt6-@center_lt5)*(@center_lt6-@center_lt7)*\ (@center_lt6-@center_lt8))+\ @center_l7*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt8)/(\ (@center_lt7-@center_lt1)*(@center_lt7-@center_lt2)*(@center_lt7-@center_lt3)*\ (@center_lt7-@center_lt4)*(@center_lt7-@center_lt5)*(@center_lt7-@center_lt6)*\ (@center_lt7-@center_lt8))+\ @center_l8*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt7)/(\ (@center_lt8-@center_lt1)*(@center_lt8-@center_lt2)*(@center_lt8-@center_lt3)*\ (@center_lt8-@center_lt4)*(@center_lt8-@center_lt5)*(@center_lt8-@center_lt6)*\ (@center_lt8-@center_lt7)) elseif(@center_interp=="Bezier") center=\ 1*gt7*omgt0*@center_a1+\ 7*gt6*omgt1*@center_c6+\ 21*gt5*omgt2*@center_c5+\ 35*gt4*omgt3*@center_c4+\ 35*gt3*omgt4*@center_c3+\ 21*gt2*omgt5*@center_c2+\ 7*gt1*omgt6*@center_c1+\ 1*gt0*omgt7*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt7*omgt0*@center_a1*@center_wa1+\ 7*gt6*omgt1*@center_c6*@center_wc6+\ 21*gt5*omgt2*@center_c5*@center_wc5+\ 35*gt4*omgt3*@center_c4*@center_wc4+\ 35*gt3*omgt4*@center_c3*@center_wc3+\ 21*gt2*omgt5*@center_c2*@center_wc2+\ 7*gt1*omgt6*@center_c1*@center_wc1+\ 1*gt0*omgt7*@center_a0*@center_wa0)/(\ 1*gt7*omgt0*@center_wa1+\ 7*gt6*omgt1*@center_wc6+\ 21*gt5*omgt2*@center_wc5+\ 35*gt4*omgt3*@center_wc4+\ 35*gt3*omgt4*@center_wc3+\ 21*gt2*omgt5*@center_wc2+\ 7*gt1*omgt6*@center_wc1+\ 1*gt0*omgt7*@center_wa0) endif elseif(@ncenter==9) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5)*(@center_lt1-@center_lt6)*(@center_lt1-@center_lt7)*\ (@center_lt1-@center_lt8)*(@center_lt1-@center_lt9))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5)*(@center_lt2-@center_lt6)*(@center_lt2-@center_lt7)*\ (@center_lt2-@center_lt8)*(@center_lt2-@center_lt9))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5)*(@center_lt3-@center_lt6)*(@center_lt3-@center_lt7)*\ (@center_lt3-@center_lt8)*(@center_lt3-@center_lt9))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5)*(@center_lt4-@center_lt6)*(@center_lt4-@center_lt7)*\ (@center_lt4-@center_lt8)*(@center_lt4-@center_lt9))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)*(@center_lt5-@center_lt6)*(@center_lt5-@center_lt7)*\ (@center_lt5-@center_lt8)*(@center_lt5-@center_lt9))+\ @center_l6*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt6-@center_lt1)*(@center_lt6-@center_lt2)*(@center_lt6-@center_lt3)*\ (@center_lt6-@center_lt4)*(@center_lt6-@center_lt5)*(@center_lt6-@center_lt7)*\ (@center_lt6-@center_lt8)*(@center_lt6-@center_lt9))+\ @center_l7*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt8)*(gt-@center_lt9)/\ ((@center_lt7-@center_lt1)*(@center_lt7-@center_lt2)*(@center_lt7-@center_lt3)*\ (@center_lt7-@center_lt4)*(@center_lt7-@center_lt5)*(@center_lt7-@center_lt6)*\ (@center_lt7-@center_lt8)*(@center_lt7-@center_lt9))+\ @center_l8*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt9)/\ ((@center_lt8-@center_lt1)*(@center_lt8-@center_lt2)*(@center_lt8-@center_lt3)*\ (@center_lt8-@center_lt4)*(@center_lt8-@center_lt5)*(@center_lt8-@center_lt6)*\ (@center_lt8-@center_lt7)*(@center_lt8-@center_lt9))+\ @center_l9*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)/\ ((@center_lt9-@center_lt1)*(@center_lt9-@center_lt2)*(@center_lt9-@center_lt3)*\ (@center_lt9-@center_lt4)*(@center_lt9-@center_lt5)*(@center_lt9-@center_lt6)*\ (@center_lt9-@center_lt7)*(@center_lt9-@center_lt8)) elseif(@center_interp=="Bezier") center=\ 1*gt8*omgt0*@center_a1+\ 8*gt7*omgt1*@center_c7+\ 28*gt6*omgt2*@center_c6+\ 56*gt5*omgt3*@center_c5+\ 70*gt4*omgt4*@center_c4+\ 56*gt3*omgt5*@center_c3+\ 28*gt2*omgt6*@center_c2+\ 8*gt1*omgt7*@center_c1+\ 1*gt0*omgt8*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt8*omgt0*@center_a1*@center_wa1+\ 8*gt7*omgt1*@center_c7*@center_wc7+\ 28*gt6*omgt2*@center_c6*@center_wc6+\ 56*gt5*omgt3*@center_c5*@center_wc5+\ 70*gt4*omgt4*@center_c4*@center_wc4+\ 56*gt3*omgt5*@center_c3*@center_wc3+\ 28*gt2*omgt6*@center_c2*@center_wc2+\ 8*gt1*omgt7*@center_c1*@center_wc1+\ 1*gt0*omgt8*@center_a0*@center_wa0)/(\ 1*gt8*omgt0*@center_wa1+\ 8*gt7*omgt1*@center_wc7+\ 28*gt6*omgt2*@center_wc6+\ 56*gt5*omgt3*@center_wc5+\ 70*gt4*omgt4*@center_wc4+\ 56*gt3*omgt5*@center_wc3+\ 28*gt2*omgt6*@center_wc2+\ 8*gt1*omgt7*@center_wc1+\ 1*gt0*omgt8*@center_wa0) endif elseif(@ncenter==10) if(@center_interp=="Lagrange") center=\ @center_l1*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt1-@center_lt2)*(@center_lt1-@center_lt3)*(@center_lt1-@center_lt4)*\ (@center_lt1-@center_lt5)*(@center_lt1-@center_lt6)*(@center_lt1-@center_lt7)*\ (@center_lt1-@center_lt8)*(@center_lt1-@center_lt9)*(@center_lt1-@center_lt10))+\ @center_l2*(gt-@center_lt1)*(gt-@center_lt3)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt2-@center_lt1)*(@center_lt2-@center_lt3)*(@center_lt2-@center_lt4)*\ (@center_lt2-@center_lt5)*(@center_lt2-@center_lt6)*(@center_lt2-@center_lt7)*\ (@center_lt2-@center_lt8)*(@center_lt2-@center_lt9)*(@center_lt2-@center_lt10))+\ @center_l3*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt4)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt3-@center_lt1)*(@center_lt3-@center_lt2)*(@center_lt3-@center_lt4)*\ (@center_lt3-@center_lt5)*(@center_lt3-@center_lt6)*(@center_lt3-@center_lt7)*\ (@center_lt3-@center_lt8)*(@center_lt3-@center_lt9)*(@center_lt3-@center_lt10))+\ @center_l4*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt5)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt4-@center_lt1)*(@center_lt4-@center_lt2)*(@center_lt4-@center_lt3)*\ (@center_lt4-@center_lt5)*(@center_lt4-@center_lt6)*(@center_lt4-@center_lt7)*\ (@center_lt4-@center_lt8)*(@center_lt4-@center_lt9)*(@center_lt4-@center_lt10))+\ @center_l5*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt5-@center_lt1)*(@center_lt5-@center_lt2)*(@center_lt5-@center_lt3)*\ (@center_lt5-@center_lt4)*(@center_lt5-@center_lt6)*(@center_lt5-@center_lt7)*\ (@center_lt5-@center_lt8)*(@center_lt5-@center_lt9)*(@center_lt5-@center_lt10))+\ @center_l6*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt6-@center_lt1)*(@center_lt6-@center_lt2)*(@center_lt6-@center_lt3)*\ (@center_lt6-@center_lt4)*(@center_lt6-@center_lt5)*(@center_lt6-@center_lt7)*\ (@center_lt6-@center_lt8)*(@center_lt6-@center_lt9)*(@center_lt6-@center_lt10))+\ @center_l7*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt8)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt7-@center_lt1)*(@center_lt7-@center_lt2)*(@center_lt7-@center_lt3)*\ (@center_lt7-@center_lt4)*(@center_lt7-@center_lt5)*(@center_lt7-@center_lt6)*\ (@center_lt7-@center_lt8)*(@center_lt7-@center_lt9)*(@center_lt7-@center_lt10))+\ @center_l8*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt9)*\ (gt-@center_lt10)/(\ (@center_lt8-@center_lt1)*(@center_lt8-@center_lt2)*(@center_lt8-@center_lt3)*\ (@center_lt8-@center_lt4)*(@center_lt8-@center_lt5)*(@center_lt8-@center_lt6)*\ (@center_lt8-@center_lt7)*(@center_lt8-@center_lt9)*(@center_lt8-@center_lt10))+\ @center_l9*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*(gt-@center_lt4)*\ (gt-@center_lt5)*(gt-@center_lt6)*(gt-@center_lt7)*(gt-@center_lt8)*\ (gt-@center_lt10)/(\ (@center_lt9-@center_lt1)*(@center_lt9-@center_lt2)*(@center_lt9-@center_lt3)*\ (@center_lt9-@center_lt4)*(@center_lt9-@center_lt5)*(@center_lt9-@center_lt6)*\ (@center_lt9-@center_lt7)*(@center_lt9-@center_lt8)*(@center_lt9-@center_lt10))+\ @center_l10*(gt-@center_lt1)*(gt-@center_lt2)*(gt-@center_lt3)*\ (gt-@center_lt4)*(gt-@center_lt5)*(gt-@center_lt6)*\ (gt-@center_lt7)*(gt-@center_lt8)*(gt-@center_lt9)/(\ (@center_lt10-@center_lt1)*(@center_lt10-@center_lt2)*(@center_lt10-@center_lt3)*\ (@center_lt10-@center_lt4)*(@center_lt10-@center_lt5)*(@center_lt10-@center_lt6)*\ (@center_lt10-@center_lt7)*(@center_lt10-@center_lt8)*(@center_lt10-@center_lt9)) elseif(@center_interp=="Bezier") center=\ 1*gt9*omgt0*@center_a1+\ 9*gt8*omgt1*@center_c8+\ 36*gt7*omgt2*@center_c7+\ 84*gt6*omgt3*@center_c6+\ 126*gt5*omgt4*@center_c5+\ 126*gt4*omgt5*@center_c4+\ 84*gt3*omgt6*@center_c3+\ 36*gt2*omgt7*@center_c2+\ 9*gt1*omgt8*@center_c1+\ 1*gt0*omgt9*@center_a0 elseif(@center_interp=="rational Bezier") center=(\ 1*gt9*omgt0*@center_a1*@center_wa1+\ 9*gt8*omgt1*@center_c8*@center_wc8+\ 36*gt7*omgt2*@center_c7*@center_wc7+\ 84*gt6*omgt3*@center_c6*@center_wc6+\ 126*gt5*omgt4*@center_c5*@center_wc5+\ 126*gt4*omgt5*@center_c4*@center_wc4+\ 84*gt3*omgt6*@center_c3*@center_wc3+\ 36*gt2*omgt7*@center_c2*@center_wc2+\ 9*gt1*omgt8*@center_c1*@center_wc1+\ 1*gt0*omgt9*@center_a0*@center_wa0)/(\ 1*gt9*omgt0*@center_wa1+\ 9*gt8*omgt1*@center_wc8+\ 36*gt7*omgt2*@center_wc7+\ 84*gt6*omgt3*@center_wc6+\ 126*gt5*omgt4*@center_wc5+\ 126*gt4*omgt5*@center_wc4+\ 84*gt3*omgt6*@center_wc3+\ 36*gt2*omgt7*@center_wc2+\ 9*gt1*omgt8*@center_wc1+\ 1*gt0*omgt9*@center_wa0) endif endif ; ; put it all together ; gr=sinamp*sin(sinfreq*(loop+sinphase)) gr=gr+cosamp*cos(cosfreq*(loop+cosphase)) zs[it]=gr*(cos(loop)+flip(sin(loop)))+center endwhile ; ; find longest segment ; if(@print_longest) it=0 while(it<(@npoint-1)) it=it+1 long=cabs(zs[it]-zs[it-1]) if(long>longest) longest=long endif endwhile longest=longest/2 print("Set threshold > ",longest) endif init: complex t=(0,0) complex z1=(0,0) complex z2=(0,0) float x=0 float y=0 float r=0 float rmin=1e20 int j=0 int jmin=0 final: j=0 while(j<(@npoint-1)) j=j+1 z1=zs[j-1] z2=zs[j] r=cabs(#pixel-(z1+z2)/2) if(r<@threshold) t=(#pixel-z1)/(z2-z1) x=real(t) y=imag(t) if(x<0) r=sqr(x)+sqr(y) elseif(x>1) r=sqr(x-1)+sqr(y) else r=sqr(y) endif r=sqrt(r)*cabs(z2-z1) if(r@line_width) #solid=true else if(@colorby=="outline") #index=rmin/@line_width elseif(@colorby=="which line") #index=jmin/(@npoint-1) endif endif default: title="Scribble" ; ; general ; heading caption="General" endheading int param npoint caption="# points" default=10000 min=2 endparam param colorby caption="color by" default=0 enum="outline" "which line" endparam float param line_width caption="line width" default=0.01 min=0 endparam float param threshold caption="threshold" default=1 endparam bool param print_longest caption="print longest" default=false hint="Use this to set the 'threshold' value." endparam ; ; loops ; heading caption="Loops" text="How many loops to draw, 360 degrees per loop." endheading param loop_interp caption="interpolation" default=1 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param loop_const caption="constant" default=1 visible=(@loop_interp=="constant") endparam float param loop_zero caption="0 value" default=0 visible=(@loop_interp=="linear") endparam float param loop_one caption="1 value" default=100 visible=(@loop_interp=="linear") endparam int param nloop caption="# points" default=3 min=3 max=10 visible=(@loop_interp>1) endparam ; ; loop: Bezier interpolation ; float param loop_a0 caption="anchor 0" default=0 visible=((@nloop>2)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c1 caption="control 1" default=50 visible=((@nloop>2)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c2 caption="control 2" default=0 visible=((@nloop>3)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c3 caption="control 3" default=0 visible=((@nloop>4)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c4 caption="control 4" default=0 visible=((@nloop>5)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c5 caption="control 5" default=0 visible=((@nloop>6)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c6 caption="control 6" default=0 visible=((@nloop>7)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c7 caption="control 7" default=0 visible=((@nloop>8)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_c8 caption="control 8" default=0 visible=((@nloop>9)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam float param loop_a1 caption="anchor 1" default=100 visible=((@nloop>2)&&((@loop_interp=="Bezier")||\ (@loop_interp=="rational Bezier"))) endparam ; ; loop: rational Bezier ; float param loop_wa0 caption="anchor 0 weight" default=1 visible=((@nloop>2)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc1 caption="control 1 weight" default=1 visible=((@nloop>2)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc2 caption="control 2 weight" default=1 visible=((@nloop>3)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc3 caption="control 3 weight" default=1 visible=((@nloop>4)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc4 caption="control 4 weight" default=1 visible=((@nloop>5)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc5 caption="control 5 weight" default=1 visible=((@nloop>6)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc6 caption="control 6 weight" default=1 visible=((@nloop>7)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc7 caption="control 7 weight" default=1 visible=((@nloop>8)&&(@loop_interp=="rational Bezier")) endparam float param loop_wc8 caption="control 8 weight" default=1 visible=((@nloop>9)&&(@loop_interp=="rational Bezier")) endparam float param loop_wa1 caption="anchor 1 weight" default=1 visible=((@nloop>2)&&(@loop_interp=="rational Bezier")) endparam ; ; loop: Lagrange interpolation ; float param loop_l1 caption="point 1" default=0 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_l2 caption="point 2" default=50 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_l3 caption="point 3" default=100 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_l4 caption="point 4" default=0 visible=((@nloop>3)&&(@loop_interp=="Lagrange")) endparam float param loop_l5 caption="point 5" default=0 visible=((@nloop>4)&&(@loop_interp=="Lagrange")) endparam float param loop_l6 caption="point 6" default=0 visible=((@nloop>5)&&(@loop_interp=="Lagrange")) endparam float param loop_l7 caption="point 7" default=0 visible=((@nloop>6)&&(@loop_interp=="Lagrange")) endparam float param loop_l8 caption="point 8" default=0 visible=((@nloop>7)&&(@loop_interp=="Lagrange")) endparam float param loop_l9 caption="point 9" default=0 visible=((@nloop>8)&&(@loop_interp=="Lagrange")) endparam float param loop_l10 caption="point 10" default=0 visible=((@nloop>9)&&(@loop_interp=="Lagrange")) endparam float param loop_lt1 caption="t1" default=0 min=0 max=1 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_lt3 caption="t3" default=1 min=0 max=1 visible=((@nloop>2)&&(@loop_interp=="Lagrange")) endparam float param loop_lt4 caption="t4" default=0 min=0 max=1 visible=((@nloop>3)&&(@loop_interp=="Lagrange")) endparam float param loop_lt5 caption="t5" default=0 min=0 max=1 visible=((@nloop>4)&&(@loop_interp=="Lagrange")) endparam float param loop_lt6 caption="t6" default=0 min=0 max=1 visible=((@nloop>5)&&(@loop_interp=="Lagrange")) endparam float param loop_lt7 caption="t7" default=0 min=0 max=1 visible=((@nloop>6)&&(@loop_interp=="Lagrange")) endparam float param loop_lt8 caption="t8" default=0 min=0 max=1 visible=((@nloop>7)&&(@loop_interp=="Lagrange")) endparam float param loop_lt9 caption="t9" default=0 min=0 max=1 visible=((@nloop>8)&&(@loop_interp=="Lagrange")) endparam float param loop_lt10 caption="t10" default=0 min=0 max=1 visible=((@nloop>9)&&(@loop_interp=="Lagrange")) endparam ; ; sine amplitude ; heading caption="Sine Amplitude" endheading param sinamp_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param sinamp_const caption="constant" default=1 visible=(@sinamp_interp=="constant") endparam float param sinamp_zero caption="0 value" default=0 visible=(@sinamp_interp=="linear") endparam float param sinamp_one caption="1 value" default=1 visible=(@sinamp_interp=="linear") endparam int param nsinamp caption="# points" default=3 min=3 max=10 visible=(@sinamp_interp>1) endparam ; ; sine amplitude: Bezier interpolation ; float param sinamp_a0 caption="anchor 0" default=0 visible=((@nsinamp>2)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c1 caption="control 1" default=1 visible=((@nsinamp>2)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c2 caption="control 2" default=0 visible=((@nsinamp>3)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c3 caption="control 3" default=0 visible=((@nsinamp>4)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c4 caption="control 4" default=0 visible=((@nsinamp>5)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c5 caption="control 5" default=0 visible=((@nsinamp>6)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c6 caption="control 6" default=0 visible=((@nsinamp>7)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c7 caption="control 7" default=0 visible=((@nsinamp>8)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_c8 caption="control 8" default=0 visible=((@nsinamp>9)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam float param sinamp_a1 caption="anchor 1" default=0 visible=((@nsinamp>2)&&((@sinamp_interp=="Bezier")||\ (@sinamp_interp=="rational Bezier"))) endparam ; ; sine amplitude: rational Bezier ; float param sinamp_wa0 caption="anchor 0 weight" default=1 visible=((@nsinamp>2)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc1 caption="control 1 weight" default=1 visible=((@nsinamp>2)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc2 caption="control 2 weight" default=1 visible=((@nsinamp>3)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc3 caption="control 3 weight" default=1 visible=((@nsinamp>4)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc4 caption="control 4 weight" default=1 visible=((@nsinamp>5)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc5 caption="control 5 weight" default=1 visible=((@nsinamp>6)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc6 caption="control 6 weight" default=1 visible=((@nsinamp>7)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc7 caption="control 7 weight" default=1 visible=((@nsinamp>8)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wc8 caption="control 8 weight" default=1 visible=((@nsinamp>9)&&(@sinamp_interp=="rational Bezier")) endparam float param sinamp_wa1 caption="anchor 1 weight" default=1 visible=((@nsinamp>2)&&(@sinamp_interp=="rational Bezier")) endparam ; ; sine amplitude: Lagrange interpolation ; float param sinamp_l1 caption="point 1" default=0 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l2 caption="point 2" default=1 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l3 caption="point 3" default=0 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l4 caption="point 4" default=0 visible=((@nsinamp>3)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l5 caption="point 5" default=0 visible=((@nsinamp>4)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l6 caption="point 6" default=0 visible=((@nsinamp>5)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l7 caption="point 7" default=0 visible=((@nsinamp>6)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l8 caption="point 8" default=0 visible=((@nsinamp>7)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l9 caption="point 9" default=0 visible=((@nsinamp>8)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_l10 caption="point 10" default=0 visible=((@nsinamp>9)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt1 caption="t1" default=0 min=0 max=1 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt3 caption="t3" default=1 min=0 max=1 visible=((@nsinamp>2)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt4 caption="t4" default=0 min=0 max=1 visible=((@nsinamp>3)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt5 caption="t5" default=0 min=0 max=1 visible=((@nsinamp>4)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt6 caption="t6" default=0 min=0 max=1 visible=((@nsinamp>5)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt7 caption="t7" default=0 min=0 max=1 visible=((@nsinamp>6)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt8 caption="t8" default=0 min=0 max=1 visible=((@nsinamp>7)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt9 caption="t9" default=0 min=0 max=1 visible=((@nsinamp>8)&&(@sinamp_interp=="Lagrange")) endparam float param sinamp_lt10 caption="t10" default=0 min=0 max=1 visible=((@nsinamp>9)&&(@sinamp_interp=="Lagrange")) endparam ; ; sine frequency ; heading caption="Sine Frequency" endheading param sinfreq_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param sinfreq_const caption="constant" default=2 visible=(@sinfreq_interp=="constant") endparam float param sinfreq_zero caption="0 value" default=2 visible=(@sinfreq_interp=="linear") endparam float param sinfreq_one caption="1 value" default=3 visible=(@sinfreq_interp=="linear") endparam int param nsinfreq caption="# points" default=3 min=3 max=10 visible=(@sinfreq_interp>1) endparam ; ; sine frequency: Bezier interpolation ; float param sinfreq_a0 caption="anchor 0" default=2 visible=((@nsinfreq>2)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c1 caption="control 1" default=3 visible=((@nsinfreq>2)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c2 caption="control 2" default=0 visible=((@nsinfreq>3)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c3 caption="control 3" default=0 visible=((@nsinfreq>4)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c4 caption="control 4" default=0 visible=((@nsinfreq>5)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c5 caption="control 5" default=0 visible=((@nsinfreq>6)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c6 caption="control 6" default=0 visible=((@nsinfreq>7)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c7 caption="control 7" default=0 visible=((@nsinfreq>8)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_c8 caption="control 8" default=0 visible=((@nsinfreq>9)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam float param sinfreq_a1 caption="anchor 1" default=2 visible=((@nsinfreq>2)&&((@sinfreq_interp=="Bezier")||\ (@sinfreq_interp=="rational Bezier"))) endparam ; ; sine frequency: rational Bezier ; float param sinfreq_wa0 caption="anchor 0 weight" default=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc1 caption="control 1 weight" default=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc2 caption="control 2 weight" default=1 visible=((@nsinfreq>3)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc3 caption="control 3 weight" default=1 visible=((@nsinfreq>4)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc4 caption="control 4 weight" default=1 visible=((@nsinfreq>5)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc5 caption="control 5 weight" default=1 visible=((@nsinfreq>6)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc6 caption="control 6 weight" default=1 visible=((@nsinfreq>7)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc7 caption="control 7 weight" default=1 visible=((@nsinfreq>8)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wc8 caption="control 8 weight" default=1 visible=((@nsinfreq>9)&&(@sinfreq_interp=="rational Bezier")) endparam float param sinfreq_wa1 caption="anchor 1 weight" default=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="rational Bezier")) endparam ; ; sine frequency: Lagrange interpolation ; float param sinfreq_l1 caption="point 1" default=2 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l2 caption="point 2" default=3 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l3 caption="point 3" default=2 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l4 caption="point 4" default=0 visible=((@nsinfreq>3)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l5 caption="point 5" default=0 visible=((@nsinfreq>4)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l6 caption="point 6" default=0 visible=((@nsinfreq>5)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l7 caption="point 7" default=0 visible=((@nsinfreq>6)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l8 caption="point 8" default=0 visible=((@nsinfreq>7)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l9 caption="point 9" default=0 visible=((@nsinfreq>8)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_l10 caption="point 10" default=0 visible=((@nsinfreq>9)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt1 caption="t1" default=0 min=0 max=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt3 caption="t3" default=1 min=0 max=1 visible=((@nsinfreq>2)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt4 caption="t4" default=0 min=0 max=1 visible=((@nsinfreq>3)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt5 caption="t5" default=0 min=0 max=1 visible=((@nsinfreq>4)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt6 caption="t6" default=0 min=0 max=1 visible=((@nsinfreq>5)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt7 caption="t7" default=0 min=0 max=1 visible=((@nsinfreq>6)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt8 caption="t8" default=0 min=0 max=1 visible=((@nsinfreq>7)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt9 caption="t9" default=0 min=0 max=1 visible=((@nsinfreq>8)&&(@sinfreq_interp=="Lagrange")) endparam float param sinfreq_lt10 caption="t10" default=0 min=0 max=1 visible=((@nsinfreq>9)&&(@sinfreq_interp=="Lagrange")) endparam ; ; sine phase ; heading caption="Sine Phase" text="Units are degrees." endheading param sinphase_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param sinphase_const caption="constant" default=0 visible=(@sinphase_interp=="constant") endparam float param sinphase_zero caption="0 value" default=0 visible=(@sinphase_interp=="linear") endparam float param sinphase_one caption="1 value" default=360 visible=(@sinphase_interp=="linear") endparam int param nsinphase caption="# points" default=3 min=3 max=10 visible=(@sinphase_interp>1) endparam ; ; sine phase: Bezier interpolation ; float param sinphase_a0 caption="anchor 0" default=0 visible=((@nsinphase>2)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c1 caption="control 1" default=180 visible=((@nsinphase>2)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c2 caption="control 2" default=0 visible=((@nsinphase>3)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c3 caption="control 3" default=0 visible=((@nsinphase>4)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c4 caption="control 4" default=0 visible=((@nsinphase>5)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c5 caption="control 5" default=0 visible=((@nsinphase>6)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c6 caption="control 6" default=0 visible=((@nsinphase>7)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c7 caption="control 7" default=0 visible=((@nsinphase>8)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_c8 caption="control 8" default=0 visible=((@nsinphase>9)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam float param sinphase_a1 caption="anchor 1" default=360 visible=((@nsinphase>2)&&((@sinphase_interp=="Bezier")||\ (@sinphase_interp=="rational Bezier"))) endparam ; ; sine phase: rational Bezier ; float param sinphase_wa0 caption="anchor 0 weight" default=1 visible=((@nsinphase>2)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc1 caption="control 1 weight" default=1 visible=((@nsinphase>2)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc2 caption="control 2 weight" default=1 visible=((@nsinphase>3)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc3 caption="control 3 weight" default=1 visible=((@nsinphase>4)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc4 caption="control 4 weight" default=1 visible=((@nsinphase>5)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc5 caption="control 5 weight" default=1 visible=((@nsinphase>6)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc6 caption="control 6 weight" default=1 visible=((@nsinphase>7)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc7 caption="control 7 weight" default=1 visible=((@nsinphase>8)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wc8 caption="control 8 weight" default=1 visible=((@nsinphase>9)&&(@sinphase_interp=="rational Bezier")) endparam float param sinphase_wa1 caption="anchor 1 weight" default=1 visible=((@nsinphase>2)&&(@sinphase_interp=="rational Bezier")) endparam ; ; sine phase: Lagrange interpolation ; float param sinphase_l1 caption="point 1" default=0 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l2 caption="point 2" default=180 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l3 caption="point 3" default=360 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l4 caption="point 4" default=0 visible=((@nsinphase>3)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l5 caption="point 5" default=0 visible=((@nsinphase>4)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l6 caption="point 6" default=0 visible=((@nsinphase>5)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l7 caption="point 7" default=0 visible=((@nsinphase>6)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l8 caption="point 8" default=0 visible=((@nsinphase>7)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l9 caption="point 9" default=0 visible=((@nsinphase>8)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_l10 caption="point 10" default=0 visible=((@nsinphase>9)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt1 caption="t1" default=0 min=0 max=1 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt3 caption="t3" default=1 min=0 max=1 visible=((@nsinphase>2)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt4 caption="t4" default=0 min=0 max=1 visible=((@nsinphase>3)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt5 caption="t5" default=0 min=0 max=1 visible=((@nsinphase>4)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt6 caption="t6" default=0 min=0 max=1 visible=((@nsinphase>5)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt7 caption="t7" default=0 min=0 max=1 visible=((@nsinphase>6)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt8 caption="t8" default=0 min=0 max=1 visible=((@nsinphase>7)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt9 caption="t9" default=0 min=0 max=1 visible=((@nsinphase>8)&&(@sinphase_interp=="Lagrange")) endparam float param sinphase_lt10 caption="t10" default=0 min=0 max=1 visible=((@nsinphase>9)&&(@sinphase_interp=="Lagrange")) endparam ; ; cosine amplitude ; heading caption="Cosine Amplitude" endheading param cosamp_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param cosamp_const caption="constant" default=0 visible=(@cosamp_interp=="constant") endparam float param cosamp_zero caption="0 value" default=0 visible=(@cosamp_interp=="linear") endparam float param cosamp_one caption="1 value" default=1 visible=(@cosamp_interp=="linear") endparam int param ncosamp caption="# points" default=3 min=3 max=10 visible=(@cosamp_interp>1) endparam ; ; cosine amplitude: Bezier interpolation ; float param cosamp_a0 caption="anchor 0" default=0 visible=((@ncosamp>2)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c1 caption="control 1" default=1 visible=((@ncosamp>2)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c2 caption="control 2" default=0 visible=((@ncosamp>3)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c3 caption="control 3" default=0 visible=((@ncosamp>4)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c4 caption="control 4" default=0 visible=((@ncosamp>5)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c5 caption="control 5" default=0 visible=((@ncosamp>6)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c6 caption="control 6" default=0 visible=((@ncosamp>7)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c7 caption="control 7" default=0 visible=((@ncosamp>8)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_c8 caption="control 8" default=0 visible=((@ncosamp>9)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam float param cosamp_a1 caption="anchor 1" default=0 visible=((@ncosamp>2)&&((@cosamp_interp=="Bezier")||\ (@cosamp_interp=="rational Bezier"))) endparam ; ; cosine amplitude: rational Bezier ; float param cosamp_wa0 caption="anchor 0 weight" default=1 visible=((@ncosamp>2)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc1 caption="control 1 weight" default=1 visible=((@ncosamp>2)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc2 caption="control 2 weight" default=1 visible=((@ncosamp>3)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc3 caption="control 3 weight" default=1 visible=((@ncosamp>4)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc4 caption="control 4 weight" default=1 visible=((@ncosamp>5)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc5 caption="control 5 weight" default=1 visible=((@ncosamp>6)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc6 caption="control 6 weight" default=1 visible=((@ncosamp>7)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc7 caption="control 7 weight" default=1 visible=((@ncosamp>8)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wc8 caption="control 8 weight" default=1 visible=((@ncosamp>9)&&(@cosamp_interp=="rational Bezier")) endparam float param cosamp_wa1 caption="anchor 1 weight" default=1 visible=((@ncosamp>2)&&(@cosamp_interp=="rational Bezier")) endparam ; ; cosine amplitude: Lagrange interpolation ; float param cosamp_l1 caption="point 1" default=0 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l2 caption="point 2" default=1 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l3 caption="point 3" default=0 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l4 caption="point 4" default=0 visible=((@ncosamp>3)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l5 caption="point 5" default=0 visible=((@ncosamp>4)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l6 caption="point 6" default=0 visible=((@ncosamp>5)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l7 caption="point 7" default=0 visible=((@ncosamp>6)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l8 caption="point 8" default=0 visible=((@ncosamp>7)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l9 caption="point 9" default=0 visible=((@ncosamp>8)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_l10 caption="point 10" default=0 visible=((@ncosamp>9)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt1 caption="t1" default=0 min=0 max=1 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt3 caption="t3" default=1 min=0 max=1 visible=((@ncosamp>2)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt4 caption="t4" default=0 min=0 max=1 visible=((@ncosamp>3)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt5 caption="t5" default=0 min=0 max=1 visible=((@ncosamp>4)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt6 caption="t6" default=0 min=0 max=1 visible=((@ncosamp>5)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt7 caption="t7" default=0 min=0 max=1 visible=((@ncosamp>6)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt8 caption="t8" default=0 min=0 max=1 visible=((@ncosamp>7)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt9 caption="t9" default=0 min=0 max=1 visible=((@ncosamp>8)&&(@cosamp_interp=="Lagrange")) endparam float param cosamp_lt10 caption="t10" default=0 min=0 max=1 visible=((@ncosamp>9)&&(@cosamp_interp=="Lagrange")) endparam ; ; cosine frequency ; heading caption="Cosine Frequency" endheading param cosfreq_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param cosfreq_const caption="constant" default=0 visible=(@cosfreq_interp=="constant") endparam float param cosfreq_zero caption="0 value" default=3 visible=(@cosfreq_interp=="linear") endparam float param cosfreq_one caption="1 value" default=2 visible=(@cosfreq_interp=="linear") endparam int param ncosfreq caption="# points" default=3 min=3 max=10 visible=(@cosfreq_interp>1) endparam ; ; cosine frequency: Bezier interpolation ; float param cosfreq_a0 caption="anchor 0" default=3 visible=((@ncosfreq>2)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c1 caption="control 1" default=2 visible=((@ncosfreq>2)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c2 caption="control 2" default=0 visible=((@ncosfreq>3)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c3 caption="control 3" default=0 visible=((@ncosfreq>4)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c4 caption="control 4" default=0 visible=((@ncosfreq>5)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c5 caption="control 5" default=0 visible=((@ncosfreq>6)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c6 caption="control 6" default=0 visible=((@ncosfreq>7)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c7 caption="control 7" default=0 visible=((@ncosfreq>8)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_c8 caption="control 8" default=0 visible=((@ncosfreq>9)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam float param cosfreq_a1 caption="anchor 1" default=3 visible=((@ncosfreq>2)&&((@cosfreq_interp=="Bezier")||\ (@cosfreq_interp=="rational Bezier"))) endparam ; ; cosine frequency: rational Bezier ; float param cosfreq_wa0 caption="anchor 0 weight" default=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc1 caption="control 1 weight" default=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc2 caption="control 2 weight" default=1 visible=((@ncosfreq>3)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc3 caption="control 3 weight" default=1 visible=((@ncosfreq>4)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc4 caption="control 4 weight" default=1 visible=((@ncosfreq>5)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc5 caption="control 5 weight" default=1 visible=((@ncosfreq>6)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc6 caption="control 6 weight" default=1 visible=((@ncosfreq>7)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc7 caption="control 7 weight" default=1 visible=((@ncosfreq>8)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wc8 caption="control 8 weight" default=1 visible=((@ncosfreq>9)&&(@cosfreq_interp=="rational Bezier")) endparam float param cosfreq_wa1 caption="anchor 1 weight" default=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="rational Bezier")) endparam ; ; cosine frequency: Lagrange interpolation ; float param cosfreq_l1 caption="point 1" default=3 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l2 caption="point 2" default=2 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l3 caption="point 3" default=3 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l4 caption="point 4" default=0 visible=((@ncosfreq>3)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l5 caption="point 5" default=0 visible=((@ncosfreq>4)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l6 caption="point 6" default=0 visible=((@ncosfreq>5)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l7 caption="point 7" default=0 visible=((@ncosfreq>6)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l8 caption="point 8" default=0 visible=((@ncosfreq>7)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l9 caption="point 9" default=0 visible=((@ncosfreq>8)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_l10 caption="point 10" default=0 visible=((@ncosfreq>9)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt1 caption="t1" default=0 min=0 max=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt3 caption="t3" default=1 min=0 max=1 visible=((@ncosfreq>2)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt4 caption="t4" default=0 min=0 max=1 visible=((@ncosfreq>3)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt5 caption="t5" default=0 min=0 max=1 visible=((@ncosfreq>4)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt6 caption="t6" default=0 min=0 max=1 visible=((@ncosfreq>5)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt7 caption="t7" default=0 min=0 max=1 visible=((@ncosfreq>6)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt8 caption="t8" default=0 min=0 max=1 visible=((@ncosfreq>7)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt9 caption="t9" default=0 min=0 max=1 visible=((@ncosfreq>8)&&(@cosfreq_interp=="Lagrange")) endparam float param cosfreq_lt10 caption="t10" default=0 min=0 max=1 visible=((@ncosfreq>9)&&(@cosfreq_interp=="Lagrange")) endparam ; ; cosine phase ; heading caption="Cosine Phase" text="Units are degrees." endheading param cosphase_interp caption="interpolation" default=0 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam float param cosphase_const caption="constant" default=0 visible=(@cosphase_interp=="constant") endparam float param cosphase_zero caption="0 value" default=0 visible=(@cosphase_interp=="linear") endparam float param cosphase_one caption="1 value" default=360 visible=(@cosphase_interp=="linear") endparam int param ncosphase caption="# points" default=3 min=3 max=10 visible=(@cosphase_interp>1) endparam ; ; cosine phase: Bezier interpolation ; float param cosphase_a0 caption="anchor 0" default=0 visible=((@ncosphase>2)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c1 caption="control 1" default=180 visible=((@ncosphase>2)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c2 caption="control 2" default=0 visible=((@ncosphase>3)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c3 caption="control 3" default=0 visible=((@ncosphase>4)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c4 caption="control 4" default=0 visible=((@ncosphase>5)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c5 caption="control 5" default=0 visible=((@ncosphase>6)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c6 caption="control 6" default=0 visible=((@ncosphase>7)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c7 caption="control 7" default=0 visible=((@ncosphase>8)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_c8 caption="control 8" default=0 visible=((@ncosphase>9)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam float param cosphase_a1 caption="anchor 1" default=360 visible=((@ncosphase>2)&&((@cosphase_interp=="Bezier")||\ (@cosphase_interp=="rational Bezier"))) endparam ; ; cosine phase: rational Bezier ; float param cosphase_wa0 caption="anchor 0 weight" default=1 visible=((@ncosphase>2)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc1 caption="control 1 weight" default=1 visible=((@ncosphase>2)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc2 caption="control 2 weight" default=1 visible=((@ncosphase>3)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc3 caption="control 3 weight" default=1 visible=((@ncosphase>4)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc4 caption="control 4 weight" default=1 visible=((@ncosphase>5)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc5 caption="control 5 weight" default=1 visible=((@ncosphase>6)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc6 caption="control 6 weight" default=1 visible=((@ncosphase>7)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc7 caption="control 7 weight" default=1 visible=((@ncosphase>8)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wc8 caption="control 8 weight" default=1 visible=((@ncosphase>9)&&(@cosphase_interp=="rational Bezier")) endparam float param cosphase_wa1 caption="anchor 1 weight" default=1 visible=((@ncosphase>2)&&(@cosphase_interp=="rational Bezier")) endparam ; ; cosine phase: Lagrange interpolation ; float param cosphase_l1 caption="point 1" default=0 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l2 caption="point 2" default=180 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l3 caption="point 3" default=360 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l4 caption="point 4" default=0 visible=((@ncosphase>3)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l5 caption="point 5" default=0 visible=((@ncosphase>4)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l6 caption="point 6" default=0 visible=((@ncosphase>5)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l7 caption="point 7" default=0 visible=((@ncosphase>6)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l8 caption="point 8" default=0 visible=((@ncosphase>7)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l9 caption="point 9" default=0 visible=((@ncosphase>8)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_l10 caption="point 10" default=0 visible=((@ncosphase>9)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt1 caption="t1" default=0 min=0 max=1 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt3 caption="t3" default=1 min=0 max=1 visible=((@ncosphase>2)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt4 caption="t4" default=0 min=0 max=1 visible=((@ncosphase>3)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt5 caption="t5" default=0 min=0 max=1 visible=((@ncosphase>4)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt6 caption="t6" default=0 min=0 max=1 visible=((@ncosphase>5)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt7 caption="t7" default=0 min=0 max=1 visible=((@ncosphase>6)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt8 caption="t8" default=0 min=0 max=1 visible=((@ncosphase>7)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt9 caption="t9" default=0 min=0 max=1 visible=((@ncosphase>8)&&(@cosphase_interp=="Lagrange")) endparam float param cosphase_lt10 caption="t10" default=0 min=0 max=1 visible=((@ncosphase>9)&&(@cosphase_interp=="Lagrange")) endparam ; ; center ; heading caption="Center" endheading param center_interp caption="interpolation" default=1 enum="constant" "linear" "Lagrange" "Bezier" "rational Bezier" endparam complex param center_const caption="constant" default=(0,0) visible=(@center_interp=="constant") endparam complex param center_zero caption="0 value" default=(-2,-2) visible=(@center_interp=="linear") endparam complex param center_one caption="1 value" default=(2,2) visible=(@center_interp=="linear") endparam int param ncenter caption="# points" default=3 min=3 max=10 visible=(@center_interp>1) endparam ; ; center: Bezier interpolation ; complex param center_a0 caption="anchor 0" default=(-2,0) visible=((@ncenter>2)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c1 caption="control 1" default=(0,0) visible=((@ncenter>2)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c2 caption="control 2" default=0 visible=((@ncenter>3)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c3 caption="control 3" default=0 visible=((@ncenter>4)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c4 caption="control 4" default=0 visible=((@ncenter>5)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c5 caption="control 5" default=0 visible=((@ncenter>6)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c6 caption="control 6" default=0 visible=((@ncenter>7)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c7 caption="control 7" default=0 visible=((@ncenter>8)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_c8 caption="control 8" default=0 visible=((@ncenter>9)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam complex param center_a1 caption="anchor 1" default=(2,0) visible=((@ncenter>2)&&((@center_interp=="Bezier")||\ (@center_interp=="rational Bezier"))) endparam ; ; center: rational Bezier ; complex param center_wa0 caption="anchor 0 weight" default=1 visible=((@ncenter>2)&&(@center_interp=="rational Bezier")) endparam complex param center_wc1 caption="control 1 weight" default=1 visible=((@ncenter>2)&&(@center_interp=="rational Bezier")) endparam complex param center_wc2 caption="control 2 weight" default=1 visible=((@ncenter>3)&&(@center_interp=="rational Bezier")) endparam complex param center_wc3 caption="control 3 weight" default=1 visible=((@ncenter>4)&&(@center_interp=="rational Bezier")) endparam complex param center_wc4 caption="control 4 weight" default=1 visible=((@ncenter>5)&&(@center_interp=="rational Bezier")) endparam complex param center_wc5 caption="control 5 weight" default=1 visible=((@ncenter>6)&&(@center_interp=="rational Bezier")) endparam complex param center_wc6 caption="control 6 weight" default=1 visible=((@ncenter>7)&&(@center_interp=="rational Bezier")) endparam complex param center_wc7 caption="control 7 weight" default=1 visible=((@ncenter>8)&&(@center_interp=="rational Bezier")) endparam complex param center_wc8 caption="control 8 weight" default=1 visible=((@ncenter>9)&&(@center_interp=="rational Bezier")) endparam complex param center_wa1 caption="anchor 1 weight" default=1 visible=((@ncenter>2)&&(@center_interp=="rational Bezier")) endparam ; ; center: Lagrange interpolation ; complex param center_l1 caption="point 1" default=(-2,0) visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam complex param center_l2 caption="point 2" default=(0,0) visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam complex param center_l3 caption="point 3" default=(2,0) visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam complex param center_l4 caption="point 4" default=(0,0) visible=((@ncenter>3)&&(@center_interp=="Lagrange")) endparam complex param center_l5 caption="point 5" default=(0,0) visible=((@ncenter>4)&&(@center_interp=="Lagrange")) endparam complex param center_l6 caption="point 6" default=(0,0) visible=((@ncenter>5)&&(@center_interp=="Lagrange")) endparam complex param center_l7 caption="point 7" default=(0,0) visible=((@ncenter>6)&&(@center_interp=="Lagrange")) endparam complex param center_l8 caption="point 8" default=(0,0) visible=((@ncenter>7)&&(@center_interp=="Lagrange")) endparam complex param center_l9 caption="point 9" default=(0,0) visible=((@ncenter>8)&&(@center_interp=="Lagrange")) endparam complex param center_l10 caption="point 10" default=(0,0) visible=((@ncenter>9)&&(@center_interp=="Lagrange")) endparam float param center_lt1 caption="t1" default=0 min=0 max=1 visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam float param center_lt2 caption="t2" default=0.5 min=0 max=1 visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam float param center_lt3 caption="t3" default=1 min=0 max=1 visible=((@ncenter>2)&&(@center_interp=="Lagrange")) endparam float param center_lt4 caption="t4" default=0 min=0 max=1 visible=((@ncenter>3)&&(@center_interp=="Lagrange")) endparam float param center_lt5 caption="t5" default=0 min=0 max=1 visible=((@ncenter>4)&&(@center_interp=="Lagrange")) endparam float param center_lt6 caption="t6" default=0 min=0 max=1 visible=((@ncenter>5)&&(@center_interp=="Lagrange")) endparam float param center_lt7 caption="t7" default=0 min=0 max=1 visible=((@ncenter>6)&&(@center_interp=="Lagrange")) endparam float param center_lt8 caption="t8" default=0 min=0 max=1 visible=((@ncenter>7)&&(@center_interp=="Lagrange")) endparam float param center_lt9 caption="t9" default=0 min=0 max=1 visible=((@ncenter>8)&&(@center_interp=="Lagrange")) endparam float param center_lt10 caption="t10" default=0 min=0 max=1 visible=((@ncenter>9)&&(@center_interp=="Lagrange")) endparam } generalized-dejong { ; Kerry Mitchell 22may2011 ; ; Generalization of Peter de Jong's algorithm: ; xn+1 = sin(a yn) - cos(b xn) ; yn+1 = sin(c xn) - cos(d yn) ; http://www.complexification.net/gallery/machines/peterdejong/ ; ; Expansions including using a general linear or quadratic function of x and y ; and use of different variations of sine and cosine functions ; $define debug global: complex rot=cos(#angle)-flip(sin(#angle)) complex zorbit=@zinit complex worbit=(0,0) float alpha=0 float cosin=0 float cosout=0 float oosepower=1/@sepower float period=0 float phi=#pi*(@sides-2)/(2*@sides) float sidep=0 float sinin=0 float sinout=0 float theta=0 float thetamax=2*#pi/@sides float twopi=2*#pi float xnew=0 float xold=0 float ynew=0 float yold=0 ; ; Thanks to Dave Makin for this tip! ; float fac=4/#magn if(4*#height<3*#width) fac=0.75*#width*fac/#height endif float xmin=real(#center)-fac/2 float xmax=xmin+fac float rdx=#width/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac float rdy=#height/(ymax-ymin) int gi=0 int gj=0 int gipix=0 int gjpix=0 int gn=0 int hits[#width,#height] int iside=0 cosin=abs(#width*#height)*@samplefac gn=round(sqrt(cosin)) ; ; clear out pixel array ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; let transients settle out ; gi=0 while(gi<@ntrans) gi=gi+1 xold=real(zorbit) yold=imag(zorbit) if(@mode=="de Jong") if(@trig_mode=="standard") cosin=@xcosfreq*xold sinin=@xsinfreq*yold xnew=sin(sinin)-cos(cosin) cosin=@ycosfreq*yold sinin=@ysinfreq*xold ynew=sin(sinin)-cos(cosin) elseif(@trig_mode=="superellipse") period=4/@xcosfreq cosin=xold cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4/@xsinfreq sinin=yold sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif xnew=sinout-cosout period=4/@ycosfreq cosin=yold cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4/@ysinfreq sinin=xold sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif ynew=sinout-cosout elseif(@trig_mode=="polygonal") cosin=@xcosfreq*xold cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@xsinfreq*yold sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) xnew=sinout-cosout cosin=@ycosfreq*yold cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@ysinfreq*xold sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) ynew=sinout-cosout endif elseif(@mode=="linear") if(@trig_mode=="standard") cosin=@xcosxslope*xold+@xcosyslope*yold+@xcosconstant sinin=@xsinxslope*xold+@xsinyslope*yold+@xsinconstant xnew=@xcosamp*cos(cosin)+@xsinamp*sin(sinin) cosin=@ycosxslope*xold+@ycosyslope*yold+@ycosconstant sinin=@ysinxslope*xold+@ysinyslope*yold+@ysinconstant ynew=@ycosamp*cos(cosin)+@ysinamp*sin(sinin) elseif(@trig_mode=="superellipse") period=4 cosin=@xcosxslope*xold+@xcosyslope*yold+@xcosconstant cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4 sinin=@xsinxslope*xold+@xsinyslope*yold+@xsinconstant sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif xnew=@xcosamp*cosout+@xsinamp*sinout period=4 cosin=@ycosxslope*xold+@ycosyslope*yold+@ycosconstant cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4 sinin=@ysinxslope*xold+@ysinyslope*yold+@ysinconstant sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif ynew=@ycosamp*cosout+@ysinamp*sinout elseif(@trig_mode=="polygonal") cosin=@xcosxslope*xold+@xcosyslope*yold+@xcosconstant cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@xsinxslope*xold+@xsinyslope*yold+@xsinconstant sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) xnew=@xcosamp*cosout+@xsinamp*sinout cosin=@ycosxslope*xold+@ycosyslope*yold+@ycosconstant cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@ysinxslope*xold+@ysinyslope*yold+@ysinconstant sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) ynew=@ycosamp*cosout+@ysinamp*sinout endif elseif(@mode=="quadratic") if(@trig_mode=="standard") cosin=@xcosxxcoef*sqr(xold)+@xcosxycoef*xold*yold+@xcosyycoef*sqr(yold) cosin=cosin+@xcosxslope*xold+@xcosyslope*yold+@xcosconstant sinin=@xsinxxcoef*sqr(xold)+@xsinxycoef*xold*yold+@xsinyycoef*sqr(yold) sinin=sinin+@xsinxslope*xold+@xsinyslope*yold+@xsinconstant xnew=@xcosamp*cos(cosin)+@xsinamp*sin(sinin) cosin=@ycosxxcoef*sqr(xold)+@ycosxycoef*xold*yold+@ycosyycoef*sqr(yold) cosin=cosin+@ycosxslope*xold+@ycosyslope*yold+@ycosconstant sinin=@ysinxxcoef*sqr(xold)+@ysinxycoef*xold*yold+@ysinyycoef*sqr(yold) sinin=sinin+@ysinxslope*xold+@ysinyslope*yold+@ysinconstant ynew=@ycosamp*cos(cosin)+@ysinamp*sin(sinin) elseif(@trig_mode=="superellipse") period=4 cosin=@xcosxxcoef*sqr(xold)+@xcosxycoef*xold*yold+@xcosyycoef*sqr(yold) cosin=cosin+@xcosxslope*xold+@xcosyslope*yold+@xcosconstant cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4 sinin=@xsinxxcoef*sqr(xold)+@xsinxycoef*xold*yold+@xsinyycoef*sqr(yold) sinin=sinin+@xsinxslope*xold+@xsinyslope*yold+@xsinconstant sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif xnew=@xcosamp*cosout+@xsinamp*sinout period=4 cosin=@ycosxxcoef*sqr(xold)+@ycosxycoef*xold*yold+@ycosyycoef*sqr(yold) cosin=cosin+@ycosxslope*xold+@ycosyslope*yold+@ycosconstant cosin=((cosin%period)+10*period)%period cosin=4*(cosin/period) if(cosin<1) cosout=(1-cosin^@sepower)^oosepower elseif(cosin<2) cosout=-((1-(2-cosin)^@sepower)^oosepower) elseif(cosin<3) cosout=-((1-(cosin-2)^@sepower)^oosepower) else cosout=(1-(4-cosin)^@sepower)^oosepower endif period=4 sinin=@ysinxxcoef*sqr(xold)+@ysinxycoef*xold*yold+@ysinyycoef*sqr(yold) sinin=sinin+@ysinxslope*xold+@ysinyslope*yold+@ysinconstant sinin=((sinin%period)+10*period)%period sinin=4*(sinin/period) if(sinin<1) sinout=(1-(1-sinin)^@sepower)^oosepower elseif(sinin<2) sinout=(1-(sinin-1)^@sepower)^oosepower elseif(sinin<3) sinout=-((1-(3-sinin)^@sepower)^oosepower) else sinout=-((1-(sinin-3)^@sepower)^oosepower) endif ynew=@ycosamp*cosout+@ysinamp*sinout elseif(@trig_mode=="polygonal") cosin=@xcosxxcoef*sqr(xold)+@xcosxycoef*xold*yold+@xcosyycoef*sqr(yold) cosin=cosin+@xcosxslope*xold+@xcosyslope*yold+@xcosconstant cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@xsinxxcoef*sqr(xold)+@xsinxycoef*xold*yold+@xsinyycoef*sqr(yold) sinin=sinin+@xsinxslope*xold+@xsinyslope*yold+@xsinconstant sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) xnew=@xcosamp*cosout+@xsinamp*sinout cosin=@ycosxxcoef*sqr(xold)+@ycosxycoef*xold*yold+@ycosyycoef*sqr(yold) cosin=cosin+@ycosxslope*xold+@ycosyslope*yold+@ycosconstant cosin=(cosin%twopi+2*twopi)%twopi iside=trunc(cosin/thetamax) theta=cosin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) cosout=sidep*cos(cosin) sinin=@ysinxxcoef*sqr(xold)+@ysinxycoef*xold*yold+@ysinyycoef*sqr(yold) sinin=sinin+@ysinxslope*xold+@ysinyslope*yold+@ysinconstant sinin=(sinin%twopi+2*twopi)%twopi iside=trunc(sinin/thetamax) theta=sinin-iside*thetamax alpha=#pi-theta-phi sidep=sin(phi)/sin(alpha) sinout=sidep*sin(sinin) ynew=@ycosamp*cosout+@ysinamp*sinout endif endif zorbit=xnew+flip(ynew) endwhile ; ; compute orbit ; gi=0 while(gixmin)&&(xnewymin)&&(ynew2) dtheta[2]=@v3/#width/#height/5*#pi dist[2]=@d3 zo[0,2]=@zf3 zo[1,2]=@zs3 if(@npoint>3) dtheta[3]=@v4/#width/#height/5*#pi dist[3]=@d4 zo[0,3]=@zf4 zo[1,3]=@zs4 if(@npoint>4) dtheta[4]=@v5/#width/#height/5*#pi dist[4]=@d5 zo[0,4]=@zf5 zo[1,4]=@zs5 if(@npoint>5) dtheta[5]=@v6/#width/#height/5*#pi dist[5]=@d6 zo[0,5]=@zf6 zo[1,5]=@zs6 if(@npoint>6) dtheta[6]=@v7/#width/#height/5*#pi dist[6]=@d7 zo[0,6]=@zf7 zo[1,6]=@zs7 if(@npoint>7) dtheta[7]=@v8/#width/#height/5*#pi dist[7]=@d8 zo[0,7]=@zf8 zo[1,7]=@zs8 if(@npoint>8) dtheta[8]=@v9/#width/#height/5*#pi dist[8]=@d9 zo[0,8]=@zf9 zo[1,8]=@zs9 if(@npoint>9) dtheta[9]=@v10/#width/#height/5*#pi dist[9]=@d10 zo[0,9]=@zf10 zo[1,9]=@zs10 endif endif endif endif endif endif endif endif ; ; probabilities ; if(@npoint==2) r=@prob1+@prob2 w[0]=@prob1/r elseif(@npoint==3) r=@prob1+@prob2+@prob3 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r elseif(@npoint==4) r=@prob1+@prob2+@prob3+@prob4 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r elseif(@npoint==5) r=@prob1+@prob2+@prob3+@prob4+@prob5 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r elseif(@npoint==6) r=@prob1+@prob2+@prob3+@prob4+@prob5+@prob6 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r w[4]=(@prob1+@prob2+@prob3+@prob4+@prob5)/r elseif(@npoint==7) r=@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r w[4]=(@prob1+@prob2+@prob3+@prob4+@prob5)/r w[5]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6)/r elseif(@npoint==8) r=@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r w[4]=(@prob1+@prob2+@prob3+@prob4+@prob5)/r w[5]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6)/r w[6]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7)/r elseif(@npoint==9) r=@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8+@prob9 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r w[4]=(@prob1+@prob2+@prob3+@prob4+@prob5)/r w[5]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6)/r w[6]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7)/r w[7]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8)/r elseif(@npoint==10) r=@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8+@prob9+@prob10 w[0]=@prob1/r w[1]=(@prob1+@prob2)/r w[2]=(@prob1+@prob2+@prob3)/r w[3]=(@prob1+@prob2+@prob3+@prob4)/r w[4]=(@prob1+@prob2+@prob3+@prob4+@prob5)/r w[5]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6)/r w[6]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7)/r w[7]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8)/r w[8]=(@prob1+@prob2+@prob3+@prob4+@prob5+@prob6+@prob7+@prob8+@prob9)/r endif ; ; initial points ; zorbit=@initialz if(@curve=="segment") theta[0]=0 elseif(@initial1=="manual") theta[0]=@angle1/180*#pi else theta[0]=0 endif if(@curve=="segment") theta[1]=0 elseif(@initial2=="manual") theta[1]=@angle2/180*#pi else theta[1]=1/@npoint*2*#pi endif if(@npoint>2) if(@curve=="segment") theta[2]=0 elseif(@initial3=="manual") theta[2]=@angle3/180*#pi else theta[2]=2/@npoint*2*#pi endif if(@npoint>3) if(@curve=="segment") theta[3]=0 elseif(@initial4=="manual") theta[3]=@angle4/180*#pi else theta[3]=3/@npoint*2*#pi endif if(@npoint>4) if(@curve=="segment") theta[4]=0 elseif(@initial5=="manual") theta[4]=@angle5/180*#pi else theta[4]=4/@npoint*2*#pi endif if(@npoint>5) if(@curve=="segment") theta[5]=0 elseif(@initial6=="manual") theta[5]=@angle6/180*#pi else theta[5]=5/@npoint*2*#pi endif if(@npoint>6) if(@curve=="segment") theta[6]=0 elseif(@initial7=="manual") theta[6]=@angle7/180*#pi else theta[6]=6/@npoint*2*#pi endif if(@npoint>7) if(@curve=="segment") theta[7]=0 elseif(@initial8=="manual") theta[7]=@angle8/180*#pi else theta[7]=7/@npoint*2*#pi endif if(@npoint>8) if(@curve=="segment") theta[8]=0 elseif(@initial9=="manual") theta[8]=@angle9/180*#pi else theta[8]=8/@npoint*2*#pi endif if(@npoint>9) if(@curve=="segment") theta[9]=0 elseif(@initial10=="manual") theta[9]=@angle10/180*#pi else theta[9]=9/@npoint*2*#pi endif endif endif endif endif endif endif endif endif ; ; let any transients settle out ; gi=0 while(gi<@ntrans) gi=gi+1 ; ; move points along curve ; ipoint=-1 while(ipoint<(@npoint-1)) ipoint=ipoint+1 theta[ipoint]=theta[ipoint]+dtheta[ipoint] fac=theta[ipoint] if(@curve=="circle") r=@radius zz[ipoint]=r*(cos(fac)+flip(sin(fac))) elseif(@curve=="superellipse") r=(abs(@bsemi*cos(fac)))^@power+(abs(@asemi*sin(fac)))^@power r=@asemi*@bsemi/(r^(1/@power)) zz[ipoint]=r*(cos(fac)+flip(sin(fac))) elseif(@curve=="rose") r=@cosamp*cos(@cosfreq*fac)+@sinamp*sin(@sinfreq*fac) zz[ipoint]=r*(cos(fac)+flip(sin(fac))) elseif(@curve=="lissajous") xr=@xamp*cos(@xfreq*fac) yi=@yamp*sin(@yfreq*fac) zz[ipoint]=xr+flip(yi) elseif((@curve=="segment")&&(@sliding=="sine")) fac2=(sin(fac)+1)/2 zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] elseif((@curve=="segment")&&(@sliding=="cosine")) fac2=(1-cos(fac))/2 zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] elseif((@curve=="segment")&&(@sliding=="ramp")) fac2=fac%2 if(fac2>1) fac2=2-fac2 endif zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] elseif((@curve=="segment")&&(@sliding=="sawtooth")) fac2=fac%1 zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] endif endwhile ; ; determine which point to use and use it ; seed=random(seed) fac=abs(seed)/#randomrange r=-99 ipoint=-1 while(ipoint<(@npoint-2)) ipoint=ipoint+1 if((fac1) fac2=2-fac2 endif zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] elseif((@curve=="segment")&&(@sliding=="sawtooth")) fac2=fac%1 zz[ipoint]=fac2*zo[1,ipoint]+(1-fac2)*zo[0,ipoint] endif endwhile ; ; determine which point to use and use it ; seed=random(seed) fac=abs(seed)/#randomrange r=-99 ipoint=-1 while(ipoint<(@npoint-2)) ipoint=ipoint+1 if((facxmin)&&(xrymin)&&(yi2) endheading complex param zf3 caption="1st endpoint" default=(-1,0) visible=((@npoint>2)&&(@curve=="segment")) endparam complex param zs3 caption="2nd endpoint" default=(0,0) visible=((@npoint>2)&&(@curve=="segment")) endparam param initial3 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>2)&&(@curve!="segment")) endparam float param angle3 caption="angle, deg" default=0 visible=((@npoint>2)&&(@curve!="segment")&&(@initial3=="manual")) endparam float param v3 caption="velocity" default=1 visible=(@npoint>2) endparam float param d3 caption="distance factor" default=0.5 visible=(@npoint>2) endparam float param prob3 caption="probability weight" default=1 min=0 visible=(@npoint>2) endparam ; ; point 4 ; heading caption="point 4" visible=(@npoint>3) endheading complex param zf4 caption="1st endpoint" default=(0,-1) visible=((@npoint>3)&&(@curve=="segment")) endparam complex param zs4 caption="2nd endpoint" default=(0,0) visible=((@npoint>3)&&(@curve=="segment")) endparam param initial4 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>3)&&(@curve!="segment")) endparam float param angle4 caption="angle, deg" default=0 visible=((@npoint>3)&&(@curve!="segment")&&(@initial4=="manual")) endparam float param v4 caption="velocity" default=1 visible=(@npoint>3) endparam float param d4 caption="distance factor" default=0.5 visible=(@npoint>3) endparam float param prob4 caption="probability weight" default=1 min=0 visible=(@npoint>3) endparam ; ; point 5 ; heading caption="point 5" visible=(@npoint>4) endheading complex param zf5 caption="1st endpoint" default=(0,0) visible=((@npoint>4)&&(@curve=="segment")) endparam complex param zs5 caption="2nd endpoint" default=(0,0) visible=((@npoint>4)&&(@curve=="segment")) endparam param initial5 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>4)&&(@curve!="segment")) endparam float param angle5 caption="angle, deg" default=0 visible=((@npoint>4)&&(@curve!="segment")&&(@initial5=="manual")) endparam float param v5 caption="velocity" default=1 visible=(@npoint>4) endparam float param d5 caption="distance factor" default=0.5 visible=(@npoint>4) endparam float param prob5 caption="probability weight" default=1 min=0 visible=(@npoint>4) endparam ; ; point 6 ; heading caption="point 6" visible=(@npoint>5) endheading complex param zf6 caption="1st endpoint" default=(0,0) visible=((@npoint>5)&&(@curve=="segment")) endparam complex param zs6 caption="2nd endpoint" default=(0,0) visible=((@npoint>5)&&(@curve=="segment")) endparam param initial6 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>5)&&(@curve!="segment")) endparam float param angle6 caption="angle, deg" default=0 visible=((@npoint>5)&&(@curve!="segment")&&(@initial6=="manual")) endparam float param v6 caption="velocity" default=1 visible=(@npoint>5) endparam float param d6 caption="distance factor" default=0.5 visible=(@npoint>5) endparam float param prob6 caption="probability weight" default=1 min=0 visible=(@npoint>5) endparam ; ; point 7 ; heading caption="point 7" visible=(@npoint>6) endheading complex param zf7 caption="1st endpoint" default=(0,0) visible=((@npoint>6)&&(@curve=="segment")) endparam complex param zs7 caption="2nd endpoint" default=(0,0) visible=((@npoint>6)&&(@curve=="segment")) endparam param initial7 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>6)&&(@curve!="segment")) endparam float param angle7 caption="angle, deg" default=0 visible=((@npoint>6)&&(@curve!="segment")&&(@initial7=="manual")) endparam float param v7 caption="velocity" default=1 visible=(@npoint>6) endparam float param d7 caption="distance factor" default=0.5 visible=(@npoint>6) endparam float param prob7 caption="probability weight" default=1 min=0 visible=(@npoint>6) endparam ; ; point 8 ; heading caption="point 8" visible=(@npoint>7) endheading complex param zf8 caption="1st endpoint" default=(0,0) visible=((@npoint>7)&&(@curve=="segment")) endparam complex param zs8 caption="2nd endpoint" default=(0,0) visible=((@npoint>7)&&(@curve=="segment")) endparam param initial8 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>7)&&(@curve!="segment")) endparam float param angle8 caption="angle, deg" default=0 visible=((@npoint>8)&&(@curve!="segment")&&(@initial8=="manual")) endparam float param v8 caption="velocity" default=1 visible=(@npoint>7) endparam float param d8 caption="distance factor" default=0.5 visible=(@npoint>7) endparam float param prob8 caption="probability weight" default=1 min=0 visible=(@npoint>7) endparam ; ; point 9 ; heading caption="point 9" visible=(@npoint>8) endheading complex param zf9 caption="1st endpoint" default=(0,0) visible=((@npoint>8)&&(@curve=="segment")) endparam complex param zs9 caption="2nd endpoint" default=(0,0) visible=((@npoint>8)&&(@curve=="segment")) endparam param initial9 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>8)&&(@curve!="segment")) endparam float param angle9 caption="angle, deg" default=0 visible=((@npoint>8)&&(@curve!="segment")&&(@initial9=="manual")) endparam float param v9 caption="velocity" default=1 visible=(@npoint>8) endparam float param d9 caption="distance factor" default=0.5 visible=(@npoint>8) endparam float param prob9 caption="probability weight" default=1 min=0 visible=(@npoint>8) endparam ; ; point 10 ; heading caption="point 10" visible=(@npoint>9) endheading complex param zf10 caption="1st endpoint" default=(0,0) visible=((@npoint>9)&&(@curve=="segment")) endparam complex param zs10 caption="2nd endpoint" default=(0,0) visible=((@npoint>9)&&(@curve=="segment")) endparam param initial10 caption="initialization" default=1 enum="manual" "automatic" visible=((@npoint>9)&&(@curve!="segment")) endparam float param angle10 caption="angle, deg" default=0 visible=((@npoint>9)&&(@curve!="segment")&&(@initial10=="manual")) endparam float param v10 caption="velocity" default=1 visible=(@npoint>9) endparam float param d10 caption="distance factor" default=0.5 visible=(@npoint>9) endparam float param prob10 caption="probability weight" default=1 min=0 visible=(@npoint>9) endparam ; ; drawing ; heading caption="Drawing parameters" endheading float param samplefac caption="sampling factor" default=10 min=0 endparam int param ntrans caption="transients" default=100 min=0 endparam param scaletype caption="scaling" default=1 enum="linear" "logarithmic" "hyperbolic tangent" "average"\ "which" "last" endparam int param whichcolor caption="which point" default=1 min=1 visible=(@scaletype=="which") endparam float param density caption="pre-density" default=1 hint="Like the 'Color Density' setting" visible=(@scaletype<3) endparam param solidbg caption="solid background" default=true endparam int param seed0 caption="initial seed" default=2357 endparam complex param initialz caption="initial z" default=(3.2,-2.3) endparam } square-spacefilling-curves { ; Kerry Mitchell 06Aug2014 ; ; Draws square space-filling curves, such as the Hilbert curve ; Offers many curve choices, from 2x2 grid (Hilbert) up to 9x9 grid. ; This can be used with regular fractal formulas, not just pixel. ; $define debug global: complex zsf[2,round(sqr(@block_size)^@nlevel)] int go=0 int gn=1 int iblock=0 int ilevel=0 int ipoint=0 int jpoint=0 int nblock=@block_size*@block_size int npoint=0 int xbwd=0 int xfwd=0 int xslope_size[round(sqr(@block_size))] int xslope_xfwd[round(sqr(@block_size))] int xslope_yfwd[round(sqr(@block_size))] int xslope_xbwd[round(sqr(@block_size))] int xslope_ybwd[round(sqr(@block_size))] int xnew=0 int xoffset[round(sqr(@block_size))] int ybwd=0 int yfwd=0 int yslope_size[round(sqr(@block_size))] int yslope_xfwd[round(sqr(@block_size))] int yslope_yfwd[round(sqr(@block_size))] int yslope_xbwd[round(sqr(@block_size))] int yslope_ybwd[round(sqr(@block_size))] int ynew=0 int yoffset[round(sqr(@block_size))] ; ; initialize the corner point arrays ; ; Hilbert curve ; if(@block_type=="2x2 - Hilbert") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(1,1) zsf[gn,3]=(1,0) npoint=4 ; ; block 0: rotate right 90 degrees (and backward) ; xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 ; ; block 1: no rotation (and forward) ; xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=0 ; ; block 2: no rotation (and forward) ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=1 yoffset[2]=0 ; ; block 3: rotate left 90 degrees (and backward) ; xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=2 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 ; ; 3x3 min/S ; elseif(@block_type=="3x3 - min/S") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(2,1) zsf[gn,4]=(1,1) zsf[gn,5]=(0,1) zsf[gn,6]=(0,2) zsf[gn,7]=(1,2) zsf[gn,8]=(2,2) npoint=9 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right forward ; xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: normal ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 ; ; block 3: left forward ; xslope_xfwd[3]=0 xslope_yfwd[3]=-1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=-1 yslope_xfwd[3]=1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=0 ; ; block 4: 180 forward ; xslope_xfwd[4]=-1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=2 xoffset[4]=-1 yslope_xfwd[4]=0 yslope_yfwd[4]=-1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=-1 ; ; block 5: left forward ; xslope_xfwd[5]=0 xslope_yfwd[5]=-1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=-1 yslope_xfwd[5]=1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[0]=0 ; ; block 6: normal ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=0 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 ; ; block 7: right forward ; xslope_xfwd[7]=0 xslope_yfwd[7]=1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=0 yslope_xfwd[7]=-1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=-1 ; ; block 8: normal ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=2 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=2 yoffset[8]=0 ; ; 3x3 cbf/max corners ; elseif(@block_type=="3x3 - cbf/max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(2,2) zsf[gn,7]=(2,1) zsf[gn,8]=(2,0) npoint=9 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right backward ; xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: right backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 ; ; block 3: 180 forward ; xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 ; ; block 4: normal ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 ; ; block 5: normal ; xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 ; ; block 6: normal ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 ; ; block 7: left backward ; xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=3 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=0 ; ; block 8: left backward ; xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=-1 xslope_size[8]=3 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=1 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 ; ; 4x4 minimum corners ; elseif(@block_type=="4x4 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(0,2) zsf[gn,3]=(0,3) zsf[gn,4]=(1,3) zsf[gn,5]=(1,2) zsf[gn,6]=(1,1) zsf[gn,7]=(1,0) zsf[gn,8]=(2,0) zsf[gn,9]=(2,1) zsf[gn,10]=(2,2) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) npoint=16 ; ; block 0: right backward ; xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 ; ; block 1: right backward ; xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=2 yoffset[1]=-1 ; ; block 2: right backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=0 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=3 yoffset[2]=-1 ; ; block 3: normal ; xslope_xfwd[3]=1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=0 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=3 yoffset[3]=0 ; ; block 4: normal ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=1 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=3 yoffset[4]=0 ; ; block 5: left backward ; xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=-1 xslope_size[5]=2 xoffset[5]=-1 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 ; ; block 6: left backward ; xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=-1 xslope_size[6]=2 xoffset[6]=-1 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=1 yslope_ybwd[6]=0 yslope_size[6]=1 yoffset[6]=0 ; ; block 7: left backward ; xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=0 yoffset[7]=0 ; ; block 8: right backward ; xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=2 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=1 yoffset[8]=-1 ; ; block 9: right backward ; xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=2 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 ; ; block 10: right backward ; xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=2 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=-1 ; ; block 11: normal ; xslope_xfwd[11]=1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 ; ; block 12: normal ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 ; ; block 13: left backward ; xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 ; ; block 14: left backward ; xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 ; ; block 15: left backward ; xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 ; ; 4x4 spiral ; elseif(@block_type=="4x4 - spiral") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(2,1) zsf[gn,4]=(2,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,1) zsf[gn,7]=(0,1) zsf[gn,8]=(0,2) zsf[gn,9]=(0,3) zsf[gn,10]=(1,3) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) npoint=16 ; ; block 0: normal ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: normal ; xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 ; ; block 2: right backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=1 yoffset[2]=-1 ; ; block 3: right backward ; xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=1 xslope_size[3]=2 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=-1 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 ; ; block 4: right backward ; xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=2 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=3 yoffset[4]=-1 ; ; block 5: left backward ; xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=-1 xslope_size[5]=2 xoffset[5]=-1 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 ; ; block 6: 180 forward ; xslope_xfwd[6]=-1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=-1 yslope_xfwd[6]=0 yslope_yfwd[6]=-1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=-1 ; ; block 7: 180 forward ; xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 ; ; block 8: right backward ; xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 ; ; block 9: normal ; xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 ; ; block 10: normal ; xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=0 ; ; block 11: normal ; xslope_xfwd[11]=1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 ; ; block 12: normal ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 ; ; block 13: left backward ; xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 ; ; block 14: left backward ; xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 ; ; block 15: left backward ; xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 ; ; 4x4 cbf ; elseif(@block_type=="4x4 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(1,1) zsf[gn,3]=(1,0) zsf[gn,4]=(2,0) zsf[gn,5]=(2,1) zsf[gn,6]=(2,2) zsf[gn,7]=(1,2) zsf[gn,8]=(0,2) zsf[gn,9]=(0,3) zsf[gn,10]=(1,3) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) npoint=16 ; ; block 0: right backward ; xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 ; ; block 1: normal ; xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=0 ; ; block 2: normal ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=1 yoffset[2]=0 ; ; block 3: left backward ; xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=2 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 ; ; block 4: right backward ; xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=2 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=1 yoffset[4]=-1 ; ; block 5: right backward ; xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=2 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 ; ; block 6: right backward ; xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=3 yoffset[6]=-1 ; ; block 7: 180 forward ; xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=-1 ; ; block 8: 180 forward ; xslope_xfwd[8]=-1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=-1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 ; ; block 9: normal ; xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 ; ; block 10: normal ; xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=0 ; ; block 11: normal ; xslope_xfwd[11]=1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 ; ; block 12: normal ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 ; ; block 13: left backward ; xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 ; ; block 14: left backward ; xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 ; ; block 15: left backward ; xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 ; ; 4x4 maximum corners (Hilbert) ; elseif(@block_type=="4x4 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(0,3) zsf[gn,6]=(1,3) zsf[gn,7]=(1,2) zsf[gn,8]=(2,2) zsf[gn,9]=(2,3) zsf[gn,10]=(3,3) zsf[gn,11]=(3,2) zsf[gn,12]=(3,1) zsf[gn,13]=(2,1) zsf[gn,14]=(2,0) zsf[gn,15]=(3,0) npoint=16 ; ; block 0: normal ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right backward ; xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: right backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 ; ; block 3: 180 forward ; xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 ; ; block 4: right backward ; xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=3 yoffset[4]=-1 ; ; block 5: normal ; xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=0 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=0 ; ; block 6: normal ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=3 yoffset[6]=0 ; ; block 7: left backward ; xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=0 ; ; block 8: right backward ; xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=2 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 ; ; block 9: normal ; xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=2 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 ; ; block 10: normal ; xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=0 ; ; block 11: left backward ; xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=4 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=0 ; ; block 12: 180 forward ; xslope_xfwd[12]=-1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=4 xoffset[12]=-1 yslope_xfwd[12]=0 yslope_yfwd[12]=-1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=-1 ; ; block 13: left backward ; xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=3 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=1 yoffset[13]=0 ; ; block 14: left backward ; xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=3 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=0 yoffset[14]=0 ; ; block 15: normal ; xslope_xfwd[15]=1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=3 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 ; ; 5x5 minimum corners ; elseif(@block_type=="5x5 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(4,1) zsf[gn,6]=(3,1) zsf[gn,7]=(2,1) zsf[gn,8]=(1,1) zsf[gn,9]=(0,1) zsf[gn,10]=(0,2) zsf[gn,11]=(1,2) zsf[gn,12]=(2,2) zsf[gn,13]=(3,2) zsf[gn,14]=(4,2) zsf[gn,15]=(4,3) zsf[gn,16]=(3,3) zsf[gn,17]=(2,3) zsf[gn,18]=(1,3) zsf[gn,19]=(0,3) zsf[gn,20]=(0,4) zsf[gn,21]=(1,4) zsf[gn,22]=(2,4) zsf[gn,23]=(3,4) zsf[gn,24]=(4,4) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=-1 xslope_size[1]=2 xoffset[1]=-1 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=1 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=4 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=4 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=1 xslope_ybwd[6]=0 xslope_size[6]=3 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=0 yslope_ybwd[6]=1 yslope_size[6]=1 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=2 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=1 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=0 yslope_ybwd[8]=1 yslope_size[8]=1 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=0 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=0 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=4 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=4 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=1 xslope_ybwd[16]=0 xslope_size[16]=3 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=0 yslope_ybwd[16]=1 yslope_size[16]=3 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=2 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=4 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=1 xslope_ybwd[18]=0 xslope_size[18]=1 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=0 yslope_ybwd[18]=1 yslope_size[18]=3 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=0 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=0 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=4 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=2 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=4 yoffset[21]=0 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=4 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=4 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=0 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=0 ; ; 5x5 S ; elseif(@block_type=="5x5 - S") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(4,1) zsf[gn,6]=(4,2) zsf[gn,7]=(4,3) zsf[gn,8]=(3,3) zsf[gn,9]=(2,3) zsf[gn,10]=(1,3) zsf[gn,11]=(1,2) zsf[gn,12]=(2,2) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(2,1) zsf[gn,16]=(1,1) zsf[gn,17]=(0,1) zsf[gn,18]=(0,2) zsf[gn,19]=(0,3) zsf[gn,20]=(0,4) zsf[gn,21]=(1,4) zsf[gn,22]=(2,4) zsf[gn,23]=(3,4) zsf[gn,24]=(4,4) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=-1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=-1 yslope_xfwd[5]=1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=4 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=-1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=5 xoffset[7]=-1 yslope_xfwd[7]=1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=0 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=1 xslope_ybwd[8]=0 xslope_size[8]=3 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=0 yslope_ybwd[8]=1 yslope_size[8]=3 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=2 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=4 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=1 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=0 yslope_ybwd[10]=1 yslope_size[10]=3 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=0 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=1 xslope_ybwd[14]=0 xslope_size[14]=3 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=0 yslope_ybwd[14]=1 yslope_size[14]=1 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=2 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=2 yoffset[15]=-1 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=1 xslope_ybwd[16]=0 xslope_size[16]=1 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=0 yslope_ybwd[16]=1 yslope_size[16]=1 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=0 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=-1 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=0 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=0 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=0 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=4 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=1 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=5 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=4 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=3 xoffset[23]=0 yslope_xfwd[23]=-1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=5 yoffset[23]=-1 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=0 ; ; 5x5 cbf ; elseif(@block_type=="5x5 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(2,2) zsf[gn,7]=(2,1) zsf[gn,8]=(2,0) zsf[gn,9]=(3,0) zsf[gn,10]=(3,1) zsf[gn,11]=(3,2) zsf[gn,12]=(3,3) zsf[gn,13]=(2,3) zsf[gn,14]=(1,3) zsf[gn,15]=(0,3) zsf[gn,16]=(0,4) zsf[gn,17]=(1,4) zsf[gn,18]=(2,4) zsf[gn,19]=(3,4) zsf[gn,20]=(4,4) zsf[gn,21]=(4,3) zsf[gn,22]=(4,2) zsf[gn,23]=(4,1) zsf[gn,24]=(4,0) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=3 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=0 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=-1 xslope_size[8]=3 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=1 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=3 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=-1 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=3 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=4 yoffset[12]=-1 xslope_xfwd[13]=-1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=-1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=-1 xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=2 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=4 yoffset[14]=-1 xslope_xfwd[15]=-1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=1 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=-1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=4 yoffset[16]=0 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=4 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=4 yoffset[18]=0 xslope_xfwd[19]=1 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=3 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=1 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=4 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=4 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=5 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=0 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=-1 xslope_size[22]=5 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=1 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=1 yoffset[23]=0 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=-1 xslope_size[24]=5 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=1 yslope_ybwd[24]=0 yslope_size[24]=0 yoffset[24]=0 ; ; 5x5 diagonal a ; elseif(@block_type=="5x5 - diag a") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(2,1) zsf[gn,4]=(1,1) zsf[gn,5]=(0,1) zsf[gn,6]=(0,2) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(1,3) zsf[gn,11]=(1,2) zsf[gn,12]=(2,2) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) zsf[gn,16]=(4,0) zsf[gn,17]=(4,1) zsf[gn,18]=(4,2) zsf[gn,19]=(4,3) zsf[gn,20]=(3,3) zsf[gn,21]=(2,3) zsf[gn,22]=(2,4) zsf[gn,23]=(3,4) zsf[gn,24]=(4,4) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=-1 xslope_size[1]=2 xoffset[1]=-1 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=1 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=-1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=-1 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=1 xslope_ybwd[4]=0 xslope_size[4]=1 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=0 yslope_ybwd[4]=1 yslope_size[4]=1 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=-1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=-1 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=0 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=-1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=-1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=1 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=0 yslope_ybwd[10]=1 yslope_size[10]=3 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=1 xoffset[11]=0 yslope_xfwd[11]=-1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=-1 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=1 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=0 yslope_xfwd[13]=-1 yslope_yfwd[13]=0 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=3 yoffset[13]=-1 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=1 xslope_ybwd[14]=0 xslope_size[14]=3 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=0 yslope_ybwd[14]=1 yslope_size[14]=1 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=1 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=3 xoffset[15]=0 yslope_xfwd[15]=-1 yslope_yfwd[15]=0 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=1 yoffset[15]=-1 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=4 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=0 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=4 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=-1 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=4 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=1 xslope_ybwd[20]=0 xslope_size[20]=3 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=0 yslope_ybwd[20]=1 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=1 xslope_size[21]=2 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=-1 yslope_ybwd[21]=0 yslope_size[21]=4 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=4 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=4 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=0 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=0 ; ; 5x5 diagonal b ; elseif(@block_type=="5x5 - diag b") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(4,1) zsf[gn,6]=(3,1) zsf[gn,7]=(2,1) zsf[gn,8]=(1,1) zsf[gn,9]=(0,1) zsf[gn,10]=(0,2) zsf[gn,11]=(1,2) zsf[gn,12]=(2,2) zsf[gn,13]=(2,3) zsf[gn,14]=(1,3) zsf[gn,15]=(0,3) zsf[gn,16]=(0,4) zsf[gn,17]=(1,4) zsf[gn,18]=(2,4) zsf[gn,19]=(3,4) zsf[gn,20]=(3,3) zsf[gn,21]=(3,2) zsf[gn,22]=(4,2) zsf[gn,23]=(4,3) zsf[gn,24]=(4,4) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=-1 xslope_size[1]=2 xoffset[1]=-1 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=1 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=4 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=4 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=1 xslope_ybwd[6]=0 xslope_size[6]=3 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=0 yslope_ybwd[6]=1 yslope_size[6]=1 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=2 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=1 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=0 yslope_ybwd[8]=1 yslope_size[8]=1 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=0 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=0 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=2 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=-1 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=1 xslope_ybwd[14]=0 xslope_size[14]=1 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=0 yslope_ybwd[14]=1 yslope_size[14]=3 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=0 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=4 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=-1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=5 yoffset[17]=-1 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=4 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=3 xoffset[19]=0 yslope_xfwd[19]=-1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=5 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=1 xslope_ybwd[20]=0 xslope_size[20]=3 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=0 yslope_ybwd[20]=1 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=1 xslope_size[23]=4 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=-1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=-1 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=0 ; ; 5x5 maximum corners ; elseif(@block_type=="5x5 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,3) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(2,4) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,4) zsf[gn,14]=(4,4) zsf[gn,15]=(4,3) zsf[gn,16]=(4,2) zsf[gn,17]=(3,2) zsf[gn,18]=(2,2) zsf[gn,19]=(2,1) zsf[gn,20]=(2,0) zsf[gn,21]=(3,0) zsf[gn,22]=(3,1) zsf[gn,23]=(4,1) zsf[gn,24]=(4,0) npoint=25 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=4 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=4 yoffset[9]=0 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=2 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=4 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=3 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=4 yoffset[12]=-1 xslope_xfwd[13]=1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=0 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=4 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=4 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=5 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=3 yoffset[15]=0 xslope_xfwd[16]=-1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=5 xoffset[16]=-1 yslope_xfwd[16]=0 yslope_yfwd[16]=-1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=3 yoffset[16]=-1 xslope_xfwd[17]=-1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=4 xoffset[17]=-1 yslope_xfwd[17]=0 yslope_yfwd[17]=-1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=3 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=-1 xslope_size[18]=3 xoffset[18]=-1 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=1 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=3 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=1 yoffset[19]=0 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=-1 xslope_size[20]=3 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=1 yslope_ybwd[20]=0 yslope_size[20]=0 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=1 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=-1 yslope_ybwd[21]=0 yslope_size[21]=1 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=3 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=1 yoffset[22]=0 xslope_xfwd[23]=1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=4 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=1 yoffset[23]=0 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=-1 xslope_size[24]=5 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=1 yslope_ybwd[24]=0 yslope_size[24]=0 yoffset[24]=0 ; ; 6x6 minimum corners ; elseif(@block_type=="6x6 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(0,2) zsf[gn,3]=(0,3) zsf[gn,4]=(0,4) zsf[gn,5]=(0,5) zsf[gn,6]=(1,5) zsf[gn,7]=(1,4) zsf[gn,8]=(1,3) zsf[gn,9]=(1,2) zsf[gn,10]=(1,1) zsf[gn,11]=(1,0) zsf[gn,12]=(2,0) zsf[gn,13]=(2,1) zsf[gn,14]=(2,2) zsf[gn,15]=(2,3) zsf[gn,16]=(2,4) zsf[gn,17]=(2,5) zsf[gn,18]=(3,5) zsf[gn,19]=(3,4) zsf[gn,20]=(3,3) zsf[gn,21]=(3,2) zsf[gn,22]=(3,1) zsf[gn,23]=(3,0) zsf[gn,24]=(4,0) zsf[gn,25]=(4,1) zsf[gn,26]=(4,2) zsf[gn,27]=(4,3) zsf[gn,28]=(4,4) zsf[gn,29]=(4,5) zsf[gn,30]=(5,5) zsf[gn,31]=(5,4) zsf[gn,32]=(5,3) zsf[gn,33]=(5,2) zsf[gn,34]=(5,1) zsf[gn,35]=(5,0) npoint=36 xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=2 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=0 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=3 yoffset[2]=-1 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=1 xslope_size[3]=0 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=-1 yslope_ybwd[3]=0 yslope_size[3]=4 yoffset[3]=-1 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=5 yoffset[4]=-1 xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=0 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=5 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=5 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=0 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=-1 xslope_size[8]=2 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=1 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=-1 xslope_size[9]=2 xoffset[9]=-1 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=0 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=-1 xslope_size[10]=2 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=1 yslope_ybwd[10]=0 yslope_size[10]=1 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=0 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=1 yoffset[12]=-1 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=2 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=-1 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=1 xslope_size[14]=2 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=-1 yslope_ybwd[14]=0 yslope_size[14]=3 yoffset[14]=-1 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=2 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=2 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=5 yoffset[16]=-1 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=2 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=5 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=3 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=5 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=4 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=-1 xslope_size[20]=4 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=1 yslope_ybwd[20]=0 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=4 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=2 yoffset[21]=0 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=-1 xslope_size[22]=4 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=1 yslope_ybwd[22]=0 yslope_size[22]=1 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=4 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=0 yoffset[23]=0 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=1 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=-1 yslope_ybwd[24]=0 yslope_size[24]=1 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=1 xslope_size[25]=4 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=-1 yslope_ybwd[25]=0 yslope_size[25]=2 yoffset[25]=-1 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=1 xslope_size[26]=4 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=-1 yslope_ybwd[26]=0 yslope_size[26]=3 yoffset[26]=-1 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=1 xslope_size[27]=4 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=-1 yslope_ybwd[27]=0 yslope_size[27]=4 yoffset[27]=-1 xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=1 xslope_size[28]=4 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=-1 yslope_ybwd[28]=0 yslope_size[28]=5 yoffset[28]=-1 xslope_xfwd[29]=1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=4 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=0 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=5 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=6 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=-1 xslope_size[32]=6 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=1 yslope_ybwd[32]=0 yslope_size[32]=3 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=6 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=2 yoffset[33]=0 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=6 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=1 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=0 yoffset[35]=0 ; ; 6x6 spiral ; elseif(@block_type=="6x6 - spiral") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(4,1) zsf[gn,6]=(4,2) zsf[gn,7]=(4,3) zsf[gn,8]=(4,4) zsf[gn,9]=(3,4) zsf[gn,10]=(2,4) zsf[gn,11]=(1,4) zsf[gn,12]=(1,3) zsf[gn,13]=(1,2) zsf[gn,14]=(2,2) zsf[gn,15]=(2,3) zsf[gn,16]=(3,3) zsf[gn,17]=(3,2) zsf[gn,18]=(3,1) zsf[gn,19]=(2,1) zsf[gn,20]=(1,1) zsf[gn,21]=(0,1) zsf[gn,22]=(0,2) zsf[gn,23]=(0,3) zsf[gn,24]=(0,4) zsf[gn,25]=(0,5) zsf[gn,26]=(1,5) zsf[gn,27]=(2,5) zsf[gn,28]=(3,5) zsf[gn,29]=(4,5) zsf[gn,30]=(5,5) zsf[gn,31]=(5,4) zsf[gn,32]=(5,3) zsf[gn,33]=(5,2) zsf[gn,34]=(5,1) zsf[gn,35]=(5,0) npoint=36 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=1 yoffset[4]=-1 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=4 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=4 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=3 yoffset[6]=-1 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=4 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=4 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=5 yoffset[8]=-1 xslope_xfwd[9]=-1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=4 xoffset[9]=-1 yslope_xfwd[9]=0 yslope_yfwd[9]=-1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 xslope_xfwd[10]=-1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=3 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=-1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=5 yoffset[10]=-1 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=4 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=-1 xslope_size[12]=2 xoffset[12]=-1 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=1 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=2 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=1 xslope_size[14]=2 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=-1 yslope_ybwd[14]=0 yslope_size[14]=3 yoffset[14]=-1 xslope_xfwd[15]=1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=2 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=3 yoffset[15]=0 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=3 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=3 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=-1 xslope_size[17]=4 xoffset[17]=-1 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=0 xslope_xfwd[18]=-1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=4 xoffset[18]=-1 yslope_xfwd[18]=0 yslope_yfwd[18]=-1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=-1 xslope_xfwd[19]=-1 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=3 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=-1 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=2 yoffset[19]=-1 xslope_xfwd[20]=-1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=2 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=-1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=-1 xslope_xfwd[21]=-1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=1 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=-1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=2 yoffset[21]=-1 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=1 xslope_size[22]=0 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=-1 yslope_ybwd[22]=0 yslope_size[22]=3 yoffset[22]=-1 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=1 xslope_size[23]=0 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=-1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=-1 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=1 xslope_size[24]=0 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=-1 yslope_ybwd[24]=0 yslope_size[24]=5 yoffset[24]=-1 xslope_xfwd[25]=1 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=0 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=1 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=5 yoffset[25]=0 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=1 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=5 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=2 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=5 yoffset[27]=0 xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=3 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=5 yoffset[28]=0 xslope_xfwd[29]=1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=4 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=0 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=5 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=6 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=-1 xslope_size[32]=6 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=1 yslope_ybwd[32]=0 yslope_size[32]=3 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=6 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=2 yoffset[33]=0 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=6 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=1 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=0 yoffset[35]=0 ; ; 6x6 cbf ; elseif(@block_type=="6x6 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(1,1) zsf[gn,3]=(1,0) zsf[gn,4]=(2,0) zsf[gn,5]=(2,1) zsf[gn,6]=(2,2) zsf[gn,7]=(1,2) zsf[gn,8]=(0,2) zsf[gn,9]=(0,3) zsf[gn,10]=(1,3) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) zsf[gn,16]=(4,0) zsf[gn,17]=(4,1) zsf[gn,18]=(4,2) zsf[gn,19]=(4,3) zsf[gn,20]=(4,4) zsf[gn,21]=(3,4) zsf[gn,22]=(2,4) zsf[gn,23]=(1,4) zsf[gn,24]=(0,4) zsf[gn,25]=(0,5) zsf[gn,26]=(1,5) zsf[gn,27]=(2,5) zsf[gn,28]=(3,5) zsf[gn,29]=(4,5) zsf[gn,30]=(5,5) zsf[gn,31]=(5,4) zsf[gn,32]=(5,3) zsf[gn,33]=(5,2) zsf[gn,34]=(5,1) zsf[gn,35]=(5,0) npoint=36 xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=1 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=2 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=2 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=1 yoffset[4]=-1 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=2 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=3 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=-1 xslope_xfwd[8]=-1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=-1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=0 xslope_xfwd[11]=1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=4 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=1 yoffset[16]=-1 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=4 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=1 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=-1 yslope_ybwd[18]=0 yslope_size[18]=3 yoffset[18]=-1 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=4 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=1 xslope_size[20]=4 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=-1 yslope_ybwd[20]=0 yslope_size[20]=5 yoffset[20]=-1 xslope_xfwd[21]=-1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=4 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=-1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=5 yoffset[21]=-1 xslope_xfwd[22]=-1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=3 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=-1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=5 yoffset[22]=-1 xslope_xfwd[23]=-1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=2 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=-1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=5 yoffset[23]=-1 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=1 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=5 yoffset[24]=-1 xslope_xfwd[25]=1 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=0 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=1 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=5 yoffset[25]=0 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=1 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=5 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=2 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=5 yoffset[27]=0 xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=3 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=5 yoffset[28]=0 xslope_xfwd[29]=1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=4 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=0 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=5 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=6 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=-1 xslope_size[32]=6 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=1 yslope_ybwd[32]=0 yslope_size[32]=3 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=6 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=2 yoffset[33]=0 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=6 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=1 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=0 yoffset[35]=0 ; ; 6x6 maximum corners ; elseif(@block_type=="6x6 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,3) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(0,5) zsf[gn,10]=(1,5) zsf[gn,11]=(1,4) zsf[gn,12]=(2,4) zsf[gn,13]=(2,5) zsf[gn,14]=(3,5) zsf[gn,15]=(3,4) zsf[gn,16]=(4,4) zsf[gn,17]=(4,5) zsf[gn,18]=(5,5) zsf[gn,19]=(5,4) zsf[gn,20]=(5,3) zsf[gn,21]=(5,2) zsf[gn,22]=(4,2) zsf[gn,23]=(4,3) zsf[gn,24]=(3,3) zsf[gn,25]=(2,3) zsf[gn,26]=(2,2) zsf[gn,27]=(3,2) zsf[gn,28]=(3,1) zsf[gn,29]=(2,1) zsf[gn,30]=(2,0) zsf[gn,31]=(3,0) zsf[gn,32]=(4,0) zsf[gn,33]=(4,1) zsf[gn,34]=(5,1) zsf[gn,35]=(5,0) npoint=36 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=4 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=5 yoffset[8]=-1 xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=0 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=5 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=4 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=5 yoffset[12]=-1 xslope_xfwd[13]=1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=2 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=5 yoffset[13]=0 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=3 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=5 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=4 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=5 yoffset[16]=-1 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=4 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=5 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=5 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=5 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=6 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=-1 xslope_size[20]=6 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=1 yslope_ybwd[20]=0 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=-1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=6 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=-1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=-1 xslope_xfwd[22]=-1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=5 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=-1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=3 yoffset[22]=-1 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=1 xslope_size[23]=4 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=-1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=-1 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=-1 xslope_size[25]=3 xoffset[25]=-1 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=1 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=0 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=-1 xslope_size[26]=3 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=1 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=3 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=2 yoffset[27]=0 xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=4 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=2 yoffset[28]=-1 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=-1 xslope_size[29]=3 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=1 yslope_ybwd[29]=0 yslope_size[29]=1 yoffset[29]=0 xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=-1 xslope_size[30]=3 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=1 yslope_ybwd[30]=0 yslope_size[30]=0 yoffset[30]=0 xslope_xfwd[31]=1 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=3 xoffset[31]=0 yslope_xfwd[31]=0 yslope_yfwd[31]=1 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=0 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=1 xslope_size[32]=4 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=-1 yslope_ybwd[32]=0 yslope_size[32]=1 yoffset[32]=-1 xslope_xfwd[33]=1 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=4 xoffset[33]=0 yslope_xfwd[33]=0 yslope_yfwd[33]=1 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=1 yoffset[33]=0 xslope_xfwd[34]=1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=5 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=1 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=0 yoffset[35]=0 ; ; 7x7 minimum corners ; elseif(@block_type=="7x7 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(6,1) zsf[gn,8]=(5,1) zsf[gn,9]=(4,1) zsf[gn,10]=(3,1) zsf[gn,11]=(2,1) zsf[gn,12]=(1,1) zsf[gn,13]=(0,1) zsf[gn,14]=(0,2) zsf[gn,15]=(1,2) zsf[gn,16]=(2,2) zsf[gn,17]=(3,2) zsf[gn,18]=(4,2) zsf[gn,19]=(5,2) zsf[gn,20]=(6,2) zsf[gn,21]=(6,3) zsf[gn,22]=(5,3) zsf[gn,23]=(4,3) zsf[gn,24]=(3,3) zsf[gn,25]=(2,3) zsf[gn,26]=(1,3) zsf[gn,27]=(0,3) zsf[gn,28]=(0,4) zsf[gn,29]=(1,4) zsf[gn,30]=(2,4) zsf[gn,31]=(3,4) zsf[gn,32]=(4,4) zsf[gn,33]=(5,4) zsf[gn,34]=(6,4) zsf[gn,35]=(6,5) zsf[gn,36]=(5,5) zsf[gn,37]=(4,5) zsf[gn,38]=(3,5) zsf[gn,39]=(2,5) zsf[gn,40]=(1,5) zsf[gn,41]=(0,5) zsf[gn,42]=(0,6) zsf[gn,43]=(1,6) zsf[gn,44]=(2,6) zsf[gn,45]=(3,6) zsf[gn,46]=(4,6) zsf[gn,47]=(5,6) zsf[gn,48]=(6,6) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=-1 xslope_size[1]=2 xoffset[1]=-1 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=1 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=4 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=-1 xslope_size[5]=6 xoffset[5]=-1 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=1 yslope_ybwd[5]=0 yslope_size[5]=0 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=6 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=1 xslope_ybwd[8]=0 xslope_size[8]=5 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=0 yslope_ybwd[8]=1 yslope_size[8]=1 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=4 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=1 xslope_ybwd[10]=0 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=0 yslope_ybwd[10]=1 yslope_size[10]=1 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=1 xslope_ybwd[12]=0 xslope_size[12]=1 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=0 yslope_ybwd[12]=1 yslope_size[12]=1 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=0 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=-1 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=0 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=2 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=2 yoffset[15]=0 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=2 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=2 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=-1 xslope_size[17]=4 xoffset[17]=-1 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=6 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=2 yoffset[19]=0 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=6 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=1 xslope_size[21]=6 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=-1 yslope_ybwd[21]=0 yslope_size[21]=4 yoffset[21]=-1 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=1 xslope_ybwd[22]=0 xslope_size[22]=5 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=0 yslope_ybwd[22]=1 yslope_size[22]=3 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=1 xslope_size[23]=4 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=-1 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=-1 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=1 xslope_ybwd[24]=0 xslope_size[24]=3 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=0 yslope_ybwd[24]=1 yslope_size[24]=3 yoffset[24]=0 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=1 xslope_size[25]=2 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=-1 yslope_ybwd[25]=0 yslope_size[25]=4 yoffset[25]=-1 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=1 xslope_ybwd[26]=0 xslope_size[26]=1 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=0 yslope_ybwd[26]=1 yslope_size[26]=3 yoffset[26]=0 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=1 xslope_size[27]=0 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=-1 yslope_ybwd[27]=0 yslope_size[27]=4 yoffset[27]=-1 xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=0 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=0 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=-1 xslope_size[29]=2 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=1 yslope_ybwd[29]=0 yslope_size[29]=4 yoffset[29]=0 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=2 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=4 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=4 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=0 xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=4 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=4 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=6 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=4 yoffset[33]=0 xslope_xfwd[34]=1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=6 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=4 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=1 xslope_size[35]=6 xoffset[35]=0 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=-1 yslope_ybwd[35]=0 yslope_size[35]=6 yoffset[35]=-1 xslope_xfwd[36]=0 xslope_yfwd[36]=0 xslope_xbwd[36]=1 xslope_ybwd[36]=0 xslope_size[36]=5 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=0 yslope_xbwd[36]=0 yslope_ybwd[36]=1 yslope_size[36]=5 yoffset[36]=0 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=4 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=1 xslope_ybwd[38]=0 xslope_size[38]=3 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=0 yslope_ybwd[38]=1 yslope_size[38]=5 yoffset[38]=0 xslope_xfwd[39]=0 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=1 xslope_size[39]=2 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=0 yslope_xbwd[39]=-1 yslope_ybwd[39]=0 yslope_size[39]=6 yoffset[39]=-1 xslope_xfwd[40]=0 xslope_yfwd[40]=0 xslope_xbwd[40]=1 xslope_ybwd[40]=0 xslope_size[40]=1 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=0 yslope_xbwd[40]=0 yslope_ybwd[40]=1 yslope_size[40]=5 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=1 xslope_size[41]=0 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=-1 yslope_ybwd[41]=0 yslope_size[41]=6 yoffset[41]=-1 xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=0 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=-1 xslope_size[43]=2 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=1 yslope_ybwd[43]=0 yslope_size[43]=6 yoffset[43]=0 xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=2 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=6 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=-1 xslope_size[45]=4 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=1 yslope_ybwd[45]=0 yslope_size[45]=6 yoffset[45]=0 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=4 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=6 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=-1 xslope_size[47]=6 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=1 yslope_ybwd[47]=0 yslope_size[47]=6 yoffset[47]=0 xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=0 ; ; 7x7 S ; elseif(@block_type=="7x7 - S") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(6,1) zsf[gn,8]=(6,2) zsf[gn,9]=(6,3) zsf[gn,10]=(6,4) zsf[gn,11]=(6,5) zsf[gn,12]=(5,5) zsf[gn,13]=(4,5) zsf[gn,14]=(3,5) zsf[gn,15]=(2,5) zsf[gn,16]=(1,5) zsf[gn,17]=(1,4) zsf[gn,18]=(1,3) zsf[gn,19]=(1,2) zsf[gn,20]=(2,2) zsf[gn,21]=(3,2) zsf[gn,22]=(4,2) zsf[gn,23]=(4,3) zsf[gn,24]=(3,3) zsf[gn,25]=(2,3) zsf[gn,26]=(2,4) zsf[gn,27]=(3,4) zsf[gn,28]=(4,4) zsf[gn,29]=(5,4) zsf[gn,30]=(5,3) zsf[gn,31]=(5,2) zsf[gn,32]=(5,1) zsf[gn,33]=(4,1) zsf[gn,34]=(3,1) zsf[gn,35]=(2,1) zsf[gn,36]=(1,1) zsf[gn,37]=(0,1) zsf[gn,38]=(0,2) zsf[gn,39]=(0,3) zsf[gn,40]=(0,4) zsf[gn,41]=(0,5) zsf[gn,42]=(0,6) zsf[gn,43]=(1,6) zsf[gn,44]=(2,6) zsf[gn,45]=(3,6) zsf[gn,46]=(4,6) zsf[gn,47]=(5,6) zsf[gn,48]=(6,6) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=0 yslope_xfwd[5]=-1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=-1 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=-1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=7 xoffset[7]=-1 yslope_xfwd[7]=1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=0 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=6 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=2 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=-1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=7 xoffset[9]=-1 yslope_xfwd[9]=1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=6 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=4 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=-1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=7 xoffset[11]=-1 yslope_xfwd[11]=1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=5 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=1 xslope_ybwd[12]=0 xslope_size[12]=5 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=0 yslope_ybwd[12]=1 yslope_size[12]=5 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=4 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=6 yoffset[13]=-1 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=1 xslope_ybwd[14]=0 xslope_size[14]=3 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=0 yslope_ybwd[14]=1 yslope_size[14]=5 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=2 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=6 yoffset[15]=-1 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=1 xslope_ybwd[16]=0 xslope_size[16]=1 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=0 yslope_ybwd[16]=1 yslope_size[16]=5 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=-1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=5 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=1 xslope_ybwd[18]=0 xslope_size[18]=1 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=0 yslope_ybwd[18]=1 yslope_size[18]=3 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=1 xoffset[19]=0 yslope_xfwd[19]=-1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=3 yoffset[19]=-1 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=2 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=-1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=3 yoffset[23]=0 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=-1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=3 xoffset[25]=-1 yslope_xfwd[25]=1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=0 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=2 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=4 yoffset[26]=0 xslope_xfwd[27]=0 xslope_yfwd[27]=1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=3 xoffset[27]=0 yslope_xfwd[27]=-1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=5 yoffset[27]=-1 xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=4 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=0 xslope_xfwd[29]=0 xslope_yfwd[29]=1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=5 xoffset[29]=0 yslope_xfwd[29]=-1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=-1 xslope_xfwd[30]=-1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=6 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=-1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=4 yoffset[30]=-1 xslope_xfwd[31]=0 xslope_yfwd[31]=1 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=5 xoffset[31]=0 yslope_xfwd[31]=-1 yslope_yfwd[31]=0 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=3 yoffset[31]=-1 xslope_xfwd[32]=-1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=6 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=-1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=2 yoffset[32]=-1 xslope_xfwd[33]=0 xslope_yfwd[33]=-1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=5 xoffset[33]=-1 yslope_xfwd[33]=1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=1 yoffset[33]=0 xslope_xfwd[34]=-1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=4 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=-1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=2 yoffset[34]=-1 xslope_xfwd[35]=0 xslope_yfwd[35]=-1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=3 xoffset[35]=-1 yslope_xfwd[35]=1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=1 yoffset[35]=0 xslope_xfwd[36]=-1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=2 xoffset[36]=-1 yslope_xfwd[36]=0 yslope_yfwd[36]=-1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=2 yoffset[36]=-1 xslope_xfwd[37]=0 xslope_yfwd[37]=-1 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=1 xoffset[37]=-1 yslope_xfwd[37]=1 yslope_yfwd[37]=0 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=1 yoffset[37]=0 xslope_xfwd[38]=1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=0 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=2 yoffset[38]=0 xslope_xfwd[39]=0 xslope_yfwd[39]=-1 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=1 xoffset[39]=-1 yslope_xfwd[39]=1 yslope_yfwd[39]=0 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=3 yoffset[39]=0 xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=0 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=4 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=-1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=1 xoffset[41]=-1 yslope_xfwd[41]=1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=0 xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=0 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=1 xoffset[43]=0 yslope_xfwd[43]=-1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=7 yoffset[43]=-1 xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=2 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=6 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=3 xoffset[45]=0 yslope_xfwd[45]=-1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=7 yoffset[45]=-1 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=4 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=6 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=1 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=5 xoffset[47]=0 yslope_xfwd[47]=-1 yslope_yfwd[47]=0 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=7 yoffset[47]=-1 xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=0 ; ; 7x7 cbf ; elseif(@block_type=="7x7 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(2,2) zsf[gn,7]=(2,1) zsf[gn,8]=(2,0) zsf[gn,9]=(3,0) zsf[gn,10]=(3,1) zsf[gn,11]=(3,2) zsf[gn,12]=(3,3) zsf[gn,13]=(2,3) zsf[gn,14]=(1,3) zsf[gn,15]=(0,3) zsf[gn,16]=(0,4) zsf[gn,17]=(1,4) zsf[gn,18]=(2,4) zsf[gn,19]=(3,4) zsf[gn,20]=(4,4) zsf[gn,21]=(4,3) zsf[gn,22]=(4,2) zsf[gn,23]=(4,1) zsf[gn,24]=(4,0) zsf[gn,25]=(5,0) zsf[gn,26]=(5,1) zsf[gn,27]=(5,2) zsf[gn,28]=(5,3) zsf[gn,29]=(5,4) zsf[gn,30]=(5,5) zsf[gn,31]=(4,5) zsf[gn,32]=(3,5) zsf[gn,33]=(2,5) zsf[gn,34]=(1,5) zsf[gn,35]=(0,5) zsf[gn,36]=(0,6) zsf[gn,37]=(1,6) zsf[gn,38]=(2,6) zsf[gn,39]=(3,6) zsf[gn,40]=(4,6) zsf[gn,41]=(5,6) zsf[gn,42]=(6,6) zsf[gn,43]=(6,5) zsf[gn,44]=(6,4) zsf[gn,45]=(6,3) zsf[gn,46]=(6,2) zsf[gn,47]=(6,1) zsf[gn,48]=(6,0) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=3 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=0 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=-1 xslope_size[8]=3 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=1 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=3 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=-1 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=3 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=4 yoffset[12]=-1 xslope_xfwd[13]=-1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=-1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=-1 xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=2 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=4 yoffset[14]=-1 xslope_xfwd[15]=-1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=1 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=-1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=4 yoffset[16]=0 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=4 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=4 yoffset[18]=0 xslope_xfwd[19]=1 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=3 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=1 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=4 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=4 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=5 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=0 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=-1 xslope_size[22]=5 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=1 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=1 yoffset[23]=0 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=-1 xslope_size[24]=5 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=1 yslope_ybwd[24]=0 yslope_size[24]=0 yoffset[24]=0 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=1 xslope_size[25]=5 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=-1 yslope_ybwd[25]=0 yslope_size[25]=1 yoffset[25]=-1 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=1 xslope_size[26]=5 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=-1 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=-1 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=1 xslope_size[27]=5 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=-1 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=-1 xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=1 xslope_size[28]=5 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=-1 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=-1 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=1 xslope_size[29]=5 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=-1 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=-1 xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=1 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=-1 yslope_ybwd[30]=0 yslope_size[30]=6 yoffset[30]=-1 xslope_xfwd[31]=-1 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=5 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=-1 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=6 yoffset[31]=-1 xslope_xfwd[32]=-1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=4 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=-1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=6 yoffset[32]=-1 xslope_xfwd[33]=-1 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=3 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=-1 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=6 yoffset[33]=-1 xslope_xfwd[34]=-1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=2 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=-1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=6 yoffset[34]=-1 xslope_xfwd[35]=-1 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=1 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=-1 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=6 yoffset[35]=-1 xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=0 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=6 yoffset[36]=0 xslope_xfwd[37]=1 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=1 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=1 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=0 xslope_xfwd[38]=1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=2 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=0 xslope_xfwd[39]=1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=6 yoffset[39]=0 xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=6 yoffset[40]=0 xslope_xfwd[41]=1 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=1 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=6 yoffset[41]=0 xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=6 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=-1 xslope_size[43]=7 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=1 yslope_ybwd[43]=0 yslope_size[43]=5 yoffset[43]=0 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=-1 xslope_size[44]=7 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=1 yslope_ybwd[44]=0 yslope_size[44]=4 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=-1 xslope_size[45]=7 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=1 yslope_ybwd[45]=0 yslope_size[45]=3 yoffset[45]=0 xslope_xfwd[46]=0 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=-1 xslope_size[46]=7 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=0 yslope_xbwd[46]=1 yslope_ybwd[46]=0 yslope_size[46]=2 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=-1 xslope_size[47]=7 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=1 yslope_ybwd[47]=0 yslope_size[47]=1 yoffset[47]=0 xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=-1 xslope_size[48]=7 xoffset[48]=-1 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=1 yslope_ybwd[48]=0 yslope_size[48]=0 yoffset[48]=0 ; ; 7x7 diagonal a ; elseif(@block_type=="7x7 - diag a") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(0,2) zsf[gn,3]=(1,2) zsf[gn,4]=(1,1) zsf[gn,5]=(1,0) zsf[gn,6]=(2,0) zsf[gn,7]=(3,0) zsf[gn,8]=(4,0) zsf[gn,9]=(4,1) zsf[gn,10]=(3,1) zsf[gn,11]=(2,1) zsf[gn,12]=(2,2) zsf[gn,13]=(2,3) zsf[gn,14]=(1,3) zsf[gn,15]=(0,3) zsf[gn,16]=(0,4) zsf[gn,17]=(0,5) zsf[gn,18]=(0,6) zsf[gn,19]=(1,6) zsf[gn,20]=(1,5) zsf[gn,21]=(1,4) zsf[gn,22]=(2,4) zsf[gn,23]=(3,4) zsf[gn,24]=(3,3) zsf[gn,25]=(3,2) zsf[gn,26]=(4,2) zsf[gn,27]=(5,2) zsf[gn,28]=(5,1) zsf[gn,29]=(5,0) zsf[gn,30]=(6,0) zsf[gn,31]=(6,1) zsf[gn,32]=(6,2) zsf[gn,33]=(6,3) zsf[gn,34]=(5,3) zsf[gn,35]=(4,3) zsf[gn,36]=(4,4) zsf[gn,37]=(4,5) zsf[gn,38]=(3,5) zsf[gn,39]=(2,5) zsf[gn,40]=(2,6) zsf[gn,41]=(3,6) zsf[gn,42]=(4,6) zsf[gn,43]=(5,6) zsf[gn,44]=(5,5) zsf[gn,45]=(5,4) zsf[gn,46]=(6,4) zsf[gn,47]=(6,5) zsf[gn,48]=(6,6) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=2 yoffset[1]=-1 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=0 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=3 yoffset[3]=-1 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=1 xslope_ybwd[4]=0 xslope_size[4]=1 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=0 yslope_ybwd[4]=1 yslope_size[4]=1 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=-1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=-1 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=3 xoffset[7]=0 yslope_xfwd[7]=-1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=-1 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=4 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=4 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=1 xslope_ybwd[10]=0 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=0 yslope_ybwd[10]=1 yslope_size[10]=1 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=-1 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=2 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=-1 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=1 xslope_ybwd[14]=0 xslope_size[14]=1 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=0 yslope_ybwd[14]=1 yslope_size[14]=3 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=1 xslope_size[15]=0 xoffset[15]=0 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=-1 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=4 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=0 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=6 yoffset[17]=-1 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=0 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=6 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=1 xoffset[19]=0 yslope_xfwd[19]=-1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=7 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=1 xslope_ybwd[20]=0 xslope_size[20]=1 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=0 yslope_ybwd[20]=1 yslope_size[20]=5 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=1 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=5 yoffset[21]=-1 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=4 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=3 xoffset[23]=0 yslope_xfwd[23]=-1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=5 yoffset[23]=-1 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=1 xslope_ybwd[24]=0 xslope_size[24]=3 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=0 yslope_ybwd[24]=1 yslope_size[24]=3 yoffset[24]=0 xslope_xfwd[25]=0 xslope_yfwd[25]=1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=3 xoffset[25]=0 yslope_xfwd[25]=-1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=-1 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=4 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=0 xslope_xfwd[27]=0 xslope_yfwd[27]=1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=5 xoffset[27]=0 yslope_xfwd[27]=-1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=-1 xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=1 xslope_ybwd[28]=0 xslope_size[28]=5 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=0 yslope_ybwd[28]=1 yslope_size[28]=1 yoffset[28]=0 xslope_xfwd[29]=0 xslope_yfwd[29]=1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=5 xoffset[29]=0 yslope_xfwd[29]=-1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=1 yoffset[29]=-1 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=6 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=0 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=1 xslope_size[31]=6 xoffset[31]=0 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=-1 yslope_ybwd[31]=0 yslope_size[31]=2 yoffset[31]=-1 xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=6 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=2 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=1 xslope_size[33]=6 xoffset[33]=0 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=-1 yslope_ybwd[33]=0 yslope_size[33]=4 yoffset[33]=-1 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=1 xslope_ybwd[34]=0 xslope_size[34]=5 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=0 yslope_ybwd[34]=1 yslope_size[34]=3 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=1 xslope_size[35]=4 xoffset[35]=0 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=-1 yslope_ybwd[35]=0 yslope_size[35]=4 yoffset[35]=-1 xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=4 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=4 yoffset[36]=0 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=4 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=1 xslope_ybwd[38]=0 xslope_size[38]=3 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=0 yslope_ybwd[38]=1 yslope_size[38]=5 yoffset[38]=0 xslope_xfwd[39]=0 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=1 xslope_size[39]=2 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=0 yslope_xbwd[39]=-1 yslope_ybwd[39]=0 yslope_size[39]=6 yoffset[39]=-1 xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=2 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=6 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=3 xoffset[41]=0 yslope_xfwd[41]=-1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=7 yoffset[41]=-1 xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=4 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=5 xoffset[43]=0 yslope_xfwd[43]=-1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=7 yoffset[43]=-1 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=1 xslope_ybwd[44]=0 xslope_size[44]=5 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=0 yslope_ybwd[44]=1 yslope_size[44]=5 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=5 xoffset[45]=0 yslope_xfwd[45]=-1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=5 yoffset[45]=-1 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=6 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=4 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=1 xslope_size[47]=6 xoffset[47]=0 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=-1 yslope_ybwd[47]=0 yslope_size[47]=6 yoffset[47]=-1 xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=0 ; ; 7x7 diagonal b ; elseif(@block_type=="7x7 - diag b") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(6,1) zsf[gn,8]=(5,1) zsf[gn,9]=(4,1) zsf[gn,10]=(3,1) zsf[gn,11]=(2,1) zsf[gn,12]=(1,1) zsf[gn,13]=(0,1) zsf[gn,14]=(0,2) zsf[gn,15]=(1,2) zsf[gn,16]=(2,2) zsf[gn,17]=(3,2) zsf[gn,18]=(4,2) zsf[gn,19]=(4,3) zsf[gn,20]=(3,3) zsf[gn,21]=(2,3) zsf[gn,22]=(1,3) zsf[gn,23]=(0,3) zsf[gn,24]=(0,4) zsf[gn,25]=(1,4) zsf[gn,26]=(2,4) zsf[gn,27]=(2,5) zsf[gn,28]=(1,5) zsf[gn,29]=(0,5) zsf[gn,30]=(0,6) zsf[gn,31]=(1,6) zsf[gn,32]=(2,6) zsf[gn,33]=(3,6) zsf[gn,34]=(3,5) zsf[gn,35]=(3,4) zsf[gn,36]=(4,4) zsf[gn,37]=(4,5) zsf[gn,38]=(4,6) zsf[gn,39]=(5,6) zsf[gn,40]=(5,5) zsf[gn,41]=(5,4) zsf[gn,42]=(5,3) zsf[gn,43]=(5,2) zsf[gn,44]=(6,2) zsf[gn,45]=(6,3) zsf[gn,46]=(6,4) zsf[gn,47]=(6,5) zsf[gn,48]=(6,6) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=-1 xslope_size[1]=2 xoffset[1]=-1 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=1 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=4 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=-1 xslope_size[5]=6 xoffset[5]=-1 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=1 yslope_ybwd[5]=0 yslope_size[5]=0 yoffset[5]=0 xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=6 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=1 xslope_ybwd[8]=0 xslope_size[8]=5 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=0 yslope_ybwd[8]=1 yslope_size[8]=1 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=4 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=2 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=1 xslope_ybwd[10]=0 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=0 yslope_ybwd[10]=1 yslope_size[10]=1 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=2 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=1 xslope_ybwd[12]=0 xslope_size[12]=1 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=0 yslope_ybwd[12]=1 yslope_size[12]=1 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=0 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=-1 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=0 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=2 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=2 yoffset[15]=0 xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=2 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=2 yoffset[16]=0 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=-1 xslope_size[17]=4 xoffset[17]=-1 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=4 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=1 xslope_ybwd[20]=0 xslope_size[20]=3 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=0 yslope_ybwd[20]=1 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=-1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=-1 yslope_xfwd[21]=1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=0 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=1 xslope_ybwd[22]=0 xslope_size[22]=1 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=0 yslope_ybwd[22]=1 yslope_size[22]=3 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=-1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=1 xoffset[23]=-1 yslope_xfwd[23]=1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=3 yoffset[23]=0 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=0 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=0 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=-1 xslope_size[25]=2 xoffset[25]=-1 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=1 yslope_ybwd[25]=0 yslope_size[25]=4 yoffset[25]=0 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=2 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=4 yoffset[26]=0 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=1 xslope_size[27]=2 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=-1 yslope_ybwd[27]=0 yslope_size[27]=6 yoffset[27]=-1 xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=1 xslope_ybwd[28]=0 xslope_size[28]=1 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=0 yslope_ybwd[28]=1 yslope_size[28]=5 yoffset[28]=0 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=1 xslope_size[29]=0 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=-1 yslope_ybwd[29]=0 yslope_size[29]=6 yoffset[29]=-1 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=0 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=6 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=2 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=6 yoffset[31]=0 xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=2 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=6 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=3 xoffset[33]=0 yslope_xfwd[33]=-1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=7 yoffset[33]=-1 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=1 xslope_ybwd[34]=0 xslope_size[34]=3 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=0 yslope_ybwd[34]=1 yslope_size[34]=5 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=3 xoffset[35]=0 yslope_xfwd[35]=-1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=5 yoffset[35]=-1 xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=4 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=4 yoffset[36]=0 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=4 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=-1 xslope_xfwd[38]=1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=4 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=0 xslope_xfwd[39]=0 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=-1 xslope_size[39]=6 xoffset[39]=-1 yslope_xfwd[39]=0 yslope_yfwd[39]=0 yslope_xbwd[39]=1 yslope_ybwd[39]=0 yslope_size[39]=6 yoffset[39]=0 xslope_xfwd[40]=0 xslope_yfwd[40]=0 xslope_xbwd[40]=1 xslope_ybwd[40]=0 xslope_size[40]=5 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=0 yslope_xbwd[40]=0 yslope_ybwd[40]=1 yslope_size[40]=5 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=-1 xslope_size[41]=6 xoffset[41]=-1 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=1 yslope_ybwd[41]=0 yslope_size[41]=4 yoffset[41]=0 xslope_xfwd[42]=0 xslope_yfwd[42]=0 xslope_xbwd[42]=1 xslope_ybwd[42]=0 xslope_size[42]=5 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=0 yslope_xbwd[42]=0 yslope_ybwd[42]=1 yslope_size[42]=3 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=-1 xslope_size[43]=6 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=1 yslope_ybwd[43]=0 yslope_size[43]=2 yoffset[43]=0 xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=6 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=2 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=1 xslope_size[45]=6 xoffset[45]=0 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=-1 yslope_ybwd[45]=0 yslope_size[45]=4 yoffset[45]=-1 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=6 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=4 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=1 xslope_size[47]=6 xoffset[47]=0 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=-1 yslope_ybwd[47]=0 yslope_size[47]=6 yoffset[47]=-1 xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=0 ; ; 7x7 maximum ; elseif(@block_type=="7x7 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,3) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(1,5) zsf[gn,11]=(0,5) zsf[gn,12]=(0,6) zsf[gn,13]=(1,6) zsf[gn,14]=(2,6) zsf[gn,15]=(2,5) zsf[gn,16]=(3,5) zsf[gn,17]=(3,6) zsf[gn,18]=(4,6) zsf[gn,19]=(4,5) zsf[gn,20]=(5,5) zsf[gn,21]=(5,6) zsf[gn,22]=(6,6) zsf[gn,23]=(6,5) zsf[gn,24]=(6,4) zsf[gn,25]=(5,4) zsf[gn,26]=(5,3) zsf[gn,27]=(6,3) zsf[gn,28]=(6,2) zsf[gn,29]=(5,2) zsf[gn,30]=(4,2) zsf[gn,31]=(4,3) zsf[gn,32]=(4,4) zsf[gn,33]=(3,4) zsf[gn,34]=(2,4) zsf[gn,35]=(2,3) zsf[gn,36]=(3,3) zsf[gn,37]=(3,2) zsf[gn,38]=(2,2) zsf[gn,39]=(2,1) zsf[gn,40]=(2,0) zsf[gn,41]=(3,0) zsf[gn,42]=(3,1) zsf[gn,43]=(4,1) zsf[gn,44]=(4,0) zsf[gn,45]=(5,0) zsf[gn,46]=(5,1) zsf[gn,47]=(6,1) zsf[gn,48]=(6,0) npoint=49 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=4 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=6 yoffset[10]=-1 xslope_xfwd[11]=-1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=1 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=-1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=6 yoffset[11]=-1 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=0 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=6 yoffset[12]=0 xslope_xfwd[13]=1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=1 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=6 yoffset[13]=0 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=2 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=6 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=3 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=5 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=3 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=6 yoffset[16]=-1 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=3 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=6 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=6 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=5 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=5 yoffset[19]=0 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=1 xslope_size[20]=5 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=-1 yslope_ybwd[20]=0 yslope_size[20]=6 yoffset[20]=-1 xslope_xfwd[21]=1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=5 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=6 yoffset[21]=0 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=6 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=6 yoffset[22]=0 xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=7 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=5 yoffset[23]=0 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=7 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=5 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=-1 xslope_size[25]=6 xoffset[25]=-1 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=1 yslope_ybwd[25]=0 yslope_size[25]=4 yoffset[25]=0 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=-1 xslope_size[26]=6 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=1 yslope_ybwd[26]=0 yslope_size[26]=3 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=6 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=0 xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=7 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=3 yoffset[28]=-1 xslope_xfwd[29]=-1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=6 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=-1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=3 yoffset[29]=-1 xslope_xfwd[30]=-1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=5 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=-1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=3 yoffset[30]=-1 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=1 xslope_size[31]=4 xoffset[31]=0 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=-1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=-1 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=1 xslope_size[32]=4 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=-1 yslope_ybwd[32]=0 yslope_size[32]=5 yoffset[32]=-1 xslope_xfwd[33]=-1 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=4 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=-1 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=5 yoffset[33]=-1 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=3 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=4 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=3 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=3 yoffset[35]=0 xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=3 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=3 yoffset[36]=0 xslope_xfwd[37]=-1 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=4 xoffset[37]=-1 yslope_xfwd[37]=0 yslope_yfwd[37]=-1 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=3 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=-1 xslope_size[38]=3 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=1 yslope_ybwd[38]=0 yslope_size[38]=2 yoffset[38]=0 xslope_xfwd[39]=0 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=-1 xslope_size[39]=3 xoffset[39]=-1 yslope_xfwd[39]=0 yslope_yfwd[39]=0 yslope_xbwd[39]=1 yslope_ybwd[39]=0 yslope_size[39]=1 yoffset[39]=0 xslope_xfwd[40]=0 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=-1 xslope_size[40]=3 xoffset[40]=-1 yslope_xfwd[40]=0 yslope_yfwd[40]=0 yslope_xbwd[40]=1 yslope_ybwd[40]=0 yslope_size[40]=0 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=1 xslope_size[41]=3 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=-1 yslope_ybwd[41]=0 yslope_size[41]=1 yoffset[41]=-1 xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=3 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=1 yoffset[42]=0 xslope_xfwd[43]=1 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=4 xoffset[43]=0 yslope_xfwd[43]=0 yslope_yfwd[43]=1 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=1 yoffset[43]=0 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=-1 xslope_size[44]=5 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=1 yslope_ybwd[44]=0 yslope_size[44]=0 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=1 xslope_size[45]=5 xoffset[45]=0 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=-1 yslope_ybwd[45]=0 yslope_size[45]=1 yoffset[45]=-1 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=5 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=1 yoffset[46]=0 xslope_xfwd[47]=1 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=6 xoffset[47]=0 yslope_xfwd[47]=0 yslope_yfwd[47]=1 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=1 yoffset[47]=0 xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=-1 xslope_size[48]=7 xoffset[48]=-1 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=1 yslope_ybwd[48]=0 yslope_size[48]=0 yoffset[48]=0 ; ; 8x8 minimum ; elseif(@block_type=="8x8 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(0,2) zsf[gn,3]=(0,3) zsf[gn,4]=(0,4) zsf[gn,5]=(0,5) zsf[gn,6]=(0,6) zsf[gn,7]=(0,7) zsf[gn,8]=(1,7) zsf[gn,9]=(1,6) zsf[gn,10]=(1,5) zsf[gn,11]=(1,4) zsf[gn,12]=(1,3) zsf[gn,13]=(1,2) zsf[gn,14]=(1,1) zsf[gn,15]=(1,0) zsf[gn,16]=(2,0) zsf[gn,17]=(2,1) zsf[gn,18]=(2,2) zsf[gn,19]=(2,3) zsf[gn,20]=(2,4) zsf[gn,21]=(2,5) zsf[gn,22]=(2,6) zsf[gn,23]=(2,7) zsf[gn,24]=(3,7) zsf[gn,25]=(3,6) zsf[gn,26]=(3,5) zsf[gn,27]=(3,4) zsf[gn,28]=(3,3) zsf[gn,29]=(3,2) zsf[gn,30]=(3,1) zsf[gn,31]=(3,0) zsf[gn,32]=(4,0) zsf[gn,33]=(4,1) zsf[gn,34]=(4,2) zsf[gn,35]=(4,3) zsf[gn,36]=(4,4) zsf[gn,37]=(4,5) zsf[gn,38]=(4,6) zsf[gn,39]=(4,7) zsf[gn,40]=(5,7) zsf[gn,41]=(5,6) zsf[gn,42]=(5,5) zsf[gn,43]=(5,4) zsf[gn,44]=(5,3) zsf[gn,45]=(5,2) zsf[gn,46]=(5,1) zsf[gn,47]=(5,0) zsf[gn,48]=(6,0) zsf[gn,49]=(6,1) zsf[gn,50]=(6,2) zsf[gn,51]=(6,3) zsf[gn,52]=(6,4) zsf[gn,53]=(6,5) zsf[gn,54]=(6,6) zsf[gn,55]=(6,7) zsf[gn,56]=(7,7) zsf[gn,57]=(7,6) zsf[gn,58]=(7,5) zsf[gn,59]=(7,4) zsf[gn,60]=(7,3) zsf[gn,61]=(7,2) zsf[gn,62]=(7,1) zsf[gn,63]=(7,0) npoint=64 xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=2 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=0 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=3 yoffset[2]=-1 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=1 xslope_size[3]=0 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=-1 yslope_ybwd[3]=0 yslope_size[3]=4 yoffset[3]=-1 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=5 yoffset[4]=-1 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=0 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=6 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=0 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=7 yoffset[6]=-1 xslope_xfwd[7]=1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=0 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=7 yoffset[7]=0 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=7 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=-1 xslope_size[9]=2 xoffset[9]=-1 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=1 yslope_ybwd[9]=0 yslope_size[9]=6 yoffset[9]=0 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=-1 xslope_size[10]=2 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=1 yslope_ybwd[10]=0 yslope_size[10]=5 yoffset[10]=0 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=-1 xslope_size[11]=2 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=1 yslope_ybwd[11]=0 yslope_size[11]=4 yoffset[11]=0 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=-1 xslope_size[12]=2 xoffset[12]=-1 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=1 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=2 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=2 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=2 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=2 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=1 yoffset[16]=-1 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=2 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=1 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=-1 yslope_ybwd[18]=0 yslope_size[18]=3 yoffset[18]=-1 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=2 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=1 xslope_size[20]=2 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=-1 yslope_ybwd[20]=0 yslope_size[20]=5 yoffset[20]=-1 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=1 xslope_size[21]=2 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=-1 yslope_ybwd[21]=0 yslope_size[21]=6 yoffset[21]=-1 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=1 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=-1 yslope_ybwd[22]=0 yslope_size[22]=7 yoffset[22]=-1 xslope_xfwd[23]=1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=2 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=7 yoffset[23]=0 xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=3 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=7 yoffset[24]=0 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=-1 xslope_size[25]=4 xoffset[25]=-1 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=1 yslope_ybwd[25]=0 yslope_size[25]=6 yoffset[25]=0 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=-1 xslope_size[26]=4 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=1 yslope_ybwd[26]=0 yslope_size[26]=5 yoffset[26]=0 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=-1 xslope_size[27]=4 xoffset[27]=-1 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=1 yslope_ybwd[27]=0 yslope_size[27]=4 yoffset[27]=0 xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=-1 xslope_size[28]=4 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=1 yslope_ybwd[28]=0 yslope_size[28]=3 yoffset[28]=0 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=-1 xslope_size[29]=4 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=1 yslope_ybwd[29]=0 yslope_size[29]=2 yoffset[29]=0 xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=-1 xslope_size[30]=4 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=1 yslope_ybwd[30]=0 yslope_size[30]=1 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=4 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=0 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=1 xslope_size[32]=4 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=-1 yslope_ybwd[32]=0 yslope_size[32]=1 yoffset[32]=-1 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=1 xslope_size[33]=4 xoffset[33]=0 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=-1 yslope_ybwd[33]=0 yslope_size[33]=2 yoffset[33]=-1 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=1 xslope_size[34]=4 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=-1 yslope_ybwd[34]=0 yslope_size[34]=3 yoffset[34]=-1 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=1 xslope_size[35]=4 xoffset[35]=0 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=-1 yslope_ybwd[35]=0 yslope_size[35]=4 yoffset[35]=-1 xslope_xfwd[36]=0 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=1 xslope_size[36]=4 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=0 yslope_xbwd[36]=-1 yslope_ybwd[36]=0 yslope_size[36]=5 yoffset[36]=-1 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=4 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=1 xslope_size[38]=4 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=-1 yslope_ybwd[38]=0 yslope_size[38]=7 yoffset[38]=-1 xslope_xfwd[39]=1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=4 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=7 yoffset[39]=0 xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=5 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=7 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=-1 xslope_size[41]=6 xoffset[41]=-1 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=1 yslope_ybwd[41]=0 yslope_size[41]=6 yoffset[41]=0 xslope_xfwd[42]=0 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=-1 xslope_size[42]=6 xoffset[42]=-1 yslope_xfwd[42]=0 yslope_yfwd[42]=0 yslope_xbwd[42]=1 yslope_ybwd[42]=0 yslope_size[42]=5 yoffset[42]=0 xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=-1 xslope_size[43]=6 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=1 yslope_ybwd[43]=0 yslope_size[43]=4 yoffset[43]=0 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=-1 xslope_size[44]=6 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=1 yslope_ybwd[44]=0 yslope_size[44]=3 yoffset[44]=0 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=-1 xslope_size[45]=6 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=1 yslope_ybwd[45]=0 yslope_size[45]=2 yoffset[45]=0 xslope_xfwd[46]=0 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=-1 xslope_size[46]=6 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=0 yslope_xbwd[46]=1 yslope_ybwd[46]=0 yslope_size[46]=1 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=-1 xslope_size[47]=6 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=1 yslope_ybwd[47]=0 yslope_size[47]=0 yoffset[47]=0 xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=1 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=-1 yslope_ybwd[48]=0 yslope_size[48]=1 yoffset[48]=-1 xslope_xfwd[49]=0 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=1 xslope_size[49]=6 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=0 yslope_xbwd[49]=-1 yslope_ybwd[49]=0 yslope_size[49]=2 yoffset[49]=-1 xslope_xfwd[50]=0 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=1 xslope_size[50]=6 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=0 yslope_xbwd[50]=-1 yslope_ybwd[50]=0 yslope_size[50]=3 yoffset[50]=-1 xslope_xfwd[51]=0 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=1 xslope_size[51]=6 xoffset[51]=0 yslope_xfwd[51]=0 yslope_yfwd[51]=0 yslope_xbwd[51]=-1 yslope_ybwd[51]=0 yslope_size[51]=4 yoffset[51]=-1 xslope_xfwd[52]=0 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=1 xslope_size[52]=6 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=0 yslope_xbwd[52]=-1 yslope_ybwd[52]=0 yslope_size[52]=5 yoffset[52]=-1 xslope_xfwd[53]=0 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=1 xslope_size[53]=6 xoffset[53]=0 yslope_xfwd[53]=0 yslope_yfwd[53]=0 yslope_xbwd[53]=-1 yslope_ybwd[53]=0 yslope_size[53]=6 yoffset[53]=-1 xslope_xfwd[54]=0 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=1 xslope_size[54]=6 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=0 yslope_xbwd[54]=-1 yslope_ybwd[54]=0 yslope_size[54]=7 yoffset[54]=-1 xslope_xfwd[55]=1 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=6 xoffset[55]=0 yslope_xfwd[55]=0 yslope_yfwd[55]=1 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=0 xslope_xfwd[56]=1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=7 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=7 yoffset[56]=0 xslope_xfwd[57]=0 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=-1 xslope_size[57]=8 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=0 yslope_xbwd[57]=1 yslope_ybwd[57]=0 yslope_size[57]=6 yoffset[57]=0 xslope_xfwd[58]=0 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=-1 xslope_size[58]=8 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=0 yslope_xbwd[58]=1 yslope_ybwd[58]=0 yslope_size[58]=5 yoffset[58]=0 xslope_xfwd[59]=0 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=-1 xslope_size[59]=8 xoffset[59]=-1 yslope_xfwd[59]=0 yslope_yfwd[59]=0 yslope_xbwd[59]=1 yslope_ybwd[59]=0 yslope_size[59]=4 yoffset[59]=0 xslope_xfwd[60]=0 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=-1 xslope_size[60]=8 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=0 yslope_xbwd[60]=1 yslope_ybwd[60]=0 yslope_size[60]=3 yoffset[60]=0 xslope_xfwd[61]=0 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=-1 xslope_size[61]=8 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=0 yslope_xbwd[61]=1 yslope_ybwd[61]=0 yslope_size[61]=2 yoffset[61]=0 xslope_xfwd[62]=0 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=-1 xslope_size[62]=8 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=0 yslope_xbwd[62]=1 yslope_ybwd[62]=0 yslope_size[62]=1 yoffset[62]=0 xslope_xfwd[63]=0 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=-1 xslope_size[63]=8 xoffset[63]=-1 yslope_xfwd[63]=0 yslope_yfwd[63]=0 yslope_xbwd[63]=1 yslope_ybwd[63]=0 yslope_size[63]=0 yoffset[63]=0 ; ; 8x8 spiral ; elseif(@block_type=="8x8 - spiral") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(6,1) zsf[gn,8]=(6,2) zsf[gn,9]=(6,3) zsf[gn,10]=(6,4) zsf[gn,11]=(6,5) zsf[gn,12]=(6,6) zsf[gn,13]=(5,6) zsf[gn,14]=(4,6) zsf[gn,15]=(3,6) zsf[gn,16]=(2,6) zsf[gn,17]=(1,6) zsf[gn,18]=(1,5) zsf[gn,19]=(1,4) zsf[gn,20]=(1,3) zsf[gn,21]=(1,2) zsf[gn,22]=(2,2) zsf[gn,23]=(3,2) zsf[gn,24]=(4,2) zsf[gn,25]=(4,3) zsf[gn,26]=(4,4) zsf[gn,27]=(3,4) zsf[gn,28]=(3,3) zsf[gn,29]=(2,3) zsf[gn,30]=(2,4) zsf[gn,31]=(2,5) zsf[gn,32]=(3,5) zsf[gn,33]=(4,5) zsf[gn,34]=(5,5) zsf[gn,35]=(5,4) zsf[gn,36]=(5,3) zsf[gn,37]=(5,2) zsf[gn,38]=(5,1) zsf[gn,39]=(4,1) zsf[gn,40]=(3,1) zsf[gn,41]=(2,1) zsf[gn,42]=(1,1) zsf[gn,43]=(0,1) zsf[gn,44]=(0,2) zsf[gn,45]=(0,3) zsf[gn,46]=(0,4) zsf[gn,47]=(0,5) zsf[gn,48]=(0,6) zsf[gn,49]=(0,7) zsf[gn,50]=(1,7) zsf[gn,51]=(2,7) zsf[gn,52]=(3,7) zsf[gn,53]=(4,7) zsf[gn,54]=(5,7) zsf[gn,55]=(6,7) zsf[gn,56]=(7,7) zsf[gn,57]=(7,6) zsf[gn,58]=(7,5) zsf[gn,59]=(7,4) zsf[gn,60]=(7,3) zsf[gn,61]=(7,2) zsf[gn,62]=(7,1) zsf[gn,63]=(7,0) npoint=64 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=0 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 xslope_xfwd[3]=1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=0 yslope_yfwd[3]=1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=0 yoffset[5]=0 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=1 yoffset[6]=-1 xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=1 xslope_size[7]=6 xoffset[7]=0 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=-1 yslope_ybwd[7]=0 yslope_size[7]=2 yoffset[7]=-1 xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=1 xslope_size[8]=6 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=-1 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=6 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=4 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=6 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=5 yoffset[10]=-1 xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=6 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=6 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=6 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=7 yoffset[12]=-1 xslope_xfwd[13]=-1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=6 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=-1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=7 yoffset[13]=-1 xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=5 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=7 yoffset[14]=-1 xslope_xfwd[15]=-1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=-1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=7 yoffset[15]=-1 xslope_xfwd[16]=-1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=3 xoffset[16]=-1 yslope_xfwd[16]=0 yslope_yfwd[16]=-1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=7 yoffset[16]=-1 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=-1 xslope_size[17]=2 xoffset[17]=-1 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=1 yslope_ybwd[17]=0 yslope_size[17]=6 yoffset[17]=0 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=-1 xslope_size[18]=2 xoffset[18]=-1 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=1 yslope_ybwd[18]=0 yslope_size[18]=5 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=2 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=-1 xslope_size[20]=2 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=1 yslope_ybwd[20]=0 yslope_size[20]=3 yoffset[20]=0 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=2 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=2 yoffset[21]=0 xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 xslope_xfwd[23]=1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=3 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=2 yoffset[23]=0 xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=1 xslope_size[24]=4 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=-1 yslope_ybwd[24]=0 yslope_size[24]=3 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=1 xslope_size[25]=4 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=-1 yslope_ybwd[25]=0 yslope_size[25]=4 yoffset[25]=-1 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=1 xslope_size[26]=4 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=-1 yslope_ybwd[26]=0 yslope_size[26]=5 yoffset[26]=-1 xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=-1 xslope_size[27]=4 xoffset[27]=-1 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=1 yslope_ybwd[27]=0 yslope_size[27]=4 yoffset[27]=0 xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=4 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=-1 xslope_xfwd[29]=-1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=3 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=-1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=4 yoffset[29]=-1 xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=1 xslope_size[30]=2 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=-1 yslope_ybwd[30]=0 yslope_size[30]=5 yoffset[30]=-1 xslope_xfwd[31]=1 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=2 xoffset[31]=0 yslope_xfwd[31]=0 yslope_yfwd[31]=1 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=5 yoffset[31]=0 xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=3 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=5 yoffset[32]=0 xslope_xfwd[33]=1 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=4 xoffset[33]=0 yslope_xfwd[33]=0 yslope_yfwd[33]=1 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=5 yoffset[33]=0 xslope_xfwd[34]=1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=5 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=5 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=4 yoffset[35]=0 xslope_xfwd[36]=0 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=-1 xslope_size[36]=6 xoffset[36]=-1 yslope_xfwd[36]=0 yslope_yfwd[36]=0 yslope_xbwd[36]=1 yslope_ybwd[36]=0 yslope_size[36]=3 yoffset[36]=0 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=-1 xslope_size[37]=6 xoffset[37]=-1 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=1 yslope_ybwd[37]=0 yslope_size[37]=2 yoffset[37]=0 xslope_xfwd[38]=-1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=6 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=-1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=2 yoffset[38]=-1 xslope_xfwd[39]=-1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=5 xoffset[39]=-1 yslope_xfwd[39]=0 yslope_yfwd[39]=-1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=2 yoffset[39]=-1 xslope_xfwd[40]=-1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=-1 yslope_xfwd[40]=0 yslope_yfwd[40]=-1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=2 yoffset[40]=-1 xslope_xfwd[41]=-1 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=3 xoffset[41]=-1 yslope_xfwd[41]=0 yslope_yfwd[41]=-1 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=2 yoffset[41]=-1 xslope_xfwd[42]=-1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=2 xoffset[42]=-1 yslope_xfwd[42]=0 yslope_yfwd[42]=-1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=2 yoffset[42]=-1 xslope_xfwd[43]=-1 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=1 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=-1 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=2 yoffset[43]=-1 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=1 xslope_size[44]=0 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=-1 yslope_ybwd[44]=0 yslope_size[44]=3 yoffset[44]=-1 xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=1 xslope_size[45]=0 xoffset[45]=0 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=-1 yslope_ybwd[45]=0 yslope_size[45]=4 yoffset[45]=-1 xslope_xfwd[46]=0 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=1 xslope_size[46]=0 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=0 yslope_xbwd[46]=-1 yslope_ybwd[46]=0 yslope_size[46]=5 yoffset[46]=-1 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=1 xslope_size[47]=0 xoffset[47]=0 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=-1 yslope_ybwd[47]=0 yslope_size[47]=6 yoffset[47]=-1 xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=1 xslope_size[48]=0 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=-1 yslope_ybwd[48]=0 yslope_size[48]=7 yoffset[48]=-1 xslope_xfwd[49]=1 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=0 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=1 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=7 yoffset[49]=0 xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=1 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=7 yoffset[50]=0 xslope_xfwd[51]=1 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=2 xoffset[51]=0 yslope_xfwd[51]=0 yslope_yfwd[51]=1 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=7 yoffset[51]=0 xslope_xfwd[52]=1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=3 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=7 yoffset[52]=0 xslope_xfwd[53]=1 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=4 xoffset[53]=0 yslope_xfwd[53]=0 yslope_yfwd[53]=1 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=7 yoffset[53]=0 xslope_xfwd[54]=1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=5 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=7 yoffset[54]=0 xslope_xfwd[55]=1 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=6 xoffset[55]=0 yslope_xfwd[55]=0 yslope_yfwd[55]=1 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=0 xslope_xfwd[56]=1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=7 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=7 yoffset[56]=0 xslope_xfwd[57]=0 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=-1 xslope_size[57]=8 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=0 yslope_xbwd[57]=1 yslope_ybwd[57]=0 yslope_size[57]=6 yoffset[57]=0 xslope_xfwd[58]=0 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=-1 xslope_size[58]=8 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=0 yslope_xbwd[58]=1 yslope_ybwd[58]=0 yslope_size[58]=5 yoffset[58]=0 xslope_xfwd[59]=0 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=-1 xslope_size[59]=8 xoffset[59]=-1 yslope_xfwd[59]=0 yslope_yfwd[59]=0 yslope_xbwd[59]=1 yslope_ybwd[59]=0 yslope_size[59]=4 yoffset[59]=0 xslope_xfwd[60]=0 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=-1 xslope_size[60]=8 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=0 yslope_xbwd[60]=1 yslope_ybwd[60]=0 yslope_size[60]=3 yoffset[60]=0 xslope_xfwd[61]=0 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=-1 xslope_size[61]=8 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=0 yslope_xbwd[61]=1 yslope_ybwd[61]=0 yslope_size[61]=2 yoffset[61]=0 xslope_xfwd[62]=0 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=-1 xslope_size[62]=8 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=0 yslope_xbwd[62]=1 yslope_ybwd[62]=0 yslope_size[62]=1 yoffset[62]=0 xslope_xfwd[63]=0 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=-1 xslope_size[63]=8 xoffset[63]=-1 yslope_xfwd[63]=0 yslope_yfwd[63]=0 yslope_xbwd[63]=1 yslope_ybwd[63]=0 yslope_size[63]=0 yoffset[63]=0 ; ; 8x8 cbf ; elseif(@block_type=="8x8 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(0,1) zsf[gn,2]=(1,1) zsf[gn,3]=(1,0) zsf[gn,4]=(2,0) zsf[gn,5]=(2,1) zsf[gn,6]=(2,2) zsf[gn,7]=(1,2) zsf[gn,8]=(0,2) zsf[gn,9]=(0,3) zsf[gn,10]=(1,3) zsf[gn,11]=(2,3) zsf[gn,12]=(3,3) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) zsf[gn,16]=(4,0) zsf[gn,17]=(4,1) zsf[gn,18]=(4,2) zsf[gn,19]=(4,3) zsf[gn,20]=(4,4) zsf[gn,21]=(3,4) zsf[gn,22]=(2,4) zsf[gn,23]=(1,4) zsf[gn,24]=(0,4) zsf[gn,25]=(0,5) zsf[gn,26]=(1,5) zsf[gn,27]=(2,5) zsf[gn,28]=(3,5) zsf[gn,29]=(4,5) zsf[gn,30]=(5,5) zsf[gn,31]=(5,4) zsf[gn,32]=(5,3) zsf[gn,33]=(5,2) zsf[gn,34]=(5,1) zsf[gn,35]=(5,0) zsf[gn,36]=(6,0) zsf[gn,37]=(6,1) zsf[gn,38]=(6,2) zsf[gn,39]=(6,3) zsf[gn,40]=(6,4) zsf[gn,41]=(6,5) zsf[gn,42]=(6,6) zsf[gn,43]=(5,6) zsf[gn,44]=(4,6) zsf[gn,45]=(3,6) zsf[gn,46]=(2,6) zsf[gn,47]=(1,6) zsf[gn,48]=(0,6) zsf[gn,49]=(0,7) zsf[gn,50]=(1,7) zsf[gn,51]=(2,7) zsf[gn,52]=(3,7) zsf[gn,53]=(4,7) zsf[gn,54]=(5,7) zsf[gn,55]=(6,7) zsf[gn,56]=(7,7) zsf[gn,57]=(7,6) zsf[gn,58]=(7,5) zsf[gn,59]=(7,4) zsf[gn,60]=(7,3) zsf[gn,61]=(7,2) zsf[gn,62]=(7,1) zsf[gn,63]=(7,0) npoint=64 xslope_xfwd[0]=0 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=1 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=0 yslope_xbwd[0]=-1 yslope_ybwd[0]=0 yslope_size[0]=1 yoffset[0]=-1 xslope_xfwd[1]=1 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=0 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=1 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=0 xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=1 yoffset[2]=0 xslope_xfwd[3]=0 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=-1 xslope_size[3]=2 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=0 yslope_xbwd[3]=1 yslope_ybwd[3]=0 yslope_size[3]=0 yoffset[3]=0 xslope_xfwd[4]=0 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=1 xslope_size[4]=2 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=0 yslope_xbwd[4]=-1 yslope_ybwd[4]=0 yslope_size[4]=1 yoffset[4]=-1 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=2 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=3 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=2 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=-1 xslope_xfwd[8]=-1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=1 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=-1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=3 yoffset[8]=-1 xslope_xfwd[9]=1 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=0 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=1 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=3 yoffset[9]=0 xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=3 yoffset[10]=0 xslope_xfwd[11]=1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=2 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=3 yoffset[12]=0 xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=-1 xslope_size[13]=4 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=1 yslope_ybwd[13]=0 yslope_size[13]=2 yoffset[13]=0 xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=-1 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=1 yslope_ybwd[14]=0 yslope_size[14]=1 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=4 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=0 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=4 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=1 yoffset[16]=-1 xslope_xfwd[17]=0 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=1 xslope_size[17]=4 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=0 yslope_xbwd[17]=-1 yslope_ybwd[17]=0 yslope_size[17]=2 yoffset[17]=-1 xslope_xfwd[18]=0 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=1 xslope_size[18]=4 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=0 yslope_xbwd[18]=-1 yslope_ybwd[18]=0 yslope_size[18]=3 yoffset[18]=-1 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=1 xslope_size[19]=4 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=-1 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=-1 xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=1 xslope_size[20]=4 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=-1 yslope_ybwd[20]=0 yslope_size[20]=5 yoffset[20]=-1 xslope_xfwd[21]=-1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=4 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=-1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=5 yoffset[21]=-1 xslope_xfwd[22]=-1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=3 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=-1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=5 yoffset[22]=-1 xslope_xfwd[23]=-1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=2 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=-1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=5 yoffset[23]=-1 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=1 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=5 yoffset[24]=-1 xslope_xfwd[25]=1 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=0 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=1 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=5 yoffset[25]=0 xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=1 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=5 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=2 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=5 yoffset[27]=0 xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=3 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=5 yoffset[28]=0 xslope_xfwd[29]=1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=4 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=0 xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=5 yoffset[30]=0 xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=6 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=4 yoffset[31]=0 xslope_xfwd[32]=0 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=-1 xslope_size[32]=6 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=0 yslope_xbwd[32]=1 yslope_ybwd[32]=0 yslope_size[32]=3 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=6 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=2 yoffset[33]=0 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=6 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=1 yoffset[34]=0 xslope_xfwd[35]=0 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=-1 xslope_size[35]=6 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=0 yslope_xbwd[35]=1 yslope_ybwd[35]=0 yslope_size[35]=0 yoffset[35]=0 xslope_xfwd[36]=0 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=1 xslope_size[36]=6 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=0 yslope_xbwd[36]=-1 yslope_ybwd[36]=0 yslope_size[36]=1 yoffset[36]=-1 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=6 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=2 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=1 xslope_size[38]=6 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=-1 yslope_ybwd[38]=0 yslope_size[38]=3 yoffset[38]=-1 xslope_xfwd[39]=0 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=1 xslope_size[39]=6 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=0 yslope_xbwd[39]=-1 yslope_ybwd[39]=0 yslope_size[39]=4 yoffset[39]=-1 xslope_xfwd[40]=0 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=1 xslope_size[40]=6 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=0 yslope_xbwd[40]=-1 yslope_ybwd[40]=0 yslope_size[40]=5 yoffset[40]=-1 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=1 xslope_size[41]=6 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=-1 yslope_ybwd[41]=0 yslope_size[41]=6 yoffset[41]=-1 xslope_xfwd[42]=0 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=1 xslope_size[42]=6 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=0 yslope_xbwd[42]=-1 yslope_ybwd[42]=0 yslope_size[42]=7 yoffset[42]=-1 xslope_xfwd[43]=-1 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=6 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=-1 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=7 yoffset[43]=-1 xslope_xfwd[44]=-1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=5 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=-1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=7 yoffset[44]=-1 xslope_xfwd[45]=-1 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=4 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=-1 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=7 yoffset[45]=-1 xslope_xfwd[46]=-1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=3 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=-1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=7 yoffset[46]=-1 xslope_xfwd[47]=-1 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=2 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=-1 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=7 yoffset[47]=-1 xslope_xfwd[48]=-1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=1 xoffset[48]=-1 yslope_xfwd[48]=0 yslope_yfwd[48]=-1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=7 yoffset[48]=-1 xslope_xfwd[49]=1 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=0 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=1 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=7 yoffset[49]=0 xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=1 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=7 yoffset[50]=0 xslope_xfwd[51]=1 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=2 xoffset[51]=0 yslope_xfwd[51]=0 yslope_yfwd[51]=1 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=7 yoffset[51]=0 xslope_xfwd[52]=1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=3 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=7 yoffset[52]=0 xslope_xfwd[53]=1 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=4 xoffset[53]=0 yslope_xfwd[53]=0 yslope_yfwd[53]=1 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=7 yoffset[53]=0 xslope_xfwd[54]=1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=5 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=7 yoffset[54]=0 xslope_xfwd[55]=1 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=6 xoffset[55]=0 yslope_xfwd[55]=0 yslope_yfwd[55]=1 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=0 xslope_xfwd[56]=1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=7 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=7 yoffset[56]=0 xslope_xfwd[57]=0 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=-1 xslope_size[57]=8 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=0 yslope_xbwd[57]=1 yslope_ybwd[57]=0 yslope_size[57]=6 yoffset[57]=0 xslope_xfwd[58]=0 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=-1 xslope_size[58]=8 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=0 yslope_xbwd[58]=1 yslope_ybwd[58]=0 yslope_size[58]=5 yoffset[58]=0 xslope_xfwd[59]=0 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=-1 xslope_size[59]=8 xoffset[59]=-1 yslope_xfwd[59]=0 yslope_yfwd[59]=0 yslope_xbwd[59]=1 yslope_ybwd[59]=0 yslope_size[59]=4 yoffset[59]=0 xslope_xfwd[60]=0 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=-1 xslope_size[60]=8 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=0 yslope_xbwd[60]=1 yslope_ybwd[60]=0 yslope_size[60]=3 yoffset[60]=0 xslope_xfwd[61]=0 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=-1 xslope_size[61]=8 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=0 yslope_xbwd[61]=1 yslope_ybwd[61]=0 yslope_size[61]=2 yoffset[61]=0 xslope_xfwd[62]=0 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=-1 xslope_size[62]=8 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=0 yslope_xbwd[62]=1 yslope_ybwd[62]=0 yslope_size[62]=1 yoffset[62]=0 xslope_xfwd[63]=0 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=-1 xslope_size[63]=8 xoffset[63]=-1 yslope_xfwd[63]=0 yslope_yfwd[63]=0 yslope_xbwd[63]=1 yslope_ybwd[63]=0 yslope_size[63]=0 yoffset[63]=0 ; ; 8x8 maximum ; elseif(@block_type=="8x8 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,3) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(1,5) zsf[gn,11]=(0,5) zsf[gn,12]=(0,6) zsf[gn,13]=(0,7) zsf[gn,14]=(1,7) zsf[gn,15]=(1,6) zsf[gn,16]=(2,6) zsf[gn,17]=(2,7) zsf[gn,18]=(3,7) zsf[gn,19]=(3,6) zsf[gn,20]=(3,5) zsf[gn,21]=(2,5) zsf[gn,22]=(2,4) zsf[gn,23]=(3,4) zsf[gn,24]=(3,3) zsf[gn,25]=(2,3) zsf[gn,26]=(2,2) zsf[gn,27]=(3,2) zsf[gn,28]=(3,1) zsf[gn,29]=(2,1) zsf[gn,30]=(2,0) zsf[gn,31]=(3,0) zsf[gn,32]=(4,0) zsf[gn,33]=(5,0) zsf[gn,34]=(5,1) zsf[gn,35]=(4,1) zsf[gn,36]=(4,2) zsf[gn,37]=(5,2) zsf[gn,38]=(5,3) zsf[gn,39]=(4,3) zsf[gn,40]=(4,4) zsf[gn,41]=(5,4) zsf[gn,42]=(5,5) zsf[gn,43]=(4,5) zsf[gn,44]=(4,6) zsf[gn,45]=(4,7) zsf[gn,46]=(5,7) zsf[gn,47]=(5,6) zsf[gn,48]=(6,6) zsf[gn,49]=(6,7) zsf[gn,50]=(7,7) zsf[gn,51]=(7,6) zsf[gn,52]=(7,5) zsf[gn,53]=(6,5) zsf[gn,54]=(6,4) zsf[gn,55]=(7,4) zsf[gn,56]=(7,3) zsf[gn,57]=(6,3) zsf[gn,58]=(6,2) zsf[gn,59]=(7,2) zsf[gn,60]=(7,1) zsf[gn,61]=(6,1) zsf[gn,62]=(6,0) zsf[gn,63]=(7,0) npoint=64 xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=-1 xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=4 yoffset[6]=-1 xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=6 yoffset[10]=-1 xslope_xfwd[11]=-1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=1 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=-1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=6 yoffset[11]=-1 xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=0 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=7 yoffset[12]=-1 xslope_xfwd[13]=1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=0 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=7 yoffset[13]=0 xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=1 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=7 yoffset[14]=0 xslope_xfwd[15]=0 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=-1 xslope_size[15]=2 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=0 yslope_xbwd[15]=1 yslope_ybwd[15]=0 yslope_size[15]=6 yoffset[15]=0 xslope_xfwd[16]=0 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=1 xslope_size[16]=2 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=0 yslope_xbwd[16]=-1 yslope_ybwd[16]=0 yslope_size[16]=7 yoffset[16]=-1 xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=2 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=7 yoffset[17]=0 xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=3 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=7 yoffset[18]=0 xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=4 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=6 yoffset[19]=0 xslope_xfwd[20]=-1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=4 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=-1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=6 yoffset[20]=-1 xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=3 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=5 yoffset[21]=0 xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=-1 xslope_size[22]=3 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=1 yslope_ybwd[22]=0 yslope_size[22]=4 yoffset[22]=0 xslope_xfwd[23]=1 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=3 xoffset[23]=0 yslope_xfwd[23]=0 yslope_yfwd[23]=1 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=4 yoffset[23]=0 xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=-1 xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=-1 xslope_size[25]=3 xoffset[25]=-1 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=1 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=0 xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=-1 xslope_size[26]=3 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=1 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=0 xslope_xfwd[27]=1 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=3 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=1 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=2 yoffset[27]=0 xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=4 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=2 yoffset[28]=-1 xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=-1 xslope_size[29]=3 xoffset[29]=-1 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=1 yslope_ybwd[29]=0 yslope_size[29]=1 yoffset[29]=0 xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=-1 xslope_size[30]=3 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=1 yslope_ybwd[30]=0 yslope_size[30]=0 yoffset[30]=0 xslope_xfwd[31]=1 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=3 xoffset[31]=0 yslope_xfwd[31]=0 yslope_yfwd[31]=1 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=0 yoffset[31]=0 xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=4 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=0 yoffset[32]=0 xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=1 xslope_size[33]=5 xoffset[33]=0 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=-1 yslope_ybwd[33]=0 yslope_size[33]=1 yoffset[33]=-1 xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=1 xslope_size[34]=5 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=-1 yslope_ybwd[34]=0 yslope_size[34]=2 yoffset[34]=-1 xslope_xfwd[35]=-1 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=5 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=-1 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=2 yoffset[35]=-1 xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=4 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=2 yoffset[36]=0 xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=1 xslope_size[37]=5 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=-1 yslope_ybwd[37]=0 yslope_size[37]=3 yoffset[37]=-1 xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=1 xslope_size[38]=5 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=-1 yslope_ybwd[38]=0 yslope_size[38]=4 yoffset[38]=-1 xslope_xfwd[39]=-1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=5 xoffset[39]=-1 yslope_xfwd[39]=0 yslope_yfwd[39]=-1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=4 yoffset[39]=-1 xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=4 yoffset[40]=0 xslope_xfwd[41]=0 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=1 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=0 yslope_xbwd[41]=-1 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=-1 xslope_xfwd[42]=0 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=1 xslope_size[42]=5 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=0 yslope_xbwd[42]=-1 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=-1 xslope_xfwd[43]=-1 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=5 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=-1 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=6 yoffset[43]=-1 xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=1 xslope_size[44]=4 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=-1 yslope_ybwd[44]=0 yslope_size[44]=7 yoffset[44]=-1 xslope_xfwd[45]=1 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=4 xoffset[45]=0 yslope_xfwd[45]=0 yslope_yfwd[45]=1 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=7 yoffset[45]=0 xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=5 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=7 yoffset[46]=0 xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=-1 xslope_size[47]=6 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=1 yslope_ybwd[47]=0 yslope_size[47]=6 yoffset[47]=0 xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=1 xslope_size[48]=6 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=-1 yslope_ybwd[48]=0 yslope_size[48]=7 yoffset[48]=-1 xslope_xfwd[49]=1 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=6 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=1 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=7 yoffset[49]=0 xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=7 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=7 yoffset[50]=0 xslope_xfwd[51]=0 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=-1 xslope_size[51]=8 xoffset[51]=-1 yslope_xfwd[51]=0 yslope_yfwd[51]=0 yslope_xbwd[51]=1 yslope_ybwd[51]=0 yslope_size[51]=6 yoffset[51]=0 xslope_xfwd[52]=-1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=8 xoffset[52]=-1 yslope_xfwd[52]=0 yslope_yfwd[52]=-1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=6 yoffset[52]=-1 xslope_xfwd[53]=0 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=-1 xslope_size[53]=7 xoffset[53]=-1 yslope_xfwd[53]=0 yslope_yfwd[53]=0 yslope_xbwd[53]=1 yslope_ybwd[53]=0 yslope_size[53]=5 yoffset[53]=0 xslope_xfwd[54]=0 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=-1 xslope_size[54]=7 xoffset[54]=-1 yslope_xfwd[54]=0 yslope_yfwd[54]=0 yslope_xbwd[54]=1 yslope_ybwd[54]=0 yslope_size[54]=4 yoffset[54]=0 xslope_xfwd[55]=1 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=7 xoffset[55]=0 yslope_xfwd[55]=0 yslope_yfwd[55]=1 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=4 yoffset[55]=0 xslope_xfwd[56]=-1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=8 xoffset[56]=-1 yslope_xfwd[56]=0 yslope_yfwd[56]=-1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=4 yoffset[56]=-1 xslope_xfwd[57]=0 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=-1 xslope_size[57]=7 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=0 yslope_xbwd[57]=1 yslope_ybwd[57]=0 yslope_size[57]=3 yoffset[57]=0 xslope_xfwd[58]=0 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=-1 xslope_size[58]=7 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=0 yslope_xbwd[58]=1 yslope_ybwd[58]=0 yslope_size[58]=2 yoffset[58]=0 xslope_xfwd[59]=1 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=7 xoffset[59]=0 yslope_xfwd[59]=0 yslope_yfwd[59]=1 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=2 yoffset[59]=0 xslope_xfwd[60]=-1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=8 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=-1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=2 yoffset[60]=-1 xslope_xfwd[61]=0 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=-1 xslope_size[61]=7 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=0 yslope_xbwd[61]=1 yslope_ybwd[61]=0 yslope_size[61]=1 yoffset[61]=0 xslope_xfwd[62]=0 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=-1 xslope_size[62]=7 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=0 yslope_xbwd[62]=1 yslope_ybwd[62]=0 yslope_size[62]=0 yoffset[62]=0 xslope_xfwd[63]=1 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=7 xoffset[63]=0 yslope_xfwd[63]=0 yslope_yfwd[63]=1 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=0 yoffset[63]=0 ; ; 9x9 minimum ; elseif(@block_type=="9x9 - min") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(7,0) zsf[gn,8]=(8,0) zsf[gn,9]=(8,1) zsf[gn,10]=(7,1) zsf[gn,11]=(6,1) zsf[gn,12]=(5,1) zsf[gn,13]=(4,1) zsf[gn,14]=(3,1) zsf[gn,15]=(2,1) zsf[gn,16]=(1,1) zsf[gn,17]=(0,1) zsf[gn,18]=(0,2) zsf[gn,19]=(1,2) zsf[gn,20]=(2,2) zsf[gn,21]=(3,2) zsf[gn,22]=(4,2) zsf[gn,23]=(5,2) zsf[gn,24]=(6,2) zsf[gn,25]=(7,2) zsf[gn,26]=(8,2) zsf[gn,27]=(8,3) zsf[gn,28]=(7,3) zsf[gn,29]=(6,3) zsf[gn,30]=(5,3) zsf[gn,31]=(4,3) zsf[gn,32]=(3,3) zsf[gn,33]=(2,3) zsf[gn,34]=(1,3) zsf[gn,35]=(0,3) zsf[gn,36]=(0,4) zsf[gn,37]=(1,4) zsf[gn,38]=(2,4) zsf[gn,39]=(3,4) zsf[gn,40]=(4,4) zsf[gn,41]=(5,4) zsf[gn,42]=(6,4) zsf[gn,43]=(7,4) zsf[gn,44]=(8,4) zsf[gn,45]=(8,5) zsf[gn,46]=(7,5) zsf[gn,47]=(6,5) zsf[gn,48]=(5,5) zsf[gn,49]=(4,5) zsf[gn,50]=(3,5) zsf[gn,51]=(2,5) zsf[gn,52]=(1,5) zsf[gn,53]=(0,5) zsf[gn,54]=(0,6) zsf[gn,55]=(1,6) zsf[gn,56]=(2,6) zsf[gn,57]=(3,6) zsf[gn,58]=(4,6) zsf[gn,59]=(5,6) zsf[gn,60]=(6,6) zsf[gn,61]=(7,6) zsf[gn,62]=(8,6) zsf[gn,63]=(8,7) zsf[gn,64]=(7,7) zsf[gn,65]=(6,7) zsf[gn,66]=(5,7) zsf[gn,67]=(4,7) zsf[gn,68]=(3,7) zsf[gn,69]=(2,7) zsf[gn,70]=(1,7) zsf[gn,71]=(0,7) zsf[gn,72]=(0,8) zsf[gn,73]=(1,8) zsf[gn,74]=(2,8) zsf[gn,75]=(3,8) zsf[gn,76]=(4,8) zsf[gn,77]=(5,8) zsf[gn,78]=(6,8) zsf[gn,79]=(7,8) zsf[gn,80]=(8,8) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, forward ; xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: 0, forward ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 ; ; block 3: right, forward ; xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=-1 ; ; block 4: 0, forward ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 ; ; block 5: right, forward ; xslope_xfwd[5]=0 xslope_yfwd[5]=1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=0 yslope_xfwd[5]=-1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=-1 ; ; block 6: 0, forward ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 ; ; block 7: right, forward ; xslope_xfwd[7]=0 xslope_yfwd[7]=1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=7 xoffset[7]=0 yslope_xfwd[7]=-1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=-1 ; ; block 8: 0, forward ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=8 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 ; ; block 9: left, forward ; xslope_xfwd[9]=0 xslope_yfwd[9]=-1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=9 xoffset[9]=-1 yslope_xfwd[9]=1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=0 ; ; block 10: 180, forward ; xslope_xfwd[10]=-1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=8 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=-1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=-1 ; ; block 11: left, forward ; xslope_xfwd[11]=0 xslope_yfwd[11]=-1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=7 xoffset[11]=-1 yslope_xfwd[11]=1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=1 yoffset[11]=0 ; ; block 12: 180, forward ; xslope_xfwd[12]=-1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=6 xoffset[12]=-1 yslope_xfwd[12]=0 yslope_yfwd[12]=-1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=-1 ; ; block 13: left, forward ; xslope_xfwd[13]=0 xslope_yfwd[13]=-1 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=5 xoffset[13]=-1 yslope_xfwd[13]=1 yslope_yfwd[13]=0 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=1 yoffset[13]=0 ; ; block 14: 180, forward ; xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=-1 ; ; block 15: left, forward ; xslope_xfwd[15]=0 xslope_yfwd[15]=-1 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=3 xoffset[15]=-1 yslope_xfwd[15]=1 yslope_yfwd[15]=0 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=1 yoffset[15]=0 ; ; block 16: 180, forward ; xslope_xfwd[16]=-1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=2 xoffset[16]=-1 yslope_xfwd[16]=0 yslope_yfwd[16]=-1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=2 yoffset[16]=-1 ; ; block 17: left, forward ; xslope_xfwd[17]=0 xslope_yfwd[17]=-1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=-1 yslope_xfwd[17]=1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=1 yoffset[17]=0 ; ; block 18: 0, forward ; xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=0 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 ; ; block 19: right, forward ; xslope_xfwd[19]=0 xslope_yfwd[19]=1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=1 xoffset[19]=0 yslope_xfwd[19]=-1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=3 yoffset[19]=-1 ; ; block 20: 0, forward ; xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=2 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=0 ; ; block 21: right, forward ; xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=-1 ; ; block 22: 0, forward ; xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 ; ; block 23: right, forward ; xslope_xfwd[23]=0 xslope_yfwd[23]=1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=5 xoffset[23]=0 yslope_xfwd[23]=-1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=3 yoffset[23]=-1 ; ; block 24: 0, forward ; xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=6 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=2 yoffset[24]=0 ; ; block 25: right, forward ; xslope_xfwd[25]=0 xslope_yfwd[25]=1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=7 xoffset[25]=0 yslope_xfwd[25]=-1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=-1 ; ; block 26: 0, forward ; xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=8 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=0 ; ; block 27: left, forward ; xslope_xfwd[27]=0 xslope_yfwd[27]=-1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=9 xoffset[27]=-1 yslope_xfwd[27]=1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=0 ; ; block 28: 180, forward ; xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=8 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=-1 ; ; block 29: left, forward ; xslope_xfwd[29]=0 xslope_yfwd[29]=-1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=7 xoffset[29]=-1 yslope_xfwd[29]=1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=3 yoffset[29]=0 ; ; block 30: 180, forward ; xslope_xfwd[30]=-1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=6 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=-1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=4 yoffset[30]=-1 ; ; block 31: left, forward ; xslope_xfwd[31]=0 xslope_yfwd[31]=-1 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=5 xoffset[31]=-1 yslope_xfwd[31]=1 yslope_yfwd[31]=0 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=3 yoffset[31]=0 ; ; block 32: 180, forward ; xslope_xfwd[32]=-1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=4 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=-1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=4 yoffset[32]=-1 ; ; block 33: left, forward ; xslope_xfwd[33]=0 xslope_yfwd[33]=-1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=3 xoffset[33]=-1 yslope_xfwd[33]=1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=3 yoffset[33]=0 ; ; block 34: 0, forward ; xslope_xfwd[34]=-1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=2 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=-1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=4 yoffset[34]=-1 ; ; block 35: left, forward ; xslope_xfwd[35]=0 xslope_yfwd[35]=-1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=1 xoffset[35]=-1 yslope_xfwd[35]=1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=3 yoffset[35]=0 ; ; block 36: 0, forward ; xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=0 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=4 yoffset[36]=0 ; ; block 37: right, forward ; xslope_xfwd[37]=0 xslope_yfwd[37]=1 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=1 xoffset[37]=0 yslope_xfwd[37]=-1 yslope_yfwd[37]=0 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=5 yoffset[37]=-1 ; ; block 38: 0, forward ; xslope_xfwd[38]=1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=2 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=4 yoffset[38]=0 ; ; block 39: right, forward ; xslope_xfwd[39]=0 xslope_yfwd[39]=1 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=0 yslope_xfwd[39]=-1 yslope_yfwd[39]=0 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=5 yoffset[39]=-1 ; ; block 40: 0, forward ; xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=4 yoffset[40]=0 ; ; block 41: right, forward ; xslope_xfwd[41]=0 xslope_yfwd[41]=1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=-1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=-1 ; ; block 42: 0, forward ; xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=6 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=4 yoffset[42]=0 ; ; block 43: right, forward ; xslope_xfwd[43]=0 xslope_yfwd[43]=1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=7 xoffset[43]=0 yslope_xfwd[43]=-1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=5 yoffset[43]=-1 ; ; block 44: 0, forward ; xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=8 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=4 yoffset[44]=0 ; ; block 45: left, forward ; xslope_xfwd[45]=0 xslope_yfwd[45]=-1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=9 xoffset[45]=-1 yslope_xfwd[45]=1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=5 yoffset[45]=0 ; ; block 46: 180, forward ; xslope_xfwd[46]=-1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=8 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=-1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=6 yoffset[46]=-1 ; ; block 47: left, forward ; xslope_xfwd[47]=0 xslope_yfwd[47]=-1 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=7 xoffset[47]=-1 yslope_xfwd[47]=1 yslope_yfwd[47]=0 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=5 yoffset[47]=0 ; ; block 48: 180, forward ; xslope_xfwd[48]=-1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=6 xoffset[48]=-1 yslope_xfwd[48]=0 yslope_yfwd[48]=-1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=-1 ; ; block 49: left, forward ; xslope_xfwd[49]=0 xslope_yfwd[49]=-1 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=5 xoffset[49]=-1 yslope_xfwd[49]=1 yslope_yfwd[49]=0 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=5 yoffset[49]=0 ; ; block 50: 180, forward ; xslope_xfwd[50]=-1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=4 xoffset[50]=-1 yslope_xfwd[50]=0 yslope_yfwd[50]=-1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=6 yoffset[50]=-1 ; ; block 51: left, forward ; xslope_xfwd[51]=0 xslope_yfwd[51]=-1 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=3 xoffset[51]=-1 yslope_xfwd[51]=1 yslope_yfwd[51]=0 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=5 yoffset[51]=0 ; ; block 52: 180, forward ; xslope_xfwd[52]=-1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=2 xoffset[52]=-1 yslope_xfwd[52]=0 yslope_yfwd[52]=-1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=6 yoffset[52]=-1 ; ; block 53: left, forward ; xslope_xfwd[53]=0 xslope_yfwd[53]=-1 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=1 xoffset[53]=-1 yslope_xfwd[53]=1 yslope_yfwd[53]=0 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=5 yoffset[53]=0 ; ; block 54: 0, forward ; xslope_xfwd[54]=1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=0 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=6 yoffset[54]=0 ; ; block 55: right, forward ; xslope_xfwd[55]=0 xslope_yfwd[55]=1 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=1 xoffset[55]=0 yslope_xfwd[55]=-1 yslope_yfwd[55]=0 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=-1 ; ; block 56: 0, forward ; xslope_xfwd[56]=1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=2 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=6 yoffset[56]=0 ; ; block 57: right, forward ; xslope_xfwd[57]=0 xslope_yfwd[57]=1 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=3 xoffset[57]=0 yslope_xfwd[57]=-1 yslope_yfwd[57]=0 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=7 yoffset[57]=-1 ; ; block 58: 0, forward ; xslope_xfwd[58]=1 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=0 xslope_size[58]=4 xoffset[58]=0 yslope_xfwd[58]=0 yslope_yfwd[58]=1 yslope_xbwd[58]=0 yslope_ybwd[58]=0 yslope_size[58]=6 yoffset[58]=0 ; ; block 59: right, forward ; xslope_xfwd[59]=0 xslope_yfwd[59]=1 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=5 xoffset[59]=0 yslope_xfwd[59]=-1 yslope_yfwd[59]=0 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=7 yoffset[59]=-1 ; ; block 60: 0, forward ; xslope_xfwd[60]=1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=6 xoffset[60]=0 yslope_xfwd[60]=0 yslope_yfwd[60]=1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=6 yoffset[60]=0 ; ; block 61: right, forward ; xslope_xfwd[61]=0 xslope_yfwd[61]=1 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=7 xoffset[61]=0 yslope_xfwd[61]=-1 yslope_yfwd[61]=0 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=7 yoffset[61]=-1 ; ; block 62: 0, forward ; xslope_xfwd[62]=1 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=0 xslope_size[62]=8 xoffset[62]=0 yslope_xfwd[62]=0 yslope_yfwd[62]=1 yslope_xbwd[62]=0 yslope_ybwd[62]=0 yslope_size[62]=6 yoffset[62]=0 ; ; block 63: left, forward ; xslope_xfwd[63]=0 xslope_yfwd[63]=-1 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=9 xoffset[63]=-1 yslope_xfwd[63]=1 yslope_yfwd[63]=0 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=7 yoffset[63]=0 ; ; block 64: 180, forward ; xslope_xfwd[64]=-1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=8 xoffset[64]=-1 yslope_xfwd[64]=0 yslope_yfwd[64]=-1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=8 yoffset[64]=-1 ; ; block 65: left, forward ; xslope_xfwd[65]=0 xslope_yfwd[65]=-1 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=7 xoffset[65]=-1 yslope_xfwd[65]=1 yslope_yfwd[65]=0 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=7 yoffset[65]=0 ; ; block 66: 180, forward ; xslope_xfwd[66]=-1 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=0 xslope_size[66]=6 xoffset[66]=-1 yslope_xfwd[66]=0 yslope_yfwd[66]=-1 yslope_xbwd[66]=0 yslope_ybwd[66]=0 yslope_size[66]=8 yoffset[66]=-1 ; ; block 67: left, forward ; xslope_xfwd[67]=0 xslope_yfwd[67]=-1 xslope_xbwd[67]=0 xslope_ybwd[67]=0 xslope_size[67]=5 xoffset[67]=-1 yslope_xfwd[67]=1 yslope_yfwd[67]=0 yslope_xbwd[67]=0 yslope_ybwd[67]=0 yslope_size[67]=7 yoffset[67]=0 ; ; block 68: 180, forward ; xslope_xfwd[68]=-1 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=0 xslope_size[68]=4 xoffset[68]=-1 yslope_xfwd[68]=0 yslope_yfwd[68]=-1 yslope_xbwd[68]=0 yslope_ybwd[68]=0 yslope_size[68]=8 yoffset[68]=-1 ; ; block 69: left, forward ; xslope_xfwd[69]=0 xslope_yfwd[69]=-1 xslope_xbwd[69]=0 xslope_ybwd[69]=0 xslope_size[69]=3 xoffset[69]=-1 yslope_xfwd[69]=1 yslope_yfwd[69]=0 yslope_xbwd[69]=0 yslope_ybwd[69]=0 yslope_size[69]=7 yoffset[69]=0 ; ; block 70: 180, forward ; xslope_xfwd[70]=-1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=2 xoffset[70]=-1 yslope_xfwd[70]=0 yslope_yfwd[70]=-1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=8 yoffset[70]=-1 ; ; block 71: left, forward ; xslope_xfwd[71]=0 xslope_yfwd[71]=-1 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=1 xoffset[71]=-1 yslope_xfwd[71]=1 yslope_yfwd[71]=0 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=7 yoffset[71]=0 ; ; block 72: 0, forward ; xslope_xfwd[72]=1 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=0 xslope_size[72]=0 xoffset[72]=0 yslope_xfwd[72]=0 yslope_yfwd[72]=1 yslope_xbwd[72]=0 yslope_ybwd[72]=0 yslope_size[72]=8 yoffset[72]=0 ; ; block 73: right, forward ; xslope_xfwd[73]=0 xslope_yfwd[73]=1 xslope_xbwd[73]=0 xslope_ybwd[73]=0 xslope_size[73]=1 xoffset[73]=0 yslope_xfwd[73]=-1 yslope_yfwd[73]=0 yslope_xbwd[73]=0 yslope_ybwd[73]=0 yslope_size[73]=9 yoffset[73]=-1 ; ; block 74: 0, forward ; xslope_xfwd[74]=1 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=0 xslope_size[74]=2 xoffset[74]=0 yslope_xfwd[74]=0 yslope_yfwd[74]=1 yslope_xbwd[74]=0 yslope_ybwd[74]=0 yslope_size[74]=8 yoffset[74]=0 ; ; block 75: right, forward ; xslope_xfwd[75]=0 xslope_yfwd[75]=1 xslope_xbwd[75]=0 xslope_ybwd[75]=0 xslope_size[75]=3 xoffset[75]=0 yslope_xfwd[75]=-1 yslope_yfwd[75]=0 yslope_xbwd[75]=0 yslope_ybwd[75]=0 yslope_size[75]=9 yoffset[75]=-1 ; ; block 76: 0, forward ; xslope_xfwd[76]=1 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=0 xslope_size[76]=4 xoffset[76]=0 yslope_xfwd[76]=0 yslope_yfwd[76]=1 yslope_xbwd[76]=0 yslope_ybwd[76]=0 yslope_size[76]=8 yoffset[76]=0 ; ; block 77: right, forward ; xslope_xfwd[77]=0 xslope_yfwd[77]=1 xslope_xbwd[77]=0 xslope_ybwd[77]=0 xslope_size[77]=5 xoffset[77]=0 yslope_xfwd[77]=-1 yslope_yfwd[77]=0 yslope_xbwd[77]=0 yslope_ybwd[77]=0 yslope_size[77]=9 yoffset[77]=-1 ; ; block 78: 0, forward ; xslope_xfwd[78]=1 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=0 xslope_size[78]=6 xoffset[78]=0 yslope_xfwd[78]=0 yslope_yfwd[78]=1 yslope_xbwd[78]=0 yslope_ybwd[78]=0 yslope_size[78]=8 yoffset[78]=0 ; ; block 79: right, forward ; xslope_xfwd[79]=0 xslope_yfwd[79]=1 xslope_xbwd[79]=0 xslope_ybwd[79]=0 xslope_size[79]=7 xoffset[79]=0 yslope_xfwd[79]=-1 yslope_yfwd[79]=0 yslope_xbwd[79]=0 yslope_ybwd[79]=0 yslope_size[79]=9 yoffset[79]=-1 ; ; block 80: 0, forward ; xslope_xfwd[80]=1 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=0 xslope_size[80]=8 xoffset[80]=0 yslope_xfwd[80]=0 yslope_yfwd[80]=1 yslope_xbwd[80]=0 yslope_ybwd[80]=0 yslope_size[80]=8 yoffset[80]=0 ; ; 9x9 S ; elseif(@block_type=="9x9 - S") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(7,0) zsf[gn,8]=(8,0) zsf[gn,9]=(8,1) zsf[gn,10]=(8,2) zsf[gn,11]=(8,3) zsf[gn,12]=(8,4) zsf[gn,13]=(8,5) zsf[gn,14]=(8,6) zsf[gn,15]=(8,7) zsf[gn,16]=(7,7) zsf[gn,17]=(6,7) zsf[gn,18]=(5,7) zsf[gn,19]=(4,7) zsf[gn,20]=(3,7) zsf[gn,21]=(2,7) zsf[gn,22]=(1,7) zsf[gn,23]=(1,6) zsf[gn,24]=(1,5) zsf[gn,25]=(1,4) zsf[gn,26]=(1,3) zsf[gn,27]=(1,2) zsf[gn,28]=(2,2) zsf[gn,29]=(3,2) zsf[gn,30]=(4,2) zsf[gn,31]=(5,2) zsf[gn,32]=(6,2) zsf[gn,33]=(6,3) zsf[gn,34]=(6,4) zsf[gn,35]=(6,5) zsf[gn,36]=(5,5) zsf[gn,37]=(4,5) zsf[gn,38]=(3,5) zsf[gn,39]=(3,4) zsf[gn,40]=(4,4) zsf[gn,41]=(5,4) zsf[gn,42]=(5,3) zsf[gn,43]=(4,3) zsf[gn,44]=(3,3) zsf[gn,45]=(2,3) zsf[gn,46]=(2,4) zsf[gn,47]=(2,5) zsf[gn,48]=(2,6) zsf[gn,49]=(3,6) zsf[gn,50]=(4,6) zsf[gn,51]=(5,6) zsf[gn,52]=(6,6) zsf[gn,53]=(7,6) zsf[gn,54]=(7,5) zsf[gn,55]=(7,4) zsf[gn,56]=(7,3) zsf[gn,57]=(7,2) zsf[gn,58]=(7,1) zsf[gn,59]=(6,1) zsf[gn,60]=(5,1) zsf[gn,61]=(4,1) zsf[gn,62]=(3,1) zsf[gn,63]=(2,1) zsf[gn,64]=(1,1) zsf[gn,65]=(0,1) zsf[gn,66]=(0,2) zsf[gn,67]=(0,3) zsf[gn,68]=(0,4) zsf[gn,69]=(0,5) zsf[gn,70]=(0,6) zsf[gn,71]=(0,7) zsf[gn,72]=(0,8) zsf[gn,73]=(1,8) zsf[gn,74]=(2,8) zsf[gn,75]=(3,8) zsf[gn,76]=(4,8) zsf[gn,77]=(5,8) zsf[gn,78]=(6,8) zsf[gn,79]=(7,8) zsf[gn,80]=(8,8) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, forward ; xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: 0, forward ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 ; ; block 3: right, forward ; xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=-1 ; ; block 4: 0, forward ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 ; ; block 5: right, forward ; xslope_xfwd[5]=0 xslope_yfwd[5]=1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=0 yslope_xfwd[5]=-1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=-1 ; ; block 6: 0, forward ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 ; ; block 7: right, forward ; xslope_xfwd[7]=0 xslope_yfwd[7]=1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=7 xoffset[7]=0 yslope_xfwd[7]=-1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=-1 ; ; block 8: 0, forward ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=8 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 ; ; block 9: left, forward ; xslope_xfwd[9]=0 xslope_yfwd[9]=-1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=9 xoffset[9]=-1 yslope_xfwd[9]=1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=0 ; ; block 10: 0, forward ; xslope_xfwd[10]=1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=8 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=0 ; ; block 11: left, forward ; xslope_xfwd[11]=0 xslope_yfwd[11]=-1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=9 xoffset[11]=-1 yslope_xfwd[11]=1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=0 ; ; block 12: 0, forward ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=8 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=4 yoffset[12]=0 ; ; block 13: left, forward ; xslope_xfwd[13]=0 xslope_yfwd[13]=-1 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=9 xoffset[13]=-1 yslope_xfwd[13]=1 yslope_yfwd[13]=0 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=5 yoffset[13]=0 ; ; block 14: 0, forward ; xslope_xfwd[14]=1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=8 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=6 yoffset[14]=0 ; ; block 15: left, forward ; xslope_xfwd[15]=0 xslope_yfwd[15]=-1 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=9 xoffset[15]=-1 yslope_xfwd[15]=1 yslope_yfwd[15]=0 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=7 yoffset[15]=0 ; ; block 16: 180, forward ; xslope_xfwd[16]=-1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=8 xoffset[16]=-1 yslope_xfwd[16]=0 yslope_yfwd[16]=-1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=8 yoffset[16]=-1 ; ; block 17: left, forward ; xslope_xfwd[17]=0 xslope_yfwd[17]=-1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=7 xoffset[17]=-1 yslope_xfwd[17]=1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=7 yoffset[17]=0 ; ; block 18: 180, forward ; xslope_xfwd[18]=-1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=6 xoffset[18]=-1 yslope_xfwd[18]=0 yslope_yfwd[18]=-1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=8 yoffset[18]=-1 ; ; block 19: left, forward ; xslope_xfwd[19]=0 xslope_yfwd[19]=-1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=5 xoffset[19]=-1 yslope_xfwd[19]=1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=7 yoffset[19]=0 ; ; block 20: 180, forward ; xslope_xfwd[20]=-1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=4 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=-1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=8 yoffset[20]=-1 ; ; block 21: left, forward ; xslope_xfwd[21]=0 xslope_yfwd[21]=-1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=-1 yslope_xfwd[21]=1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=7 yoffset[21]=0 ; ; block 22: 180, forward ; xslope_xfwd[22]=-1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=2 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=-1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=8 yoffset[22]=-1 ; ; block 23: right, forward ; xslope_xfwd[23]=0 xslope_yfwd[23]=1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=1 xoffset[23]=0 yslope_xfwd[23]=-1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=7 yoffset[23]=-1 ; ; block 24: 180, forward ; xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=2 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=6 yoffset[24]=-1 ; ; block 25: right, forward ; xslope_xfwd[25]=0 xslope_yfwd[25]=1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=1 xoffset[25]=0 yslope_xfwd[25]=-1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=5 yoffset[25]=-1 ; ; block 26: 180, forward ; xslope_xfwd[26]=-1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=2 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=-1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=4 yoffset[26]=-1 ; ; block 27: right, forward ; xslope_xfwd[27]=0 xslope_yfwd[27]=1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=1 xoffset[27]=0 yslope_xfwd[27]=-1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=-1 ; ; block 28: 0, forward ; xslope_xfwd[28]=1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=2 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=2 yoffset[28]=0 ; ; block 29: right, forward ; xslope_xfwd[29]=0 xslope_yfwd[29]=1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=3 xoffset[29]=0 yslope_xfwd[29]=-1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=3 yoffset[29]=-1 ; ; block 30: 0, forward ; xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=4 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=2 yoffset[30]=0 ; ; block 31: right, forward ; xslope_xfwd[31]=0 xslope_yfwd[31]=1 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=5 xoffset[31]=0 yslope_xfwd[31]=-1 yslope_yfwd[31]=0 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=3 yoffset[31]=-1 ; ; block 32: 0, forward ; xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=6 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=2 yoffset[32]=0 ; ; block 33: left, forward ; xslope_xfwd[33]=0 xslope_yfwd[33]=-1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=7 xoffset[33]=-1 yslope_xfwd[33]=1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=3 yoffset[33]=0 ; ; block 34: 0, forward ; xslope_xfwd[34]=1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=6 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=4 yoffset[34]=0 ; ; block 35: left, forward ; xslope_xfwd[35]=0 xslope_yfwd[35]=-1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=7 xoffset[35]=-1 yslope_xfwd[35]=1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=5 yoffset[35]=0 ; ; block 36: 180, forward ; xslope_xfwd[36]=-1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=6 xoffset[36]=-1 yslope_xfwd[36]=0 yslope_yfwd[36]=-1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=6 yoffset[36]=-1 ; ; block 37: left, forward ; xslope_xfwd[37]=0 xslope_yfwd[37]=-1 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=5 xoffset[37]=-1 yslope_xfwd[37]=1 yslope_yfwd[37]=0 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=5 yoffset[37]=0 ; ; block 38: 180, forward ; xslope_xfwd[38]=-1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=4 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=-1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=-1 ; ; block 39: right, forward ; xslope_xfwd[39]=0 xslope_yfwd[39]=1 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=0 yslope_xfwd[39]=-1 yslope_yfwd[39]=0 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=5 yoffset[39]=-1 ; ; block 40: 0, forward ; xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=4 yoffset[40]=0 ; ; block 41: right, forward ; xslope_xfwd[41]=0 xslope_yfwd[41]=1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=-1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=-1 ; ; block 42: 180, forward ; xslope_xfwd[42]=-1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=6 xoffset[42]=-1 yslope_xfwd[42]=0 yslope_yfwd[42]=-1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=4 yoffset[42]=-1 ; ; block 43: left, forward ; xslope_xfwd[43]=0 xslope_yfwd[43]=-1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=5 xoffset[43]=-1 yslope_xfwd[43]=1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=3 yoffset[43]=0 ; ; block 44: 180, forward ; xslope_xfwd[44]=-1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=4 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=-1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=4 yoffset[44]=-1 ; ; block 45: left, forward ; xslope_xfwd[45]=0 xslope_yfwd[45]=-1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=3 xoffset[45]=-1 yslope_xfwd[45]=1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=3 yoffset[45]=0 ; ; block 46: 0, forward ; xslope_xfwd[46]=1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=2 xoffset[46]=0 yslope_xfwd[46]=0 yslope_yfwd[46]=1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=4 yoffset[46]=0 ; ; block 47: left, forward ; xslope_xfwd[47]=0 xslope_yfwd[47]=-1 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=3 xoffset[47]=-1 yslope_xfwd[47]=1 yslope_yfwd[47]=0 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=5 yoffset[47]=0 ; ; block 48: 0, forward ; xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=2 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=6 yoffset[48]=0 ; ; block 49: right, forward ; xslope_xfwd[49]=0 xslope_yfwd[49]=1 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=3 xoffset[49]=0 yslope_xfwd[49]=-1 yslope_yfwd[49]=0 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=7 yoffset[49]=-1 ; ; block 50: 0, forward ; xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=4 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=6 yoffset[50]=0 ; ; block 51: right, forward ; xslope_xfwd[51]=0 xslope_yfwd[51]=1 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=5 xoffset[51]=0 yslope_xfwd[51]=-1 yslope_yfwd[51]=0 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=7 yoffset[51]=-1 ; ; block 52: 0, forward ; xslope_xfwd[52]=1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=6 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=6 yoffset[52]=0 ; ; block 53: right, forward ; xslope_xfwd[53]=0 xslope_yfwd[53]=1 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=7 xoffset[53]=0 yslope_xfwd[53]=-1 yslope_yfwd[53]=0 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=7 yoffset[53]=-1 ; ; block 54: 180, forward ; xslope_xfwd[54]=-1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=8 xoffset[54]=-1 yslope_xfwd[54]=0 yslope_yfwd[54]=-1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=6 yoffset[54]=-1 ; ; block 55: right, forward ; xslope_xfwd[55]=0 xslope_yfwd[55]=1 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=7 xoffset[55]=0 yslope_xfwd[55]=-1 yslope_yfwd[55]=0 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=5 yoffset[55]=-1 ; ; block 56: 180, forward ; xslope_xfwd[56]=-1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=8 xoffset[56]=-1 yslope_xfwd[56]=0 yslope_yfwd[56]=-1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=4 yoffset[56]=-1 ; ; block 57: right, forward ; xslope_xfwd[57]=0 xslope_yfwd[57]=1 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=7 xoffset[57]=0 yslope_xfwd[57]=-1 yslope_yfwd[57]=0 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=3 yoffset[57]=-1 ; ; block 58: 180, forward ; xslope_xfwd[58]=-1 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=0 xslope_size[58]=8 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=-1 yslope_xbwd[58]=0 yslope_ybwd[58]=0 yslope_size[58]=2 yoffset[58]=-1 ; ; block 59: left, forward ; xslope_xfwd[59]=0 xslope_yfwd[59]=-1 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=7 xoffset[59]=-1 yslope_xfwd[59]=1 yslope_yfwd[59]=0 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=1 yoffset[59]=0 ; ; block 60: 180, forward ; xslope_xfwd[60]=-1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=6 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=-1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=2 yoffset[60]=-1 ; ; block 61: left, forward ; xslope_xfwd[61]=0 xslope_yfwd[61]=-1 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=5 xoffset[61]=-1 yslope_xfwd[61]=1 yslope_yfwd[61]=0 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=1 yoffset[61]=0 ; ; block 62: 180, forward ; xslope_xfwd[62]=-1 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=0 xslope_size[62]=4 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=-1 yslope_xbwd[62]=0 yslope_ybwd[62]=0 yslope_size[62]=2 yoffset[62]=-1 ; ; block 63: left, forward ; xslope_xfwd[63]=0 xslope_yfwd[63]=-1 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=3 xoffset[63]=-1 yslope_xfwd[63]=1 yslope_yfwd[63]=0 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=1 yoffset[63]=0 ; ; block 64: 180, forward ; xslope_xfwd[64]=-1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=2 xoffset[64]=-1 yslope_xfwd[64]=0 yslope_yfwd[64]=-1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=2 yoffset[64]=-1 ; ; block 65: left, forward ; xslope_xfwd[65]=0 xslope_yfwd[65]=-1 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=1 xoffset[65]=-1 yslope_xfwd[65]=1 yslope_yfwd[65]=0 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=1 yoffset[65]=0 ; ; block 66: 0, forward ; xslope_xfwd[66]=1 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=0 xslope_size[66]=0 xoffset[66]=0 yslope_xfwd[66]=0 yslope_yfwd[66]=1 yslope_xbwd[66]=0 yslope_ybwd[66]=0 yslope_size[66]=2 yoffset[66]=0 ; ; block 67: left, forward ; xslope_xfwd[67]=0 xslope_yfwd[67]=-1 xslope_xbwd[67]=0 xslope_ybwd[67]=0 xslope_size[67]=1 xoffset[67]=-1 yslope_xfwd[67]=1 yslope_yfwd[67]=0 yslope_xbwd[67]=0 yslope_ybwd[67]=0 yslope_size[67]=3 yoffset[67]=0 ; ; block 68: 0, forward ; xslope_xfwd[68]=1 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=0 xslope_size[68]=0 xoffset[68]=0 yslope_xfwd[68]=0 yslope_yfwd[68]=1 yslope_xbwd[68]=0 yslope_ybwd[68]=0 yslope_size[68]=4 yoffset[68]=0 ; ; block 69: left, forward ; xslope_xfwd[69]=0 xslope_yfwd[69]=-1 xslope_xbwd[69]=0 xslope_ybwd[69]=0 xslope_size[69]=1 xoffset[69]=-1 yslope_xfwd[69]=1 yslope_yfwd[69]=0 yslope_xbwd[69]=0 yslope_ybwd[69]=0 yslope_size[69]=5 yoffset[69]=0 ; ; block 70: 0, forward ; xslope_xfwd[70]=1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=0 xoffset[70]=0 yslope_xfwd[70]=0 yslope_yfwd[70]=1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=6 yoffset[70]=0 ; ; block 71: left, forward ; xslope_xfwd[71]=0 xslope_yfwd[71]=-1 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=1 xoffset[71]=-1 yslope_xfwd[71]=1 yslope_yfwd[71]=0 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=7 yoffset[71]=0 ; ; block 72: 0, forward ; xslope_xfwd[72]=1 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=0 xslope_size[72]=0 xoffset[72]=0 yslope_xfwd[72]=0 yslope_yfwd[72]=1 yslope_xbwd[72]=0 yslope_ybwd[72]=0 yslope_size[72]=8 yoffset[72]=0 ; ; block 73: right, forward ; xslope_xfwd[73]=0 xslope_yfwd[73]=1 xslope_xbwd[73]=0 xslope_ybwd[73]=0 xslope_size[73]=1 xoffset[73]=0 yslope_xfwd[73]=-1 yslope_yfwd[73]=0 yslope_xbwd[73]=0 yslope_ybwd[73]=0 yslope_size[73]=9 yoffset[73]=-1 ; ; block 74: 0, forward ; xslope_xfwd[74]=1 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=0 xslope_size[74]=2 xoffset[74]=0 yslope_xfwd[74]=0 yslope_yfwd[74]=1 yslope_xbwd[74]=0 yslope_ybwd[74]=0 yslope_size[74]=8 yoffset[74]=0 ; ; block 75: right, forward ; xslope_xfwd[75]=0 xslope_yfwd[75]=1 xslope_xbwd[75]=0 xslope_ybwd[75]=0 xslope_size[75]=3 xoffset[75]=0 yslope_xfwd[75]=-1 yslope_yfwd[75]=0 yslope_xbwd[75]=0 yslope_ybwd[75]=0 yslope_size[75]=9 yoffset[75]=-1 ; ; block 76: 0, forward ; xslope_xfwd[76]=1 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=0 xslope_size[76]=4 xoffset[76]=0 yslope_xfwd[76]=0 yslope_yfwd[76]=1 yslope_xbwd[76]=0 yslope_ybwd[76]=0 yslope_size[76]=8 yoffset[76]=0 ; ; block 77: right, forward ; xslope_xfwd[77]=0 xslope_yfwd[77]=1 xslope_xbwd[77]=0 xslope_ybwd[77]=0 xslope_size[77]=5 xoffset[77]=0 yslope_xfwd[77]=-1 yslope_yfwd[77]=0 yslope_xbwd[77]=0 yslope_ybwd[77]=0 yslope_size[77]=9 yoffset[77]=-1 ; ; block 78: right, forward ; xslope_xfwd[78]=1 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=0 xslope_size[78]=6 xoffset[78]=0 yslope_xfwd[78]=0 yslope_yfwd[78]=1 yslope_xbwd[78]=0 yslope_ybwd[78]=0 yslope_size[78]=8 yoffset[78]=0 ; ; block 79: right, forward ; xslope_xfwd[79]=0 xslope_yfwd[79]=1 xslope_xbwd[79]=0 xslope_ybwd[79]=0 xslope_size[79]=7 xoffset[79]=0 yslope_xfwd[79]=-1 yslope_yfwd[79]=0 yslope_xbwd[79]=0 yslope_ybwd[79]=0 yslope_size[79]=9 yoffset[79]=-1 ; ; block 80: 0, forward ; xslope_xfwd[80]=1 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=0 xslope_size[80]=8 xoffset[80]=0 yslope_xfwd[80]=0 yslope_yfwd[80]=1 yslope_xbwd[80]=0 yslope_ybwd[80]=0 yslope_size[80]=8 yoffset[80]=0 ; ; 9x9 cbf ; elseif(@block_type=="9x9 - cbf") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(2,2) zsf[gn,7]=(2,1) zsf[gn,8]=(2,0) zsf[gn,9]=(3,0) zsf[gn,10]=(3,1) zsf[gn,11]=(3,2) zsf[gn,12]=(3,3) zsf[gn,13]=(2,3) zsf[gn,14]=(1,3) zsf[gn,15]=(0,3) zsf[gn,16]=(0,4) zsf[gn,17]=(1,4) zsf[gn,18]=(2,4) zsf[gn,19]=(3,4) zsf[gn,20]=(4,4) zsf[gn,21]=(4,3) zsf[gn,22]=(4,2) zsf[gn,23]=(4,1) zsf[gn,24]=(4,0) zsf[gn,25]=(5,0) zsf[gn,26]=(5,1) zsf[gn,27]=(5,2) zsf[gn,28]=(5,3) zsf[gn,29]=(5,4) zsf[gn,30]=(5,5) zsf[gn,31]=(4,5) zsf[gn,32]=(3,5) zsf[gn,33]=(2,5) zsf[gn,34]=(1,5) zsf[gn,35]=(0,5) zsf[gn,36]=(0,6) zsf[gn,37]=(1,6) zsf[gn,38]=(2,6) zsf[gn,39]=(3,6) zsf[gn,40]=(4,6) zsf[gn,41]=(5,6) zsf[gn,42]=(6,6) zsf[gn,43]=(6,5) zsf[gn,44]=(6,4) zsf[gn,45]=(6,3) zsf[gn,46]=(6,2) zsf[gn,47]=(6,1) zsf[gn,48]=(6,0) zsf[gn,49]=(7,0) zsf[gn,50]=(7,1) zsf[gn,51]=(7,2) zsf[gn,52]=(7,3) zsf[gn,53]=(7,4) zsf[gn,54]=(7,5) zsf[gn,55]=(7,6) zsf[gn,56]=(7,7) zsf[gn,57]=(6,7) zsf[gn,58]=(5,7) zsf[gn,59]=(4,7) zsf[gn,60]=(3,7) zsf[gn,61]=(2,7) zsf[gn,62]=(1,7) zsf[gn,63]=(0,7) zsf[gn,64]=(0,8) zsf[gn,65]=(1,8) zsf[gn,66]=(2,8) zsf[gn,67]=(3,8) zsf[gn,68]=(4,8) zsf[gn,69]=(5,8) zsf[gn,70]=(6,8) zsf[gn,71]=(7,8) zsf[gn,72]=(8,8) zsf[gn,73]=(8,7) zsf[gn,74]=(8,6) zsf[gn,75]=(8,5) zsf[gn,76]=(8,4) zsf[gn,77]=(8,3) zsf[gn,78]=(8,2) zsf[gn,79]=(8,1) zsf[gn,80]=(8,0) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, backward ; xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: right, backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 ; ; block 3: 180, forward ; xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 ; ; block 4: 0, forward ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 ; ; block 5: 0, forward ; xslope_xfwd[5]=1 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=1 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=2 yoffset[5]=0 ; ; block 6: 0, forward ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=2 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 ; ; block 7: left, backward ; xslope_xfwd[7]=0 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=-1 xslope_size[7]=3 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=0 yslope_xbwd[7]=1 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=0 ; ; block 8: left, backward ; xslope_xfwd[8]=0 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=-1 xslope_size[8]=3 xoffset[8]=-1 yslope_xfwd[8]=0 yslope_yfwd[8]=0 yslope_xbwd[8]=1 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 ; ; block 9: right, backward ; xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=3 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=-1 ; ; block 10: right, backward ; xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=3 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=-1 ; ; block 11: right, backward ; xslope_xfwd[11]=0 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=1 xslope_size[11]=3 xoffset[11]=0 yslope_xfwd[11]=0 yslope_yfwd[11]=0 yslope_xbwd[11]=-1 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=-1 ; ; block 12: right, backward ; xslope_xfwd[12]=0 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=1 xslope_size[12]=3 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=0 yslope_xbwd[12]=-1 yslope_ybwd[12]=0 yslope_size[12]=4 yoffset[12]=-1 ; ; block 13: 180, forward ; xslope_xfwd[13]=-1 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=-1 yslope_xfwd[13]=0 yslope_yfwd[13]=-1 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=4 yoffset[13]=-1 ; ; block 14: 180, forward ; xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=2 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=4 yoffset[14]=-1 ; ; block 15: 180, forward ; xslope_xfwd[15]=-1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=1 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=-1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=4 yoffset[15]=-1 ; ; block 16: 0, forward ; xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=4 yoffset[16]=0 ; ; block 17: 0, forward ; xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=4 yoffset[17]=0 ; ; block 18: 0, forward ; xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=4 yoffset[18]=0 ; ; block 19: 0, forward ; xslope_xfwd[19]=1 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=3 xoffset[19]=0 yslope_xfwd[19]=0 yslope_yfwd[19]=1 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=4 yoffset[19]=0 ; ; block 20: 0, forward ; xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=4 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=4 yoffset[20]=0 ; ; block 21: left, backward ; xslope_xfwd[21]=0 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=-1 xslope_size[21]=5 xoffset[21]=-1 yslope_xfwd[21]=0 yslope_yfwd[21]=0 yslope_xbwd[21]=1 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=0 ; ; block 22: left, backward ; xslope_xfwd[22]=0 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=-1 xslope_size[22]=5 xoffset[22]=-1 yslope_xfwd[22]=0 yslope_yfwd[22]=0 yslope_xbwd[22]=1 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 ; ; block 23: left, backward ; xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=1 yoffset[23]=0 ; ; block 24: left, backward ; xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=-1 xslope_size[24]=5 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=1 yslope_ybwd[24]=0 yslope_size[24]=0 yoffset[24]=0 ; ; block 25: right, backward ; xslope_xfwd[25]=0 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=1 xslope_size[25]=5 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=0 yslope_xbwd[25]=-1 yslope_ybwd[25]=0 yslope_size[25]=1 yoffset[25]=-1 ; ; block 26: right, backward ; xslope_xfwd[26]=0 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=1 xslope_size[26]=5 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=0 yslope_xbwd[26]=-1 yslope_ybwd[26]=0 yslope_size[26]=2 yoffset[26]=-1 ; ; block 27: right, backward ; xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=1 xslope_size[27]=5 xoffset[27]=0 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=-1 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=-1 ; ; block 28: right, backward ; xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=1 xslope_size[28]=5 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=-1 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=-1 ; ; block 29: right, backward ; xslope_xfwd[29]=0 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=1 xslope_size[29]=5 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=0 yslope_xbwd[29]=-1 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=-1 ; ; block 30: right, backward ; xslope_xfwd[30]=0 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=1 xslope_size[30]=5 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=0 yslope_xbwd[30]=-1 yslope_ybwd[30]=0 yslope_size[30]=6 yoffset[30]=-1 ; ; block 31: 180, forward ; xslope_xfwd[31]=-1 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=5 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=-1 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=6 yoffset[31]=-1 ; ; block 32: 180, forward ; xslope_xfwd[32]=-1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=4 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=-1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=6 yoffset[32]=-1 ; ; block 33: 180, forward ; xslope_xfwd[33]=-1 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=3 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=-1 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=6 yoffset[33]=-1 ; ; block 34: 180, forward ; xslope_xfwd[34]=-1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=2 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=-1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=6 yoffset[34]=-1 ; ; block 35: 180, forward ; xslope_xfwd[35]=-1 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=1 xoffset[35]=-1 yslope_xfwd[35]=0 yslope_yfwd[35]=-1 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=6 yoffset[35]=-1 ; ; block 36: 0, forward ; xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=0 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=6 yoffset[36]=0 ; ; block 37: 0, forward ; xslope_xfwd[37]=1 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=1 xoffset[37]=0 yslope_xfwd[37]=0 yslope_yfwd[37]=1 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=6 yoffset[37]=0 ; ; block 38: 0, forward ; xslope_xfwd[38]=1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=2 xoffset[38]=0 yslope_xfwd[38]=0 yslope_yfwd[38]=1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=0 ; ; block 39: 0, forward ; xslope_xfwd[39]=1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=6 yoffset[39]=0 ; ; block 40: 0, forward ; xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=6 yoffset[40]=0 ; ; block 41: 0, forward ; xslope_xfwd[41]=1 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=0 yslope_yfwd[41]=1 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=6 yoffset[41]=0 ; ; block 42: 0, forward ; xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=6 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 ; ; block 43: left, backward ; xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=-1 xslope_size[43]=7 xoffset[43]=-1 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=1 yslope_ybwd[43]=0 yslope_size[43]=5 yoffset[43]=0 ; ; block 44: left, backward ; xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=-1 xslope_size[44]=7 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=1 yslope_ybwd[44]=0 yslope_size[44]=4 yoffset[44]=0 ; ; block 45: left, backward ; xslope_xfwd[45]=0 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=-1 xslope_size[45]=7 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=0 yslope_xbwd[45]=1 yslope_ybwd[45]=0 yslope_size[45]=3 yoffset[45]=0 ; ; block 46: left, backward ; xslope_xfwd[46]=0 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=-1 xslope_size[46]=7 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=0 yslope_xbwd[46]=1 yslope_ybwd[46]=0 yslope_size[46]=2 yoffset[46]=0 ; ; block 47: left, backward ; xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=-1 xslope_size[47]=7 xoffset[47]=-1 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=1 yslope_ybwd[47]=0 yslope_size[47]=1 yoffset[47]=0 ; ; block 48: left, backward ; xslope_xfwd[48]=0 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=-1 xslope_size[48]=7 xoffset[48]=-1 yslope_xfwd[48]=0 yslope_yfwd[48]=0 yslope_xbwd[48]=1 yslope_ybwd[48]=0 yslope_size[48]=0 yoffset[48]=0 ; ; block 49: right, backward ; xslope_xfwd[49]=0 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=1 xslope_size[49]=7 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=0 yslope_xbwd[49]=-1 yslope_ybwd[49]=0 yslope_size[49]=1 yoffset[49]=-1 ; ; block 50: right, backward ; xslope_xfwd[50]=0 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=1 xslope_size[50]=7 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=0 yslope_xbwd[50]=-1 yslope_ybwd[50]=0 yslope_size[50]=2 yoffset[50]=-1 ; ; block 51: right, backward ; xslope_xfwd[51]=0 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=1 xslope_size[51]=7 xoffset[51]=0 yslope_xfwd[51]=0 yslope_yfwd[51]=0 yslope_xbwd[51]=-1 yslope_ybwd[51]=0 yslope_size[51]=3 yoffset[51]=-1 ; ; block 52: right, backward ; xslope_xfwd[52]=0 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=1 xslope_size[52]=7 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=0 yslope_xbwd[52]=-1 yslope_ybwd[52]=0 yslope_size[52]=4 yoffset[52]=-1 ; ; block 53: right, backward ; xslope_xfwd[53]=0 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=1 xslope_size[53]=7 xoffset[53]=0 yslope_xfwd[53]=0 yslope_yfwd[53]=0 yslope_xbwd[53]=-1 yslope_ybwd[53]=0 yslope_size[53]=5 yoffset[53]=-1 ; ; block 54: right, backward ; xslope_xfwd[54]=0 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=1 xslope_size[54]=7 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=0 yslope_xbwd[54]=-1 yslope_ybwd[54]=0 yslope_size[54]=6 yoffset[54]=-1 ; ; block 55: right, backward ; xslope_xfwd[55]=0 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=1 xslope_size[55]=7 xoffset[55]=0 yslope_xfwd[55]=0 yslope_yfwd[55]=0 yslope_xbwd[55]=-1 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=-1 ; ; block 56: right, backward ; xslope_xfwd[56]=0 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=1 xslope_size[56]=7 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=0 yslope_xbwd[56]=-1 yslope_ybwd[56]=0 yslope_size[56]=8 yoffset[56]=-1 ; ; block 57: 180, forward ; xslope_xfwd[57]=-1 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=7 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=-1 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=8 yoffset[57]=-1 ; ; block 58: 180, forward ; xslope_xfwd[58]=-1 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=0 xslope_size[58]=6 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=-1 yslope_xbwd[58]=0 yslope_ybwd[58]=0 yslope_size[58]=8 yoffset[58]=-1 ; ; block 59: 180, forward ; xslope_xfwd[59]=-1 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=5 xoffset[59]=-1 yslope_xfwd[59]=0 yslope_yfwd[59]=-1 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=8 yoffset[59]=-1 ; ; block 60: 180, forward ; xslope_xfwd[60]=-1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=4 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=-1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=8 yoffset[60]=-1 ; ; block 61: 180, forward ; xslope_xfwd[61]=-1 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=3 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=-1 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=8 yoffset[61]=-1 ; ; block 62: 180, forward ; xslope_xfwd[62]=-1 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=0 xslope_size[62]=2 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=-1 yslope_xbwd[62]=0 yslope_ybwd[62]=0 yslope_size[62]=8 yoffset[62]=-1 ; ; block 63: 180, forward ; xslope_xfwd[63]=-1 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=1 xoffset[63]=-1 yslope_xfwd[63]=0 yslope_yfwd[63]=-1 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=8 yoffset[63]=-1 ; ; block 64: 0, forward ; xslope_xfwd[64]=1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=0 xoffset[64]=0 yslope_xfwd[64]=0 yslope_yfwd[64]=1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=8 yoffset[64]=0 ; ; block 65: 0, forward ; xslope_xfwd[65]=1 xslope_yfwd[65]=0 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=1 xoffset[65]=0 yslope_xfwd[65]=0 yslope_yfwd[65]=1 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=8 yoffset[65]=0 ; ; block 66: 0, forward ; xslope_xfwd[66]=1 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=0 xslope_size[66]=2 xoffset[66]=0 yslope_xfwd[66]=0 yslope_yfwd[66]=1 yslope_xbwd[66]=0 yslope_ybwd[66]=0 yslope_size[66]=8 yoffset[66]=0 ; ; block 67: 0, forward ; xslope_xfwd[67]=1 xslope_yfwd[67]=0 xslope_xbwd[67]=0 xslope_ybwd[67]=0 xslope_size[67]=3 xoffset[67]=0 yslope_xfwd[67]=0 yslope_yfwd[67]=1 yslope_xbwd[67]=0 yslope_ybwd[67]=0 yslope_size[67]=8 yoffset[67]=0 ; ; block 68: 0, forward ; xslope_xfwd[68]=1 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=0 xslope_size[68]=4 xoffset[68]=0 yslope_xfwd[68]=0 yslope_yfwd[68]=1 yslope_xbwd[68]=0 yslope_ybwd[68]=0 yslope_size[68]=8 yoffset[68]=0 ; ; block 69: 0, forward ; xslope_xfwd[69]=1 xslope_yfwd[69]=0 xslope_xbwd[69]=0 xslope_ybwd[69]=0 xslope_size[69]=5 xoffset[69]=0 yslope_xfwd[69]=0 yslope_yfwd[69]=1 yslope_xbwd[69]=0 yslope_ybwd[69]=0 yslope_size[69]=8 yoffset[69]=0 ; ; block 70: 0, forward ; xslope_xfwd[70]=1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=6 xoffset[70]=0 yslope_xfwd[70]=0 yslope_yfwd[70]=1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=8 yoffset[70]=0 ; ; block 71: 0, forward ; xslope_xfwd[71]=1 xslope_yfwd[71]=0 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=7 xoffset[71]=0 yslope_xfwd[71]=0 yslope_yfwd[71]=1 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=8 yoffset[71]=0 ; ; block 72: 0, forward ; xslope_xfwd[72]=1 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=0 xslope_size[72]=8 xoffset[72]=0 yslope_xfwd[72]=0 yslope_yfwd[72]=1 yslope_xbwd[72]=0 yslope_ybwd[72]=0 yslope_size[72]=8 yoffset[72]=0 ; ; block 73: left, backward ; xslope_xfwd[73]=0 xslope_yfwd[73]=0 xslope_xbwd[73]=0 xslope_ybwd[73]=-1 xslope_size[73]=9 xoffset[73]=-1 yslope_xfwd[73]=0 yslope_yfwd[73]=0 yslope_xbwd[73]=1 yslope_ybwd[73]=0 yslope_size[73]=7 yoffset[73]=0 ; ; block 74: left, backward ; xslope_xfwd[74]=0 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=-1 xslope_size[74]=9 xoffset[74]=-1 yslope_xfwd[74]=0 yslope_yfwd[74]=0 yslope_xbwd[74]=1 yslope_ybwd[74]=0 yslope_size[74]=6 yoffset[74]=0 ; ; block 75: left, backward ; xslope_xfwd[75]=0 xslope_yfwd[75]=0 xslope_xbwd[75]=0 xslope_ybwd[75]=-1 xslope_size[75]=9 xoffset[75]=-1 yslope_xfwd[75]=0 yslope_yfwd[75]=0 yslope_xbwd[75]=1 yslope_ybwd[75]=0 yslope_size[75]=5 yoffset[75]=0 ; ; block 76: left, backward ; xslope_xfwd[76]=0 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=-1 xslope_size[76]=9 xoffset[76]=-1 yslope_xfwd[76]=0 yslope_yfwd[76]=0 yslope_xbwd[76]=1 yslope_ybwd[76]=0 yslope_size[76]=4 yoffset[76]=0 ; ; block 77: left, backward ; xslope_xfwd[77]=0 xslope_yfwd[77]=0 xslope_xbwd[77]=0 xslope_ybwd[77]=-1 xslope_size[77]=9 xoffset[77]=-1 yslope_xfwd[77]=0 yslope_yfwd[77]=0 yslope_xbwd[77]=1 yslope_ybwd[77]=0 yslope_size[77]=3 yoffset[77]=0 ; ; block 78: left, backward ; xslope_xfwd[78]=0 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=-1 xslope_size[78]=9 xoffset[78]=-1 yslope_xfwd[78]=0 yslope_yfwd[78]=0 yslope_xbwd[78]=1 yslope_ybwd[78]=0 yslope_size[78]=2 yoffset[78]=0 ; ; block 79: left, backward ; xslope_xfwd[79]=0 xslope_yfwd[79]=0 xslope_xbwd[79]=0 xslope_ybwd[79]=-1 xslope_size[79]=9 xoffset[79]=-1 yslope_xfwd[79]=0 yslope_yfwd[79]=0 yslope_xbwd[79]=1 yslope_ybwd[79]=0 yslope_size[79]=1 yoffset[79]=0 ; ; block 80: left, backward ; xslope_xfwd[80]=0 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=-1 xslope_size[80]=9 xoffset[80]=-1 yslope_xfwd[80]=0 yslope_yfwd[80]=0 yslope_xbwd[80]=1 yslope_ybwd[80]=0 yslope_size[80]=0 yoffset[80]=0 ; ; 9x9 diagonal a ; elseif(@block_type=="9x9 - diag a") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(2,1) zsf[gn,4]=(1,1) zsf[gn,5]=(0,1) zsf[gn,6]=(0,2) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(1,3) zsf[gn,11]=(1,2) zsf[gn,12]=(2,2) zsf[gn,13]=(3,2) zsf[gn,14]=(3,1) zsf[gn,15]=(3,0) zsf[gn,16]=(4,0) zsf[gn,17]=(5,0) zsf[gn,18]=(6,0) zsf[gn,19]=(6,1) zsf[gn,20]=(5,1) zsf[gn,21]=(4,1) zsf[gn,22]=(4,2) zsf[gn,23]=(4,3) zsf[gn,24]=(3,3) zsf[gn,25]=(2,3) zsf[gn,26]=(2,4) zsf[gn,27]=(2,5) zsf[gn,28]=(1,5) zsf[gn,29]=(0,5) zsf[gn,30]=(0,6) zsf[gn,31]=(0,7) zsf[gn,32]=(0,8) zsf[gn,33]=(1,8) zsf[gn,34]=(1,7) zsf[gn,35]=(1,6) zsf[gn,36]=(2,6) zsf[gn,37]=(3,6) zsf[gn,38]=(3,5) zsf[gn,39]=(3,4) zsf[gn,40]=(4,4) zsf[gn,41]=(5,4) zsf[gn,42]=(5,3) zsf[gn,43]=(5,2) zsf[gn,44]=(6,2) zsf[gn,45]=(7,2) zsf[gn,46]=(7,1) zsf[gn,47]=(7,0) zsf[gn,48]=(8,0) zsf[gn,49]=(8,1) zsf[gn,50]=(8,2) zsf[gn,51]=(8,3) zsf[gn,52]=(7,3) zsf[gn,53]=(6,3) zsf[gn,54]=(6,4) zsf[gn,55]=(6,5) zsf[gn,56]=(5,5) zsf[gn,57]=(4,5) zsf[gn,58]=(4,6) zsf[gn,59]=(4,7) zsf[gn,60]=(3,7) zsf[gn,61]=(2,7) zsf[gn,62]=(2,8) zsf[gn,63]=(3,8) zsf[gn,64]=(4,8) zsf[gn,65]=(5,8) zsf[gn,66]=(5,7) zsf[gn,67]=(5,6) zsf[gn,68]=(6,6) zsf[gn,69]=(7,6) zsf[gn,70]=(7,5) zsf[gn,71]=(7,4) zsf[gn,72]=(8,4) zsf[gn,73]=(8,5) zsf[gn,74]=(8,6) zsf[gn,75]=(8,7) zsf[gn,76]=(7,7) zsf[gn,77]=(6,7) zsf[gn,78]=(6,8) zsf[gn,79]=(7,8) zsf[gn,80]=(8,8) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, forward ; xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: 0, forward ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 ; ; block 3: left, forward ; xslope_xfwd[3]=0 xslope_yfwd[3]=-1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=-1 yslope_xfwd[3]=1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=0 ; ; block 4: 180, forward ; xslope_xfwd[4]=-1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=2 xoffset[4]=-1 yslope_xfwd[4]=0 yslope_yfwd[4]=-1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=-1 ; ; block 5: left, forward ; xslope_xfwd[5]=0 xslope_yfwd[5]=-1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=1 xoffset[5]=-1 yslope_xfwd[5]=1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=0 ; ; block 6: 0, forward ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=0 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=2 yoffset[6]=0 ; ; block 7: left, forward ; xslope_xfwd[7]=0 xslope_yfwd[7]=-1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=3 yoffset[7]=0 ; ; block 8: 0, forward ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 ; ; block 9: right, forward ; xslope_xfwd[9]=0 xslope_yfwd[9]=1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=-1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 ; ; block 10: 180, forward ; xslope_xfwd[10]=-1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=2 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=-1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=4 yoffset[10]=-1 ; ; block 11: right, forward ; xslope_xfwd[11]=0 xslope_yfwd[11]=1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=1 xoffset[11]=0 yslope_xfwd[11]=-1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=3 yoffset[11]=-1 ; ; block 12: 0, forward ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=2 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=0 ; ; block 13: right, forward ; xslope_xfwd[13]=0 xslope_yfwd[13]=1 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=3 xoffset[13]=0 yslope_xfwd[13]=-1 yslope_yfwd[13]=0 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=3 yoffset[13]=-1 ; ; block 14: 180, forward ; xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=-1 ; ; block 15: right, forward ; xslope_xfwd[15]=0 xslope_yfwd[15]=1 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=3 xoffset[15]=0 yslope_xfwd[15]=-1 yslope_yfwd[15]=0 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=1 yoffset[15]=-1 ; ; block 16: 0, forward ; xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=4 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=0 yoffset[16]=0 ; ; block 17: right, forward ; xslope_xfwd[17]=0 xslope_yfwd[17]=1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=5 xoffset[17]=0 yslope_xfwd[17]=-1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=1 yoffset[17]=-1 ; ; block 18: 0, forward ; xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=6 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=0 yoffset[18]=0 ; ; block 19: left, forward ; xslope_xfwd[19]=0 xslope_yfwd[19]=-1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=7 xoffset[19]=-1 yslope_xfwd[19]=1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=1 yoffset[19]=0 ; ; block 20: 180, forward ; xslope_xfwd[20]=-1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=6 xoffset[20]=-1 yslope_xfwd[20]=0 yslope_yfwd[20]=-1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=-1 ; ; block 21: left, forward ; xslope_xfwd[21]=0 xslope_yfwd[21]=-1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=5 xoffset[21]=-1 yslope_xfwd[21]=1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=1 yoffset[21]=0 ; ; block 22: 0, forward ; xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 ; ; block 23: left, forward ; xslope_xfwd[23]=0 xslope_yfwd[23]=-1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=3 yoffset[23]=0 ; ; block 24: 180, forward ; xslope_xfwd[24]=-1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=4 xoffset[24]=-1 yslope_xfwd[24]=0 yslope_yfwd[24]=-1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=4 yoffset[24]=-1 ; ; block 25: left, forward ; xslope_xfwd[25]=0 xslope_yfwd[25]=-1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=3 xoffset[25]=-1 yslope_xfwd[25]=1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=0 ; ; block 26: 0, forward ; xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=2 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=4 yoffset[26]=0 ; ; block 27: left, forward ; xslope_xfwd[27]=0 xslope_yfwd[27]=-1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=3 xoffset[27]=-1 yslope_xfwd[27]=1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=5 yoffset[27]=0 ; ; block 28: 180, forward ; xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=2 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=6 yoffset[28]=-1 ; ; block 29: left, forward ; xslope_xfwd[29]=0 xslope_yfwd[29]=-1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=1 xoffset[29]=-1 yslope_xfwd[29]=1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=5 yoffset[29]=0 ; ; block 30: 0, forward ; xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=0 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=6 yoffset[30]=0 ; ; block 31: left, forward ; xslope_xfwd[31]=0 xslope_yfwd[31]=-1 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=1 xoffset[31]=-1 yslope_xfwd[31]=1 yslope_yfwd[31]=0 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=7 yoffset[31]=0 ; ; block 32: 0, forward ; xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=0 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=8 yoffset[32]=0 ; ; block 33: right, forward ; xslope_xfwd[33]=0 xslope_yfwd[33]=1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=1 xoffset[33]=0 yslope_xfwd[33]=-1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=9 yoffset[33]=-1 ; ; block 34: 180, forward ; xslope_xfwd[34]=-1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=2 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=-1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=8 yoffset[34]=-1 ; ; block 35: right, forward ; xslope_xfwd[35]=0 xslope_yfwd[35]=1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=1 xoffset[35]=0 yslope_xfwd[35]=-1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=7 yoffset[35]=-1 ; ; block 36: 0, forward ; xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=2 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=6 yoffset[36]=0 ; ; block 37: right, forward ; xslope_xfwd[37]=0 xslope_yfwd[37]=1 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=3 xoffset[37]=0 yslope_xfwd[37]=-1 yslope_yfwd[37]=0 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=7 yoffset[37]=-1 ; ; block 38: 180, forward ; xslope_xfwd[38]=-1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=4 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=-1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=-1 ; ; block 39: right, forward ; xslope_xfwd[39]=0 xslope_yfwd[39]=1 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=0 yslope_xfwd[39]=-1 yslope_yfwd[39]=0 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=5 yoffset[39]=-1 ; ; block 40: 0, forward ; xslope_xfwd[40]=1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=4 xoffset[40]=0 yslope_xfwd[40]=0 yslope_yfwd[40]=1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=4 yoffset[40]=0 ; ; block 41: right, forward ; xslope_xfwd[41]=0 xslope_yfwd[41]=1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=5 xoffset[41]=0 yslope_xfwd[41]=-1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=-1 ; ; block 42: 180, forward ; xslope_xfwd[42]=-1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=6 xoffset[42]=-1 yslope_xfwd[42]=0 yslope_yfwd[42]=-1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=4 yoffset[42]=-1 ; ; block 43: right, forward ; xslope_xfwd[43]=0 xslope_yfwd[43]=1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=5 xoffset[43]=0 yslope_xfwd[43]=-1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=3 yoffset[43]=-1 ; ; block 44: 0, forward ; xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=6 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=2 yoffset[44]=0 ; ; block 45: right, forward ; xslope_xfwd[45]=0 xslope_yfwd[45]=1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=7 xoffset[45]=0 yslope_xfwd[45]=-1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=3 yoffset[45]=-1 ; ; block 46: 180, forward ; xslope_xfwd[46]=-1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=8 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=-1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=2 yoffset[46]=-1 ; ; block 47: right, forward ; xslope_xfwd[47]=0 xslope_yfwd[47]=1 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=7 xoffset[47]=0 yslope_xfwd[47]=-1 yslope_yfwd[47]=0 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=1 yoffset[47]=-1 ; ; block 48: 0, forward ; xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=8 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=0 yoffset[48]=0 ; ; block 49: left, forward ; xslope_xfwd[49]=0 xslope_yfwd[49]=-1 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=9 xoffset[49]=-1 yslope_xfwd[49]=1 yslope_yfwd[49]=0 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=1 yoffset[49]=0 ; ; block 50: 0, forward ; xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=8 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=2 yoffset[50]=0 ; ; block 51: left, forward ; xslope_xfwd[51]=0 xslope_yfwd[51]=-1 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=9 xoffset[51]=-1 yslope_xfwd[51]=1 yslope_yfwd[51]=0 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=3 yoffset[51]=0 ; ; block 52: 180, forward ; xslope_xfwd[52]=-1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=8 xoffset[52]=-1 yslope_xfwd[52]=0 yslope_yfwd[52]=-1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=4 yoffset[52]=-1 ; ; block 53: left, forward ; xslope_xfwd[53]=0 xslope_yfwd[53]=-1 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=7 xoffset[53]=-1 yslope_xfwd[53]=1 yslope_yfwd[53]=0 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=3 yoffset[53]=0 ; ; block 54: 0, forward ; xslope_xfwd[54]=1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=6 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=4 yoffset[54]=0 ; ; block 55: left, forward ; xslope_xfwd[55]=0 xslope_yfwd[55]=-1 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=7 xoffset[55]=-1 yslope_xfwd[55]=1 yslope_yfwd[55]=0 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=5 yoffset[55]=0 ; ; block 56: 180, forward ; xslope_xfwd[56]=-1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=6 xoffset[56]=-1 yslope_xfwd[56]=0 yslope_yfwd[56]=-1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=6 yoffset[56]=-1 ; ; block 57: left, forward ; xslope_xfwd[57]=0 xslope_yfwd[57]=-1 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=5 xoffset[57]=-1 yslope_xfwd[57]=1 yslope_yfwd[57]=0 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=5 yoffset[57]=0 ; ; block 58: 0, forward ; xslope_xfwd[58]=1 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=0 xslope_size[58]=4 xoffset[58]=0 yslope_xfwd[58]=0 yslope_yfwd[58]=1 yslope_xbwd[58]=0 yslope_ybwd[58]=0 yslope_size[58]=6 yoffset[58]=0 ; ; block 59: left, forward ; xslope_xfwd[59]=0 xslope_yfwd[59]=-1 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=5 xoffset[59]=-1 yslope_xfwd[59]=1 yslope_yfwd[59]=0 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=7 yoffset[59]=0 ; ; block 60: 180, forward ; xslope_xfwd[60]=-1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=4 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=-1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=8 yoffset[60]=-1 ; ; block 61: left, forward ; xslope_xfwd[61]=0 xslope_yfwd[61]=-1 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=3 xoffset[61]=-1 yslope_xfwd[61]=1 yslope_yfwd[61]=0 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=7 yoffset[61]=0 ; ; block 62: 0, forward ; xslope_xfwd[62]=1 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=0 xslope_size[62]=2 xoffset[62]=0 yslope_xfwd[62]=0 yslope_yfwd[62]=1 yslope_xbwd[62]=0 yslope_ybwd[62]=0 yslope_size[62]=8 yoffset[62]=0 ; ; block 63: right, forward ; xslope_xfwd[63]=0 xslope_yfwd[63]=1 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=3 xoffset[63]=0 yslope_xfwd[63]=-1 yslope_yfwd[63]=0 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=9 yoffset[63]=-1 ; ; block 64: 0, forward ; xslope_xfwd[64]=1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=4 xoffset[64]=0 yslope_xfwd[64]=0 yslope_yfwd[64]=1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=8 yoffset[64]=0 ; ; block 65: right, forward ; xslope_xfwd[65]=0 xslope_yfwd[65]=1 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=5 xoffset[65]=0 yslope_xfwd[65]=-1 yslope_yfwd[65]=0 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=9 yoffset[65]=-1 ; ; block 66: 180, forward ; xslope_xfwd[66]=-1 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=0 xslope_size[66]=6 xoffset[66]=-1 yslope_xfwd[66]=0 yslope_yfwd[66]=-1 yslope_xbwd[66]=0 yslope_ybwd[66]=0 yslope_size[66]=8 yoffset[66]=-1 ; ; block 67: right, forward ; xslope_xfwd[67]=0 xslope_yfwd[67]=1 xslope_xbwd[67]=0 xslope_ybwd[67]=0 xslope_size[67]=5 xoffset[67]=0 yslope_xfwd[67]=-1 yslope_yfwd[67]=0 yslope_xbwd[67]=0 yslope_ybwd[67]=0 yslope_size[67]=7 yoffset[67]=-1 ; ; block 68: 0, forward ; xslope_xfwd[68]=1 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=0 xslope_size[68]=6 xoffset[68]=0 yslope_xfwd[68]=0 yslope_yfwd[68]=1 yslope_xbwd[68]=0 yslope_ybwd[68]=0 yslope_size[68]=6 yoffset[68]=0 ; ; block 69: right, forward ; xslope_xfwd[69]=0 xslope_yfwd[69]=1 xslope_xbwd[69]=0 xslope_ybwd[69]=0 xslope_size[69]=7 xoffset[69]=0 yslope_xfwd[69]=-1 yslope_yfwd[69]=0 yslope_xbwd[69]=0 yslope_ybwd[69]=0 yslope_size[69]=7 yoffset[69]=-1 ; ; block 70: 180, forward ; xslope_xfwd[70]=-1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=8 xoffset[70]=-1 yslope_xfwd[70]=0 yslope_yfwd[70]=-1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=6 yoffset[70]=-1 ; ; block 71: right, forward ; xslope_xfwd[71]=0 xslope_yfwd[71]=1 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=7 xoffset[71]=0 yslope_xfwd[71]=-1 yslope_yfwd[71]=0 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=5 yoffset[71]=-1 ; ; block 72: 0, forward ; xslope_xfwd[72]=1 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=0 xslope_size[72]=8 xoffset[72]=0 yslope_xfwd[72]=0 yslope_yfwd[72]=1 yslope_xbwd[72]=0 yslope_ybwd[72]=0 yslope_size[72]=4 yoffset[72]=0 ; ; block 73: left, forward ; xslope_xfwd[73]=0 xslope_yfwd[73]=-1 xslope_xbwd[73]=0 xslope_ybwd[73]=0 xslope_size[73]=9 xoffset[73]=-1 yslope_xfwd[73]=1 yslope_yfwd[73]=0 yslope_xbwd[73]=0 yslope_ybwd[73]=0 yslope_size[73]=5 yoffset[73]=0 ; ; block 74: 0, forward ; xslope_xfwd[74]=1 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=0 xslope_size[74]=8 xoffset[74]=0 yslope_xfwd[74]=0 yslope_yfwd[74]=1 yslope_xbwd[74]=0 yslope_ybwd[74]=0 yslope_size[74]=6 yoffset[74]=0 ; ; block 75: left, forward ; xslope_xfwd[75]=0 xslope_yfwd[75]=-1 xslope_xbwd[75]=0 xslope_ybwd[75]=0 xslope_size[75]=9 xoffset[75]=-1 yslope_xfwd[75]=1 yslope_yfwd[75]=0 yslope_xbwd[75]=0 yslope_ybwd[75]=0 yslope_size[75]=7 yoffset[75]=0 ; ; block 76: 180, forward ; xslope_xfwd[76]=-1 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=0 xslope_size[76]=8 xoffset[76]=-1 yslope_xfwd[76]=0 yslope_yfwd[76]=-1 yslope_xbwd[76]=0 yslope_ybwd[76]=0 yslope_size[76]=8 yoffset[76]=-1 ; ; block 77: left, forward ; xslope_xfwd[77]=0 xslope_yfwd[77]=-1 xslope_xbwd[77]=0 xslope_ybwd[77]=0 xslope_size[77]=7 xoffset[77]=-1 yslope_xfwd[77]=1 yslope_yfwd[77]=0 yslope_xbwd[77]=0 yslope_ybwd[77]=0 yslope_size[77]=7 yoffset[77]=0 ; ; block 78: 0, forward ; xslope_xfwd[78]=1 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=0 xslope_size[78]=6 xoffset[78]=0 yslope_xfwd[78]=0 yslope_yfwd[78]=1 yslope_xbwd[78]=0 yslope_ybwd[78]=0 yslope_size[78]=8 yoffset[78]=0 ; ; block 79: right, forward ; xslope_xfwd[79]=0 xslope_yfwd[79]=1 xslope_xbwd[79]=0 xslope_ybwd[79]=0 xslope_size[79]=7 xoffset[79]=0 yslope_xfwd[79]=-1 yslope_yfwd[79]=0 yslope_xbwd[79]=0 yslope_ybwd[79]=0 yslope_size[79]=9 yoffset[79]=-1 ; ; block 80: 0, forward ; xslope_xfwd[80]=1 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=0 xslope_size[80]=8 xoffset[80]=0 yslope_xfwd[80]=0 yslope_yfwd[80]=1 yslope_xbwd[80]=0 yslope_ybwd[80]=0 yslope_size[80]=8 yoffset[80]=0 ; ; 9x9 diagonal b ; elseif(@block_type=="9x9 - diag b") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(2,0) zsf[gn,3]=(3,0) zsf[gn,4]=(4,0) zsf[gn,5]=(5,0) zsf[gn,6]=(6,0) zsf[gn,7]=(7,0) zsf[gn,8]=(8,0) zsf[gn,9]=(8,1) zsf[gn,10]=(7,1) zsf[gn,11]=(6,1) zsf[gn,12]=(5,1) zsf[gn,13]=(4,1) zsf[gn,14]=(3,1) zsf[gn,15]=(2,1) zsf[gn,16]=(1,1) zsf[gn,17]=(0,1) zsf[gn,18]=(0,2) zsf[gn,19]=(1,2) zsf[gn,20]=(2,2) zsf[gn,21]=(3,2) zsf[gn,22]=(4,2) zsf[gn,23]=(5,2) zsf[gn,24]=(6,2) zsf[gn,25]=(6,3) zsf[gn,26]=(5,3) zsf[gn,27]=(4,3) zsf[gn,28]=(3,3) zsf[gn,29]=(2,3) zsf[gn,30]=(1,3) zsf[gn,31]=(0,3) zsf[gn,32]=(0,4) zsf[gn,33]=(1,4) zsf[gn,34]=(2,4) zsf[gn,35]=(3,4) zsf[gn,36]=(4,4) zsf[gn,37]=(4,5) zsf[gn,38]=(3,5) zsf[gn,39]=(2,5) zsf[gn,40]=(1,5) zsf[gn,41]=(0,5) zsf[gn,42]=(0,6) zsf[gn,43]=(1,6) zsf[gn,44]=(2,6) zsf[gn,45]=(2,7) zsf[gn,46]=(1,7) zsf[gn,47]=(0,7) zsf[gn,48]=(0,8) zsf[gn,49]=(1,8) zsf[gn,50]=(2,8) zsf[gn,51]=(3,8) zsf[gn,52]=(3,7) zsf[gn,53]=(3,6) zsf[gn,54]=(4,6) zsf[gn,55]=(4,7) zsf[gn,56]=(4,8) zsf[gn,57]=(5,8) zsf[gn,58]=(5,7) zsf[gn,59]=(5,6) zsf[gn,60]=(5,5) zsf[gn,61]=(5,4) zsf[gn,62]=(6,4) zsf[gn,63]=(6,5) zsf[gn,64]=(6,6) zsf[gn,65]=(6,7) zsf[gn,66]=(6,8) zsf[gn,67]=(7,8) zsf[gn,68]=(7,7) zsf[gn,69]=(7,6) zsf[gn,70]=(7,5) zsf[gn,71]=(7,4) zsf[gn,72]=(7,3) zsf[gn,73]=(7,2) zsf[gn,74]=(8,2) zsf[gn,75]=(8,3) zsf[gn,76]=(8,4) zsf[gn,77]=(8,5) zsf[gn,78]=(8,6) zsf[gn,79]=(8,7) zsf[gn,80]=(8,8) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, forward ; xslope_xfwd[1]=0 xslope_yfwd[1]=1 xslope_xbwd[1]=0 xslope_ybwd[1]=0 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=-1 yslope_yfwd[1]=0 yslope_xbwd[1]=0 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: 0, forward ; xslope_xfwd[2]=1 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=0 xslope_size[2]=2 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=1 yslope_xbwd[2]=0 yslope_ybwd[2]=0 yslope_size[2]=0 yoffset[2]=0 ; ; block 3: right, forward ; xslope_xfwd[3]=0 xslope_yfwd[3]=1 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=3 xoffset[3]=0 yslope_xfwd[3]=-1 yslope_yfwd[3]=0 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=1 yoffset[3]=-1 ; ; block 4: 0, forward ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=4 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=0 yoffset[4]=0 ; ; block 5: right, forward ; xslope_xfwd[5]=0 xslope_yfwd[5]=1 xslope_xbwd[5]=0 xslope_ybwd[5]=0 xslope_size[5]=5 xoffset[5]=0 yslope_xfwd[5]=-1 yslope_yfwd[5]=0 yslope_xbwd[5]=0 yslope_ybwd[5]=0 yslope_size[5]=1 yoffset[5]=-1 ; ; block 6: 0, forward ; xslope_xfwd[6]=1 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=0 xslope_size[6]=6 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=1 yslope_xbwd[6]=0 yslope_ybwd[6]=0 yslope_size[6]=0 yoffset[6]=0 ; ; block 7: right, forward ; xslope_xfwd[7]=0 xslope_yfwd[7]=1 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=7 xoffset[7]=0 yslope_xfwd[7]=-1 yslope_yfwd[7]=0 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=1 yoffset[7]=-1 ; ; block 8: 0, forward ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=8 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=0 yoffset[8]=0 ; ; block 9: left, forward ; xslope_xfwd[9]=0 xslope_yfwd[9]=-1 xslope_xbwd[9]=0 xslope_ybwd[9]=0 xslope_size[9]=9 xoffset[9]=-1 yslope_xfwd[9]=1 yslope_yfwd[9]=0 yslope_xbwd[9]=0 yslope_ybwd[9]=0 yslope_size[9]=1 yoffset[9]=0 ; ; block 10: 180, forward ; xslope_xfwd[10]=-1 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=0 xslope_size[10]=8 xoffset[10]=-1 yslope_xfwd[10]=0 yslope_yfwd[10]=-1 yslope_xbwd[10]=0 yslope_ybwd[10]=0 yslope_size[10]=2 yoffset[10]=-1 ; ; block 11: left, forward ; xslope_xfwd[11]=0 xslope_yfwd[11]=-1 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=7 xoffset[11]=-1 yslope_xfwd[11]=1 yslope_yfwd[11]=0 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=1 yoffset[11]=0 ; ; block 12: 180, forward ; xslope_xfwd[12]=-1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=6 xoffset[12]=-1 yslope_xfwd[12]=0 yslope_yfwd[12]=-1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=2 yoffset[12]=-1 ; ; block 13: left, forward ; xslope_xfwd[13]=0 xslope_yfwd[13]=-1 xslope_xbwd[13]=0 xslope_ybwd[13]=0 xslope_size[13]=5 xoffset[13]=-1 yslope_xfwd[13]=1 yslope_yfwd[13]=0 yslope_xbwd[13]=0 yslope_ybwd[13]=0 yslope_size[13]=1 yoffset[13]=0 ; ; block 14: 180, forward ; xslope_xfwd[14]=-1 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=0 xslope_size[14]=4 xoffset[14]=-1 yslope_xfwd[14]=0 yslope_yfwd[14]=-1 yslope_xbwd[14]=0 yslope_ybwd[14]=0 yslope_size[14]=2 yoffset[14]=-1 ; ; block 15: left, forward ; xslope_xfwd[15]=0 xslope_yfwd[15]=-1 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=3 xoffset[15]=-1 yslope_xfwd[15]=1 yslope_yfwd[15]=0 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=1 yoffset[15]=0 ; ; block 16: 180, forward ; xslope_xfwd[16]=-1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=2 xoffset[16]=-1 yslope_xfwd[16]=0 yslope_yfwd[16]=-1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=2 yoffset[16]=-1 ; ; block 17: left, forward ; xslope_xfwd[17]=0 xslope_yfwd[17]=-1 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=-1 yslope_xfwd[17]=1 yslope_yfwd[17]=0 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=1 yoffset[17]=0 ; ; block 18: 0, forward ; xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=0 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=2 yoffset[18]=0 ; ; block 19: right, forward ; xslope_xfwd[19]=0 xslope_yfwd[19]=1 xslope_xbwd[19]=0 xslope_ybwd[19]=0 xslope_size[19]=1 xoffset[19]=0 yslope_xfwd[19]=-1 yslope_yfwd[19]=0 yslope_xbwd[19]=0 yslope_ybwd[19]=0 yslope_size[19]=3 yoffset[19]=-1 ; ; block 20: 0, forward ; xslope_xfwd[20]=1 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=0 xslope_size[20]=2 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=1 yslope_xbwd[20]=0 yslope_ybwd[20]=0 yslope_size[20]=2 yoffset[20]=0 ; ; block 21: right, forward ; xslope_xfwd[21]=0 xslope_yfwd[21]=1 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=-1 yslope_yfwd[21]=0 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=3 yoffset[21]=-1 ; ; block 22: 0, forward ; xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=2 yoffset[22]=0 ; ; block 23: right, forward ; xslope_xfwd[23]=0 xslope_yfwd[23]=1 xslope_xbwd[23]=0 xslope_ybwd[23]=0 xslope_size[23]=5 xoffset[23]=0 yslope_xfwd[23]=-1 yslope_yfwd[23]=0 yslope_xbwd[23]=0 yslope_ybwd[23]=0 yslope_size[23]=3 yoffset[23]=-1 ; ; block 24: 0, forward ; xslope_xfwd[24]=1 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=0 xslope_size[24]=6 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=1 yslope_xbwd[24]=0 yslope_ybwd[24]=0 yslope_size[24]=2 yoffset[24]=0 ; ; block 25: left, forward ; xslope_xfwd[25]=0 xslope_yfwd[25]=-1 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=7 xoffset[25]=-1 yslope_xfwd[25]=1 yslope_yfwd[25]=0 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=3 yoffset[25]=0 ; ; block 26: 180, forward ; xslope_xfwd[26]=-1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=6 xoffset[26]=-1 yslope_xfwd[26]=0 yslope_yfwd[26]=-1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=4 yoffset[26]=-1 ; ; block 27: left, forward ; xslope_xfwd[27]=0 xslope_yfwd[27]=-1 xslope_xbwd[27]=0 xslope_ybwd[27]=0 xslope_size[27]=5 xoffset[27]=-1 yslope_xfwd[27]=1 yslope_yfwd[27]=0 yslope_xbwd[27]=0 yslope_ybwd[27]=0 yslope_size[27]=3 yoffset[27]=0 ; ; block 28: 180, forward ; xslope_xfwd[28]=-1 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=0 xslope_size[28]=4 xoffset[28]=-1 yslope_xfwd[28]=0 yslope_yfwd[28]=-1 yslope_xbwd[28]=0 yslope_ybwd[28]=0 yslope_size[28]=4 yoffset[28]=-1 ; ; block 29: left, forward ; xslope_xfwd[29]=0 xslope_yfwd[29]=-1 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=3 xoffset[29]=-1 yslope_xfwd[29]=1 yslope_yfwd[29]=0 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=3 yoffset[29]=0 ; ; block 30: 180, forward ; xslope_xfwd[30]=-1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=2 xoffset[30]=-1 yslope_xfwd[30]=0 yslope_yfwd[30]=-1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=4 yoffset[30]=-1 ; ; block 31: left, forward ; xslope_xfwd[31]=0 xslope_yfwd[31]=-1 xslope_xbwd[31]=0 xslope_ybwd[31]=0 xslope_size[31]=1 xoffset[31]=-1 yslope_xfwd[31]=1 yslope_yfwd[31]=0 yslope_xbwd[31]=0 yslope_ybwd[31]=0 yslope_size[31]=3 yoffset[31]=0 ; ; block 32: 0, forward ; xslope_xfwd[32]=1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=0 xoffset[32]=0 yslope_xfwd[32]=0 yslope_yfwd[32]=1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=4 yoffset[32]=0 ; ; block 33: right, forward ; xslope_xfwd[33]=0 xslope_yfwd[33]=1 xslope_xbwd[33]=0 xslope_ybwd[33]=0 xslope_size[33]=1 xoffset[33]=0 yslope_xfwd[33]=-1 yslope_yfwd[33]=0 yslope_xbwd[33]=0 yslope_ybwd[33]=0 yslope_size[33]=5 yoffset[33]=-1 ; ; block 34: 0, forward ; xslope_xfwd[34]=1 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=0 xslope_size[34]=2 xoffset[34]=0 yslope_xfwd[34]=0 yslope_yfwd[34]=1 yslope_xbwd[34]=0 yslope_ybwd[34]=0 yslope_size[34]=4 yoffset[34]=0 ; ; block 35: right, forward ; xslope_xfwd[35]=0 xslope_yfwd[35]=1 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=3 xoffset[35]=0 yslope_xfwd[35]=-1 yslope_yfwd[35]=0 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=5 yoffset[35]=-1 ; ; block 36: 0, forward ; xslope_xfwd[36]=1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=4 xoffset[36]=0 yslope_xfwd[36]=0 yslope_yfwd[36]=1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=4 yoffset[36]=0 ; ; block 37: left, forward ; xslope_xfwd[37]=0 xslope_yfwd[37]=-1 xslope_xbwd[37]=0 xslope_ybwd[37]=0 xslope_size[37]=5 xoffset[37]=-1 yslope_xfwd[37]=1 yslope_yfwd[37]=0 yslope_xbwd[37]=0 yslope_ybwd[37]=0 yslope_size[37]=5 yoffset[37]=0 ; ; block 38: 190, forward ; xslope_xfwd[38]=-1 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=0 xslope_size[38]=4 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=-1 yslope_xbwd[38]=0 yslope_ybwd[38]=0 yslope_size[38]=6 yoffset[38]=-1 ; ; block 39: left, forward ; xslope_xfwd[39]=0 xslope_yfwd[39]=-1 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=3 xoffset[39]=-1 yslope_xfwd[39]=1 yslope_yfwd[39]=0 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=5 yoffset[39]=0 ; ; block 40: 180, forward ; xslope_xfwd[40]=-1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=2 xoffset[40]=-1 yslope_xfwd[40]=0 yslope_yfwd[40]=-1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=6 yoffset[40]=-1 ; ; block 41: left, forward ; xslope_xfwd[41]=0 xslope_yfwd[41]=-1 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=1 xoffset[41]=-1 yslope_xfwd[41]=1 yslope_yfwd[41]=0 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=5 yoffset[41]=0 ; ; block 42: 0, forward ; xslope_xfwd[42]=1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=0 xoffset[42]=0 yslope_xfwd[42]=0 yslope_yfwd[42]=1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=6 yoffset[42]=0 ; ; block 43: right, forward ; xslope_xfwd[43]=0 xslope_yfwd[43]=1 xslope_xbwd[43]=0 xslope_ybwd[43]=0 xslope_size[43]=1 xoffset[43]=0 yslope_xfwd[43]=-1 yslope_yfwd[43]=0 yslope_xbwd[43]=0 yslope_ybwd[43]=0 yslope_size[43]=7 yoffset[43]=-1 ; ; block 44: 0, forward ; xslope_xfwd[44]=1 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=0 xslope_size[44]=2 xoffset[44]=0 yslope_xfwd[44]=0 yslope_yfwd[44]=1 yslope_xbwd[44]=0 yslope_ybwd[44]=0 yslope_size[44]=6 yoffset[44]=0 ; ; block 45: left, forward ; xslope_xfwd[45]=0 xslope_yfwd[45]=-1 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=3 xoffset[45]=-1 yslope_xfwd[45]=1 yslope_yfwd[45]=0 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=7 yoffset[45]=0 ; ; block 46: 180, forward ; xslope_xfwd[46]=-1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=2 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=-1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=8 yoffset[46]=-1 ; ; block 47: left, forward ; xslope_xfwd[47]=0 xslope_yfwd[47]=-1 xslope_xbwd[47]=0 xslope_ybwd[47]=0 xslope_size[47]=1 xoffset[47]=-1 yslope_xfwd[47]=1 yslope_yfwd[47]=0 yslope_xbwd[47]=0 yslope_ybwd[47]=0 yslope_size[47]=7 yoffset[47]=0 ; ; block 48: 0, forward ; xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=0 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=8 yoffset[48]=0 ; ; block 49: right, forward ; xslope_xfwd[49]=0 xslope_yfwd[49]=1 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=1 xoffset[49]=0 yslope_xfwd[49]=-1 yslope_yfwd[49]=0 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=9 yoffset[49]=-1 ; ; block 50: 0, forward ; xslope_xfwd[50]=1 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=0 xslope_size[50]=2 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=1 yslope_xbwd[50]=0 yslope_ybwd[50]=0 yslope_size[50]=8 yoffset[50]=0 ; ; block 51: right, forward ; xslope_xfwd[51]=0 xslope_yfwd[51]=1 xslope_xbwd[51]=0 xslope_ybwd[51]=0 xslope_size[51]=3 xoffset[51]=0 yslope_xfwd[51]=-1 yslope_yfwd[51]=0 yslope_xbwd[51]=0 yslope_ybwd[51]=0 yslope_size[51]=9 yoffset[51]=-1 ; ; block 52: 180, forward ; xslope_xfwd[52]=-1 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=0 xslope_size[52]=4 xoffset[52]=-1 yslope_xfwd[52]=0 yslope_yfwd[52]=-1 yslope_xbwd[52]=0 yslope_ybwd[52]=0 yslope_size[52]=8 yoffset[52]=-1 ; ; block 53: right, forward ; xslope_xfwd[53]=0 xslope_yfwd[53]=1 xslope_xbwd[53]=0 xslope_ybwd[53]=0 xslope_size[53]=3 xoffset[53]=0 yslope_xfwd[53]=-1 yslope_yfwd[53]=0 yslope_xbwd[53]=0 yslope_ybwd[53]=0 yslope_size[53]=7 yoffset[53]=-1 ; ; block 54: 0, forward ; xslope_xfwd[54]=1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=4 xoffset[54]=0 yslope_xfwd[54]=0 yslope_yfwd[54]=1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=6 yoffset[54]=0 ; ; block 55: left, forward ; xslope_xfwd[55]=0 xslope_yfwd[55]=-1 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=5 xoffset[55]=-1 yslope_xfwd[55]=1 yslope_yfwd[55]=0 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=7 yoffset[55]=0 ; ; block 56: 0, forward ; xslope_xfwd[56]=1 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=0 xslope_size[56]=4 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=1 yslope_xbwd[56]=0 yslope_ybwd[56]=0 yslope_size[56]=8 yoffset[56]=0 ; ; block 57: right, forward ; xslope_xfwd[57]=0 xslope_yfwd[57]=1 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=5 xoffset[57]=0 yslope_xfwd[57]=-1 yslope_yfwd[57]=0 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=9 yoffset[57]=-1 ; ; block 58: 180, forward ; xslope_xfwd[58]=-1 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=0 xslope_size[58]=6 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=-1 yslope_xbwd[58]=0 yslope_ybwd[58]=0 yslope_size[58]=8 yoffset[58]=-1 ; ; block 59: right, forward ; xslope_xfwd[59]=0 xslope_yfwd[59]=1 xslope_xbwd[59]=0 xslope_ybwd[59]=0 xslope_size[59]=5 xoffset[59]=0 yslope_xfwd[59]=-1 yslope_yfwd[59]=0 yslope_xbwd[59]=0 yslope_ybwd[59]=0 yslope_size[59]=7 yoffset[59]=-1 ; ; block 60: 180, forward ; xslope_xfwd[60]=-1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=6 xoffset[60]=-1 yslope_xfwd[60]=0 yslope_yfwd[60]=-1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=6 yoffset[60]=-1 ; ; block 61: right, forward ; xslope_xfwd[61]=0 xslope_yfwd[61]=1 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=5 xoffset[61]=0 yslope_xfwd[61]=-1 yslope_yfwd[61]=0 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=5 yoffset[61]=-1 ; ; block 62: 0, forward ; xslope_xfwd[62]=1 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=0 xslope_size[62]=6 xoffset[62]=0 yslope_xfwd[62]=0 yslope_yfwd[62]=1 yslope_xbwd[62]=0 yslope_ybwd[62]=0 yslope_size[62]=4 yoffset[62]=0 ; ; block 63: left, forward ; xslope_xfwd[63]=0 xslope_yfwd[63]=-1 xslope_xbwd[63]=0 xslope_ybwd[63]=0 xslope_size[63]=7 xoffset[63]=-1 yslope_xfwd[63]=1 yslope_yfwd[63]=0 yslope_xbwd[63]=0 yslope_ybwd[63]=0 yslope_size[63]=5 yoffset[63]=0 ; ; block 64: 0, forward ; xslope_xfwd[64]=1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=6 xoffset[64]=0 yslope_xfwd[64]=0 yslope_yfwd[64]=1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=6 yoffset[64]=0 ; ; block 65: left, forward ; xslope_xfwd[65]=0 xslope_yfwd[65]=-1 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=7 xoffset[65]=-1 yslope_xfwd[65]=1 yslope_yfwd[65]=0 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=7 yoffset[65]=0 ; ; block 66: 0, forward ; xslope_xfwd[66]=1 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=0 xslope_size[66]=6 xoffset[66]=0 yslope_xfwd[66]=0 yslope_yfwd[66]=1 yslope_xbwd[66]=0 yslope_ybwd[66]=0 yslope_size[66]=8 yoffset[66]=0 ; ; block 67: right, forward ; xslope_xfwd[67]=0 xslope_yfwd[67]=1 xslope_xbwd[67]=0 xslope_ybwd[67]=0 xslope_size[67]=7 xoffset[67]=0 yslope_xfwd[67]=-1 yslope_yfwd[67]=0 yslope_xbwd[67]=0 yslope_ybwd[67]=0 yslope_size[67]=9 yoffset[67]=-1 ; ; block 68: 180, forward ; xslope_xfwd[68]=-1 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=0 xslope_size[68]=8 xoffset[68]=-1 yslope_xfwd[68]=0 yslope_yfwd[68]=-1 yslope_xbwd[68]=0 yslope_ybwd[68]=0 yslope_size[68]=8 yoffset[68]=-1 ; ; block 69: right, forward ; xslope_xfwd[69]=0 xslope_yfwd[69]=1 xslope_xbwd[69]=0 xslope_ybwd[69]=0 xslope_size[69]=7 xoffset[69]=0 yslope_xfwd[69]=-1 yslope_yfwd[69]=0 yslope_xbwd[69]=0 yslope_ybwd[69]=0 yslope_size[69]=7 yoffset[69]=-1 ; ; block 70: 180, forward ; xslope_xfwd[70]=-1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=8 xoffset[70]=-1 yslope_xfwd[70]=0 yslope_yfwd[70]=-1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=6 yoffset[70]=-1 ; ; block 71: right, forward ; xslope_xfwd[71]=0 xslope_yfwd[71]=1 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=7 xoffset[71]=0 yslope_xfwd[71]=-1 yslope_yfwd[71]=0 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=5 yoffset[71]=-1 ; ; block 72: 180, forward ; xslope_xfwd[72]=-1 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=0 xslope_size[72]=8 xoffset[72]=-1 yslope_xfwd[72]=0 yslope_yfwd[72]=-1 yslope_xbwd[72]=0 yslope_ybwd[72]=0 yslope_size[72]=4 yoffset[72]=-1 ; ; block 73: right, forward ; xslope_xfwd[73]=0 xslope_yfwd[73]=1 xslope_xbwd[73]=0 xslope_ybwd[73]=0 xslope_size[73]=7 xoffset[73]=0 yslope_xfwd[73]=-1 yslope_yfwd[73]=0 yslope_xbwd[73]=0 yslope_ybwd[73]=0 yslope_size[73]=3 yoffset[73]=-1 ; ; block 74: 0, forward ; xslope_xfwd[74]=1 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=0 xslope_size[74]=8 xoffset[74]=0 yslope_xfwd[74]=0 yslope_yfwd[74]=1 yslope_xbwd[74]=0 yslope_ybwd[74]=0 yslope_size[74]=2 yoffset[74]=0 ; ; block 75: left, forward ; xslope_xfwd[75]=0 xslope_yfwd[75]=-1 xslope_xbwd[75]=0 xslope_ybwd[75]=0 xslope_size[75]=9 xoffset[75]=-1 yslope_xfwd[75]=1 yslope_yfwd[75]=0 yslope_xbwd[75]=0 yslope_ybwd[75]=0 yslope_size[75]=3 yoffset[75]=0 ; ; block 76: 0, forward ; xslope_xfwd[76]=1 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=0 xslope_size[76]=8 xoffset[76]=0 yslope_xfwd[76]=0 yslope_yfwd[76]=1 yslope_xbwd[76]=0 yslope_ybwd[76]=0 yslope_size[76]=4 yoffset[76]=0 ; ; block 77: left, forward ; xslope_xfwd[77]=0 xslope_yfwd[77]=-1 xslope_xbwd[77]=0 xslope_ybwd[77]=0 xslope_size[77]=9 xoffset[77]=-1 yslope_xfwd[77]=1 yslope_yfwd[77]=0 yslope_xbwd[77]=0 yslope_ybwd[77]=0 yslope_size[77]=5 yoffset[77]=0 ; ; block 78: 0, forward ; xslope_xfwd[78]=1 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=0 xslope_size[78]=8 xoffset[78]=0 yslope_xfwd[78]=0 yslope_yfwd[78]=1 yslope_xbwd[78]=0 yslope_ybwd[78]=0 yslope_size[78]=6 yoffset[78]=0 ; ; block 79: left, forward ; xslope_xfwd[79]=0 xslope_yfwd[79]=-1 xslope_xbwd[79]=0 xslope_ybwd[79]=0 xslope_size[79]=9 xoffset[79]=-1 yslope_xfwd[79]=1 yslope_yfwd[79]=0 yslope_xbwd[79]=0 yslope_ybwd[79]=0 yslope_size[79]=7 yoffset[79]=0 ; ; block 80: 0, forward ; xslope_xfwd[80]=1 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=0 xslope_size[80]=8 xoffset[80]=0 yslope_xfwd[80]=0 yslope_yfwd[80]=1 yslope_xbwd[80]=0 yslope_ybwd[80]=0 yslope_size[80]=8 yoffset[80]=0 ; ; 9x9 max ; elseif(@block_type=="9x9 - max") zsf[gn,0]=(0,0) zsf[gn,1]=(1,0) zsf[gn,2]=(1,1) zsf[gn,3]=(0,1) zsf[gn,4]=(0,2) zsf[gn,5]=(1,2) zsf[gn,6]=(1,3) zsf[gn,7]=(0,3) zsf[gn,8]=(0,4) zsf[gn,9]=(1,4) zsf[gn,10]=(1,5) zsf[gn,11]=(0,5) zsf[gn,12]=(0,6) zsf[gn,13]=(1,6) zsf[gn,14]=(1,7) zsf[gn,15]=(0,7) zsf[gn,16]=(0,8) zsf[gn,17]=(1,8) zsf[gn,18]=(2,8) zsf[gn,19]=(2,7) zsf[gn,20]=(3,7) zsf[gn,21]=(3,8) zsf[gn,22]=(4,8) zsf[gn,23]=(4,7) zsf[gn,24]=(5,7) zsf[gn,25]=(5,8) zsf[gn,26]=(6,8) zsf[gn,27]=(6,7) zsf[gn,28]=(7,7) zsf[gn,29]=(7,8) zsf[gn,30]=(8,8) zsf[gn,31]=(8,7) zsf[gn,32]=(8,6) zsf[gn,33]=(7,6) zsf[gn,34]=(7,5) zsf[gn,35]=(8,5) zsf[gn,36]=(8,4) zsf[gn,37]=(7,4) zsf[gn,38]=(7,3) zsf[gn,39]=(8,3) zsf[gn,40]=(8,2) zsf[gn,41]=(7,2) zsf[gn,42]=(6,2) zsf[gn,43]=(6,3) zsf[gn,44]=(5,3) zsf[gn,45]=(5,2) zsf[gn,46]=(4,2) zsf[gn,47]=(4,3) zsf[gn,48]=(4,4) zsf[gn,49]=(5,4) zsf[gn,50]=(6,4) zsf[gn,51]=(6,5) zsf[gn,52]=(6,6) zsf[gn,53]=(5,6) zsf[gn,54]=(5,5) zsf[gn,55]=(4,5) zsf[gn,56]=(4,6) zsf[gn,57]=(3,6) zsf[gn,58]=(2,6) zsf[gn,59]=(2,5) zsf[gn,60]=(3,5) zsf[gn,61]=(3,4) zsf[gn,62]=(2,4) zsf[gn,63]=(2,3) zsf[gn,64]=(3,3) zsf[gn,65]=(3,2) zsf[gn,66]=(2,2) zsf[gn,67]=(2,1) zsf[gn,68]=(2,0) zsf[gn,69]=(3,0) zsf[gn,70]=(3,1) zsf[gn,71]=(4,1) zsf[gn,72]=(4,0) zsf[gn,73]=(5,0) zsf[gn,74]=(5,1) zsf[gn,75]=(6,1) zsf[gn,76]=(6,0) zsf[gn,77]=(7,0) zsf[gn,78]=(7,1) zsf[gn,79]=(8,1) zsf[gn,80]=(8,0) npoint=81 ; ; block 0: 0, forward ; xslope_xfwd[0]=1 xslope_yfwd[0]=0 xslope_xbwd[0]=0 xslope_ybwd[0]=0 xslope_size[0]=0 xoffset[0]=0 yslope_xfwd[0]=0 yslope_yfwd[0]=1 yslope_xbwd[0]=0 yslope_ybwd[0]=0 yslope_size[0]=0 yoffset[0]=0 ; ; block 1: right, backward ; xslope_xfwd[1]=0 xslope_yfwd[1]=0 xslope_xbwd[1]=0 xslope_ybwd[1]=1 xslope_size[1]=1 xoffset[1]=0 yslope_xfwd[1]=0 yslope_yfwd[1]=0 yslope_xbwd[1]=-1 yslope_ybwd[1]=0 yslope_size[1]=1 yoffset[1]=-1 ; ; block 2: right, backward ; xslope_xfwd[2]=0 xslope_yfwd[2]=0 xslope_xbwd[2]=0 xslope_ybwd[2]=1 xslope_size[2]=1 xoffset[2]=0 yslope_xfwd[2]=0 yslope_yfwd[2]=0 yslope_xbwd[2]=-1 yslope_ybwd[2]=0 yslope_size[2]=2 yoffset[2]=-1 ; ; block 3: 180, forward ; xslope_xfwd[3]=-1 xslope_yfwd[3]=0 xslope_xbwd[3]=0 xslope_ybwd[3]=0 xslope_size[3]=1 xoffset[3]=-1 yslope_xfwd[3]=0 yslope_yfwd[3]=-1 yslope_xbwd[3]=0 yslope_ybwd[3]=0 yslope_size[3]=2 yoffset[3]=-1 ; ; block 4: 0, forward ; xslope_xfwd[4]=1 xslope_yfwd[4]=0 xslope_xbwd[4]=0 xslope_ybwd[4]=0 xslope_size[4]=0 xoffset[4]=0 yslope_xfwd[4]=0 yslope_yfwd[4]=1 yslope_xbwd[4]=0 yslope_ybwd[4]=0 yslope_size[4]=2 yoffset[4]=0 ; ; block 5: right, backward ; xslope_xfwd[5]=0 xslope_yfwd[5]=0 xslope_xbwd[5]=0 xslope_ybwd[5]=1 xslope_size[5]=1 xoffset[5]=0 yslope_xfwd[5]=0 yslope_yfwd[5]=0 yslope_xbwd[5]=-1 yslope_ybwd[5]=0 yslope_size[5]=3 yoffset[5]=-1 ; ; block 6: right, backward ; xslope_xfwd[6]=0 xslope_yfwd[6]=0 xslope_xbwd[6]=0 xslope_ybwd[6]=1 xslope_size[6]=1 xoffset[6]=0 yslope_xfwd[6]=0 yslope_yfwd[6]=0 yslope_xbwd[6]=-1 yslope_ybwd[6]=0 yslope_size[6]=4 yoffset[6]=-1 ; ; block 7: 180, forward ; xslope_xfwd[7]=-1 xslope_yfwd[7]=0 xslope_xbwd[7]=0 xslope_ybwd[7]=0 xslope_size[7]=1 xoffset[7]=-1 yslope_xfwd[7]=0 yslope_yfwd[7]=-1 yslope_xbwd[7]=0 yslope_ybwd[7]=0 yslope_size[7]=4 yoffset[7]=-1 ; ; block 8: 0, forward ; xslope_xfwd[8]=1 xslope_yfwd[8]=0 xslope_xbwd[8]=0 xslope_ybwd[8]=0 xslope_size[8]=0 xoffset[8]=0 yslope_xfwd[8]=0 yslope_yfwd[8]=1 yslope_xbwd[8]=0 yslope_ybwd[8]=0 yslope_size[8]=4 yoffset[8]=0 ; ; block 9: right, backward ; xslope_xfwd[9]=0 xslope_yfwd[9]=0 xslope_xbwd[9]=0 xslope_ybwd[9]=1 xslope_size[9]=1 xoffset[9]=0 yslope_xfwd[9]=0 yslope_yfwd[9]=0 yslope_xbwd[9]=-1 yslope_ybwd[9]=0 yslope_size[9]=5 yoffset[9]=-1 ; ; block 10: right, backward ; xslope_xfwd[10]=0 xslope_yfwd[10]=0 xslope_xbwd[10]=0 xslope_ybwd[10]=1 xslope_size[10]=1 xoffset[10]=0 yslope_xfwd[10]=0 yslope_yfwd[10]=0 yslope_xbwd[10]=-1 yslope_ybwd[10]=0 yslope_size[10]=6 yoffset[10]=-1 ; ; block 11: 180, forward ; xslope_xfwd[11]=-1 xslope_yfwd[11]=0 xslope_xbwd[11]=0 xslope_ybwd[11]=0 xslope_size[11]=1 xoffset[11]=-1 yslope_xfwd[11]=0 yslope_yfwd[11]=-1 yslope_xbwd[11]=0 yslope_ybwd[11]=0 yslope_size[11]=6 yoffset[11]=-1 ; ; block 12: 0, forward ; xslope_xfwd[12]=1 xslope_yfwd[12]=0 xslope_xbwd[12]=0 xslope_ybwd[12]=0 xslope_size[12]=0 xoffset[12]=0 yslope_xfwd[12]=0 yslope_yfwd[12]=1 yslope_xbwd[12]=0 yslope_ybwd[12]=0 yslope_size[12]=6 yoffset[12]=0 ; ; block 13: right, backward ; xslope_xfwd[13]=0 xslope_yfwd[13]=0 xslope_xbwd[13]=0 xslope_ybwd[13]=1 xslope_size[13]=1 xoffset[13]=0 yslope_xfwd[13]=0 yslope_yfwd[13]=0 yslope_xbwd[13]=-1 yslope_ybwd[13]=0 yslope_size[13]=7 yoffset[13]=-1 ; ; block 14: right, backward ; xslope_xfwd[14]=0 xslope_yfwd[14]=0 xslope_xbwd[14]=0 xslope_ybwd[14]=1 xslope_size[14]=1 xoffset[14]=0 yslope_xfwd[14]=0 yslope_yfwd[14]=0 yslope_xbwd[14]=-1 yslope_ybwd[14]=0 yslope_size[14]=8 yoffset[14]=-1 ; ; block 15: 180, forward ; xslope_xfwd[15]=-1 xslope_yfwd[15]=0 xslope_xbwd[15]=0 xslope_ybwd[15]=0 xslope_size[15]=1 xoffset[15]=-1 yslope_xfwd[15]=0 yslope_yfwd[15]=-1 yslope_xbwd[15]=0 yslope_ybwd[15]=0 yslope_size[15]=8 yoffset[15]=-1 ; ; block 16: 0, forward ; xslope_xfwd[16]=1 xslope_yfwd[16]=0 xslope_xbwd[16]=0 xslope_ybwd[16]=0 xslope_size[16]=0 xoffset[16]=0 yslope_xfwd[16]=0 yslope_yfwd[16]=1 yslope_xbwd[16]=0 yslope_ybwd[16]=0 yslope_size[16]=8 yoffset[16]=0 ; ; block 17: 0, forward ; xslope_xfwd[17]=1 xslope_yfwd[17]=0 xslope_xbwd[17]=0 xslope_ybwd[17]=0 xslope_size[17]=1 xoffset[17]=0 yslope_xfwd[17]=0 yslope_yfwd[17]=1 yslope_xbwd[17]=0 yslope_ybwd[17]=0 yslope_size[17]=8 yoffset[17]=0 ; ; block 18: 0, forward ; xslope_xfwd[18]=1 xslope_yfwd[18]=0 xslope_xbwd[18]=0 xslope_ybwd[18]=0 xslope_size[18]=2 xoffset[18]=0 yslope_xfwd[18]=0 yslope_yfwd[18]=1 yslope_xbwd[18]=0 yslope_ybwd[18]=0 yslope_size[18]=8 yoffset[18]=0 ; ; block 19: left, backward ; xslope_xfwd[19]=0 xslope_yfwd[19]=0 xslope_xbwd[19]=0 xslope_ybwd[19]=-1 xslope_size[19]=3 xoffset[19]=-1 yslope_xfwd[19]=0 yslope_yfwd[19]=0 yslope_xbwd[19]=1 yslope_ybwd[19]=0 yslope_size[19]=7 yoffset[19]=0 ; ; block 20: right, backward ; xslope_xfwd[20]=0 xslope_yfwd[20]=0 xslope_xbwd[20]=0 xslope_ybwd[20]=1 xslope_size[20]=3 xoffset[20]=0 yslope_xfwd[20]=0 yslope_yfwd[20]=0 yslope_xbwd[20]=-1 yslope_ybwd[20]=0 yslope_size[20]=8 yoffset[20]=-1 ; ; block 21: 0, forward ; xslope_xfwd[21]=1 xslope_yfwd[21]=0 xslope_xbwd[21]=0 xslope_ybwd[21]=0 xslope_size[21]=3 xoffset[21]=0 yslope_xfwd[21]=0 yslope_yfwd[21]=1 yslope_xbwd[21]=0 yslope_ybwd[21]=0 yslope_size[21]=8 yoffset[21]=0 ; ; block 22: 0, forward ; xslope_xfwd[22]=1 xslope_yfwd[22]=0 xslope_xbwd[22]=0 xslope_ybwd[22]=0 xslope_size[22]=4 xoffset[22]=0 yslope_xfwd[22]=0 yslope_yfwd[22]=1 yslope_xbwd[22]=0 yslope_ybwd[22]=0 yslope_size[22]=8 yoffset[22]=0 ; ; block 23: left, backward ; xslope_xfwd[23]=0 xslope_yfwd[23]=0 xslope_xbwd[23]=0 xslope_ybwd[23]=-1 xslope_size[23]=5 xoffset[23]=-1 yslope_xfwd[23]=0 yslope_yfwd[23]=0 yslope_xbwd[23]=1 yslope_ybwd[23]=0 yslope_size[23]=7 yoffset[23]=0 ; ; block 24: right, backward ; xslope_xfwd[24]=0 xslope_yfwd[24]=0 xslope_xbwd[24]=0 xslope_ybwd[24]=1 xslope_size[24]=5 xoffset[24]=0 yslope_xfwd[24]=0 yslope_yfwd[24]=0 yslope_xbwd[24]=-1 yslope_ybwd[24]=0 yslope_size[24]=8 yoffset[24]=-1 ; ; block 25: 0, forward ; xslope_xfwd[25]=1 xslope_yfwd[25]=0 xslope_xbwd[25]=0 xslope_ybwd[25]=0 xslope_size[25]=5 xoffset[25]=0 yslope_xfwd[25]=0 yslope_yfwd[25]=1 yslope_xbwd[25]=0 yslope_ybwd[25]=0 yslope_size[25]=8 yoffset[25]=0 ; ; block 26: 0, forward ; xslope_xfwd[26]=1 xslope_yfwd[26]=0 xslope_xbwd[26]=0 xslope_ybwd[26]=0 xslope_size[26]=6 xoffset[26]=0 yslope_xfwd[26]=0 yslope_yfwd[26]=1 yslope_xbwd[26]=0 yslope_ybwd[26]=0 yslope_size[26]=8 yoffset[26]=0 ; ; block 27: left, backward ; xslope_xfwd[27]=0 xslope_yfwd[27]=0 xslope_xbwd[27]=0 xslope_ybwd[27]=-1 xslope_size[27]=7 xoffset[27]=-1 yslope_xfwd[27]=0 yslope_yfwd[27]=0 yslope_xbwd[27]=1 yslope_ybwd[27]=0 yslope_size[27]=7 yoffset[27]=0 ; ; block 28: right, backward ; xslope_xfwd[28]=0 xslope_yfwd[28]=0 xslope_xbwd[28]=0 xslope_ybwd[28]=1 xslope_size[28]=7 xoffset[28]=0 yslope_xfwd[28]=0 yslope_yfwd[28]=0 yslope_xbwd[28]=-1 yslope_ybwd[28]=0 yslope_size[28]=8 yoffset[28]=-1 ; ; block 29: 0, forward ; xslope_xfwd[29]=1 xslope_yfwd[29]=0 xslope_xbwd[29]=0 xslope_ybwd[29]=0 xslope_size[29]=7 xoffset[29]=0 yslope_xfwd[29]=0 yslope_yfwd[29]=1 yslope_xbwd[29]=0 yslope_ybwd[29]=0 yslope_size[29]=8 yoffset[29]=0 ; ; block 30: 0, forward ; xslope_xfwd[30]=1 xslope_yfwd[30]=0 xslope_xbwd[30]=0 xslope_ybwd[30]=0 xslope_size[30]=8 xoffset[30]=0 yslope_xfwd[30]=0 yslope_yfwd[30]=1 yslope_xbwd[30]=0 yslope_ybwd[30]=0 yslope_size[30]=8 yoffset[30]=0 ; ; block 31: left, backward ; xslope_xfwd[31]=0 xslope_yfwd[31]=0 xslope_xbwd[31]=0 xslope_ybwd[31]=-1 xslope_size[31]=9 xoffset[31]=-1 yslope_xfwd[31]=0 yslope_yfwd[31]=0 yslope_xbwd[31]=1 yslope_ybwd[31]=0 yslope_size[31]=7 yoffset[31]=0 ; ; block 32: 180, forward ; xslope_xfwd[32]=-1 xslope_yfwd[32]=0 xslope_xbwd[32]=0 xslope_ybwd[32]=0 xslope_size[32]=9 xoffset[32]=-1 yslope_xfwd[32]=0 yslope_yfwd[32]=-1 yslope_xbwd[32]=0 yslope_ybwd[32]=0 yslope_size[32]=7 yoffset[32]=-1 ; ; block 33: left, backward ; xslope_xfwd[33]=0 xslope_yfwd[33]=0 xslope_xbwd[33]=0 xslope_ybwd[33]=-1 xslope_size[33]=8 xoffset[33]=-1 yslope_xfwd[33]=0 yslope_yfwd[33]=0 yslope_xbwd[33]=1 yslope_ybwd[33]=0 yslope_size[33]=6 yoffset[33]=0 ; ; block 34: left, backward ; xslope_xfwd[34]=0 xslope_yfwd[34]=0 xslope_xbwd[34]=0 xslope_ybwd[34]=-1 xslope_size[34]=8 xoffset[34]=-1 yslope_xfwd[34]=0 yslope_yfwd[34]=0 yslope_xbwd[34]=1 yslope_ybwd[34]=0 yslope_size[34]=5 yoffset[34]=0 ; ; block 35: 0, forward ; xslope_xfwd[35]=1 xslope_yfwd[35]=0 xslope_xbwd[35]=0 xslope_ybwd[35]=0 xslope_size[35]=8 xoffset[35]=0 yslope_xfwd[35]=0 yslope_yfwd[35]=1 yslope_xbwd[35]=0 yslope_ybwd[35]=0 yslope_size[35]=5 yoffset[35]=0 ; ; block 36: 180, forward ; xslope_xfwd[36]=-1 xslope_yfwd[36]=0 xslope_xbwd[36]=0 xslope_ybwd[36]=0 xslope_size[36]=9 xoffset[36]=-1 yslope_xfwd[36]=0 yslope_yfwd[36]=-1 yslope_xbwd[36]=0 yslope_ybwd[36]=0 yslope_size[36]=5 yoffset[36]=-1 ; ; block 37: left, backward ; xslope_xfwd[37]=0 xslope_yfwd[37]=0 xslope_xbwd[37]=0 xslope_ybwd[37]=-1 xslope_size[37]=8 xoffset[37]=-1 yslope_xfwd[37]=0 yslope_yfwd[37]=0 yslope_xbwd[37]=1 yslope_ybwd[37]=0 yslope_size[37]=4 yoffset[37]=0 ; ; block 38: left, backward ; xslope_xfwd[38]=0 xslope_yfwd[38]=0 xslope_xbwd[38]=0 xslope_ybwd[38]=-1 xslope_size[38]=8 xoffset[38]=-1 yslope_xfwd[38]=0 yslope_yfwd[38]=0 yslope_xbwd[38]=1 yslope_ybwd[38]=0 yslope_size[38]=3 yoffset[38]=0 ; ; block 39: 0, forward ; xslope_xfwd[39]=1 xslope_yfwd[39]=0 xslope_xbwd[39]=0 xslope_ybwd[39]=0 xslope_size[39]=8 xoffset[39]=0 yslope_xfwd[39]=0 yslope_yfwd[39]=1 yslope_xbwd[39]=0 yslope_ybwd[39]=0 yslope_size[39]=3 yoffset[39]=0 ; ; block 40: 180, forward ; xslope_xfwd[40]=-1 xslope_yfwd[40]=0 xslope_xbwd[40]=0 xslope_ybwd[40]=0 xslope_size[40]=9 xoffset[40]=-1 yslope_xfwd[40]=0 yslope_yfwd[40]=-1 yslope_xbwd[40]=0 yslope_ybwd[40]=0 yslope_size[40]=3 yoffset[40]=-1 ; ; block 41: 180, forward ; xslope_xfwd[41]=-1 xslope_yfwd[41]=0 xslope_xbwd[41]=0 xslope_ybwd[41]=0 xslope_size[41]=8 xoffset[41]=-1 yslope_xfwd[41]=0 yslope_yfwd[41]=-1 yslope_xbwd[41]=0 yslope_ybwd[41]=0 yslope_size[41]=3 yoffset[41]=-1 ; ; block 42: 180, forward ; xslope_xfwd[42]=-1 xslope_yfwd[42]=0 xslope_xbwd[42]=0 xslope_ybwd[42]=0 xslope_size[42]=7 xoffset[42]=-1 yslope_xfwd[42]=0 yslope_yfwd[42]=-1 yslope_xbwd[42]=0 yslope_ybwd[42]=0 yslope_size[42]=3 yoffset[42]=-1 ; ; block 43: right, backward ; xslope_xfwd[43]=0 xslope_yfwd[43]=0 xslope_xbwd[43]=0 xslope_ybwd[43]=1 xslope_size[43]=6 xoffset[43]=0 yslope_xfwd[43]=0 yslope_yfwd[43]=0 yslope_xbwd[43]=-1 yslope_ybwd[43]=0 yslope_size[43]=4 yoffset[43]=-1 ; ; block 44: left, backward ; xslope_xfwd[44]=0 xslope_yfwd[44]=0 xslope_xbwd[44]=0 xslope_ybwd[44]=-1 xslope_size[44]=6 xoffset[44]=-1 yslope_xfwd[44]=0 yslope_yfwd[44]=0 yslope_xbwd[44]=1 yslope_ybwd[44]=0 yslope_size[44]=3 yoffset[44]=0 ; ; block 45: 180, forward ; xslope_xfwd[45]=-1 xslope_yfwd[45]=0 xslope_xbwd[45]=0 xslope_ybwd[45]=0 xslope_size[45]=6 xoffset[45]=-1 yslope_xfwd[45]=0 yslope_yfwd[45]=-1 yslope_xbwd[45]=0 yslope_ybwd[45]=0 yslope_size[45]=3 yoffset[45]=-1 ; ; block 46: 180, forward ; xslope_xfwd[46]=-1 xslope_yfwd[46]=0 xslope_xbwd[46]=0 xslope_ybwd[46]=0 xslope_size[46]=5 xoffset[46]=-1 yslope_xfwd[46]=0 yslope_yfwd[46]=-1 yslope_xbwd[46]=0 yslope_ybwd[46]=0 yslope_size[46]=3 yoffset[46]=-1 ; ; block 47: right, backward ; xslope_xfwd[47]=0 xslope_yfwd[47]=0 xslope_xbwd[47]=0 xslope_ybwd[47]=1 xslope_size[47]=4 xoffset[47]=0 yslope_xfwd[47]=0 yslope_yfwd[47]=0 yslope_xbwd[47]=-1 yslope_ybwd[47]=0 yslope_size[47]=4 yoffset[47]=-1 ; ; block 48: 0, forward ; xslope_xfwd[48]=1 xslope_yfwd[48]=0 xslope_xbwd[48]=0 xslope_ybwd[48]=0 xslope_size[48]=4 xoffset[48]=0 yslope_xfwd[48]=0 yslope_yfwd[48]=1 yslope_xbwd[48]=0 yslope_ybwd[48]=0 yslope_size[48]=4 yoffset[48]=0 ; ; block 49: 0, forward ; xslope_xfwd[49]=1 xslope_yfwd[49]=0 xslope_xbwd[49]=0 xslope_ybwd[49]=0 xslope_size[49]=5 xoffset[49]=0 yslope_xfwd[49]=0 yslope_yfwd[49]=1 yslope_xbwd[49]=0 yslope_ybwd[49]=0 yslope_size[49]=4 yoffset[49]=0 ; ; block 50: right, backward ; xslope_xfwd[50]=0 xslope_yfwd[50]=0 xslope_xbwd[50]=0 xslope_ybwd[50]=1 xslope_size[50]=6 xoffset[50]=0 yslope_xfwd[50]=0 yslope_yfwd[50]=0 yslope_xbwd[50]=-1 yslope_ybwd[50]=0 yslope_size[50]=5 yoffset[50]=-1 ; ; block 51: right, backward ; xslope_xfwd[51]=0 xslope_yfwd[51]=0 xslope_xbwd[51]=0 xslope_ybwd[51]=1 xslope_size[51]=6 xoffset[51]=0 yslope_xfwd[51]=0 yslope_yfwd[51]=0 yslope_xbwd[51]=-1 yslope_ybwd[51]=0 yslope_size[51]=6 yoffset[51]=-1 ; ; block 52: right, backward ; xslope_xfwd[52]=0 xslope_yfwd[52]=0 xslope_xbwd[52]=0 xslope_ybwd[52]=1 xslope_size[52]=6 xoffset[52]=0 yslope_xfwd[52]=0 yslope_yfwd[52]=0 yslope_xbwd[52]=-1 yslope_ybwd[52]=0 yslope_size[52]=7 yoffset[52]=-1 ; ; block 53: left, backward ; xslope_xfwd[53]=0 xslope_yfwd[53]=0 xslope_xbwd[53]=0 xslope_ybwd[53]=-1 xslope_size[53]=6 xoffset[53]=-1 yslope_xfwd[53]=0 yslope_yfwd[53]=0 yslope_xbwd[53]=1 yslope_ybwd[53]=0 yslope_size[53]=6 yoffset[53]=0 ; ; block 54: 180, forward ; xslope_xfwd[54]=-1 xslope_yfwd[54]=0 xslope_xbwd[54]=0 xslope_ybwd[54]=0 xslope_size[54]=6 xoffset[54]=-1 yslope_xfwd[54]=0 yslope_yfwd[54]=-1 yslope_xbwd[54]=0 yslope_ybwd[54]=0 yslope_size[54]=6 yoffset[54]=-1 ; ; block 55: 180, forward ; xslope_xfwd[55]=-1 xslope_yfwd[55]=0 xslope_xbwd[55]=0 xslope_ybwd[55]=0 xslope_size[55]=5 xoffset[55]=-1 yslope_xfwd[55]=0 yslope_yfwd[55]=-1 yslope_xbwd[55]=0 yslope_ybwd[55]=0 yslope_size[55]=6 yoffset[55]=-1 ; ; block 56: right, backward ; xslope_xfwd[56]=0 xslope_yfwd[56]=0 xslope_xbwd[56]=0 xslope_ybwd[56]=1 xslope_size[56]=4 xoffset[56]=0 yslope_xfwd[56]=0 yslope_yfwd[56]=0 yslope_xbwd[56]=-1 yslope_ybwd[56]=0 yslope_size[56]=7 yoffset[56]=-1 ; ; block 57: 180, forward ; xslope_xfwd[57]=-1 xslope_yfwd[57]=0 xslope_xbwd[57]=0 xslope_ybwd[57]=0 xslope_size[57]=4 xoffset[57]=-1 yslope_xfwd[57]=0 yslope_yfwd[57]=-1 yslope_xbwd[57]=0 yslope_ybwd[57]=0 yslope_size[57]=7 yoffset[57]=-1 ; ; block 58: left, backward ; xslope_xfwd[58]=0 xslope_yfwd[58]=0 xslope_xbwd[58]=0 xslope_ybwd[58]=-1 xslope_size[58]=3 xoffset[58]=-1 yslope_xfwd[58]=0 yslope_yfwd[58]=0 yslope_xbwd[58]=1 yslope_ybwd[58]=0 yslope_size[58]=6 yoffset[58]=0 ; ; block 59: left, backward ; xslope_xfwd[59]=0 xslope_yfwd[59]=0 xslope_xbwd[59]=0 xslope_ybwd[59]=-1 xslope_size[59]=3 xoffset[59]=-1 yslope_xfwd[59]=0 yslope_yfwd[59]=0 yslope_xbwd[59]=1 yslope_ybwd[59]=0 yslope_size[59]=5 yoffset[59]=0 ; ; block 60: 0, forward ; xslope_xfwd[60]=1 xslope_yfwd[60]=0 xslope_xbwd[60]=0 xslope_ybwd[60]=0 xslope_size[60]=3 xoffset[60]=0 yslope_xfwd[60]=0 yslope_yfwd[60]=1 yslope_xbwd[60]=0 yslope_ybwd[60]=0 yslope_size[60]=5 yoffset[60]=0 ; ; block 61: 180, forward ; xslope_xfwd[61]=-1 xslope_yfwd[61]=0 xslope_xbwd[61]=0 xslope_ybwd[61]=0 xslope_size[61]=4 xoffset[61]=-1 yslope_xfwd[61]=0 yslope_yfwd[61]=-1 yslope_xbwd[61]=0 yslope_ybwd[61]=0 yslope_size[61]=5 yoffset[61]=-1 ; ; block 62: left, backward ; xslope_xfwd[62]=0 xslope_yfwd[62]=0 xslope_xbwd[62]=0 xslope_ybwd[62]=-1 xslope_size[62]=3 xoffset[62]=-1 yslope_xfwd[62]=0 yslope_yfwd[62]=0 yslope_xbwd[62]=1 yslope_ybwd[62]=0 yslope_size[62]=4 yoffset[62]=0 ; ; block 63: left, backward ; xslope_xfwd[63]=0 xslope_yfwd[63]=0 xslope_xbwd[63]=0 xslope_ybwd[63]=-1 xslope_size[63]=3 xoffset[63]=-1 yslope_xfwd[63]=0 yslope_yfwd[63]=0 yslope_xbwd[63]=1 yslope_ybwd[63]=0 yslope_size[63]=3 yoffset[63]=0 ; ; block 64: 0, forward ; xslope_xfwd[64]=1 xslope_yfwd[64]=0 xslope_xbwd[64]=0 xslope_ybwd[64]=0 xslope_size[64]=3 xoffset[64]=0 yslope_xfwd[64]=0 yslope_yfwd[64]=1 yslope_xbwd[64]=0 yslope_ybwd[64]=0 yslope_size[64]=3 yoffset[64]=0 ; ; block 65: 180, forward ; xslope_xfwd[65]=-1 xslope_yfwd[65]=0 xslope_xbwd[65]=0 xslope_ybwd[65]=0 xslope_size[65]=4 xoffset[65]=-1 yslope_xfwd[65]=0 yslope_yfwd[65]=-1 yslope_xbwd[65]=0 yslope_ybwd[65]=0 yslope_size[65]=3 yoffset[65]=-1 ; ; block 66: left, backward ; xslope_xfwd[66]=0 xslope_yfwd[66]=0 xslope_xbwd[66]=0 xslope_ybwd[66]=-1 xslope_size[66]=3 xoffset[66]=-1 yslope_xfwd[66]=0 yslope_yfwd[66]=0 yslope_xbwd[66]=1 yslope_ybwd[66]=0 yslope_size[66]=2 yoffset[66]=0 ; ; block 67: left, backward ; xslope_xfwd[67]=0 xslope_yfwd[67]=0 xslope_xbwd[67]=0 xslope_ybwd[67]=-1 xslope_size[67]=3 xoffset[67]=-1 yslope_xfwd[67]=0 yslope_yfwd[67]=0 yslope_xbwd[67]=1 yslope_ybwd[67]=0 yslope_size[67]=1 yoffset[67]=0 ; ; block 68: left, backward ; xslope_xfwd[68]=0 xslope_yfwd[68]=0 xslope_xbwd[68]=0 xslope_ybwd[68]=-1 xslope_size[68]=3 xoffset[68]=-1 yslope_xfwd[68]=0 yslope_yfwd[68]=0 yslope_xbwd[68]=1 yslope_ybwd[68]=0 yslope_size[68]=0 yoffset[68]=0 ; ; block 69: right, backward ; xslope_xfwd[69]=0 xslope_yfwd[69]=0 xslope_xbwd[69]=0 xslope_ybwd[69]=1 xslope_size[69]=3 xoffset[69]=0 yslope_xfwd[69]=0 yslope_yfwd[69]=0 yslope_xbwd[69]=-1 yslope_ybwd[69]=0 yslope_size[69]=1 yoffset[69]=-1 ; ; block 70: 0, forward ; xslope_xfwd[70]=1 xslope_yfwd[70]=0 xslope_xbwd[70]=0 xslope_ybwd[70]=0 xslope_size[70]=3 xoffset[70]=0 yslope_xfwd[70]=0 yslope_yfwd[70]=1 yslope_xbwd[70]=0 yslope_ybwd[70]=0 yslope_size[70]=1 yoffset[70]=0 ; ; block 71: 0, forward ; xslope_xfwd[71]=1 xslope_yfwd[71]=0 xslope_xbwd[71]=0 xslope_ybwd[71]=0 xslope_size[71]=4 xoffset[71]=0 yslope_xfwd[71]=0 yslope_yfwd[71]=1 yslope_xbwd[71]=0 yslope_ybwd[71]=0 yslope_size[71]=1 yoffset[71]=0 ; ; block 72: left, backward ; xslope_xfwd[72]=0 xslope_yfwd[72]=0 xslope_xbwd[72]=0 xslope_ybwd[72]=-1 xslope_size[72]=5 xoffset[72]=-1 yslope_xfwd[72]=0 yslope_yfwd[72]=0 yslope_xbwd[72]=1 yslope_ybwd[72]=0 yslope_size[72]=0 yoffset[72]=0 ; ; block 73: right, backward ; xslope_xfwd[73]=0 xslope_yfwd[73]=0 xslope_xbwd[73]=0 xslope_ybwd[73]=1 xslope_size[73]=5 xoffset[73]=0 yslope_xfwd[73]=0 yslope_yfwd[73]=0 yslope_xbwd[73]=-1 yslope_ybwd[73]=0 yslope_size[73]=1 yoffset[73]=-1 ; ; block 74: 0, forward ; xslope_xfwd[74]=1 xslope_yfwd[74]=0 xslope_xbwd[74]=0 xslope_ybwd[74]=0 xslope_size[74]=5 xoffset[74]=0 yslope_xfwd[74]=0 yslope_yfwd[74]=1 yslope_xbwd[74]=0 yslope_ybwd[74]=0 yslope_size[74]=1 yoffset[74]=0 ; ; block 75: 0, forward ; xslope_xfwd[75]=1 xslope_yfwd[75]=0 xslope_xbwd[75]=0 xslope_ybwd[75]=0 xslope_size[75]=6 xoffset[75]=0 yslope_xfwd[75]=0 yslope_yfwd[75]=1 yslope_xbwd[75]=0 yslope_ybwd[75]=0 yslope_size[75]=1 yoffset[75]=0 ; ; block 76: left, backward ; xslope_xfwd[76]=0 xslope_yfwd[76]=0 xslope_xbwd[76]=0 xslope_ybwd[76]=-1 xslope_size[76]=7 xoffset[76]=-1 yslope_xfwd[76]=0 yslope_yfwd[76]=0 yslope_xbwd[76]=1 yslope_ybwd[76]=0 yslope_size[76]=0 yoffset[76]=0 ; ; block 77: right, backward ; xslope_xfwd[77]=0 xslope_yfwd[77]=0 xslope_xbwd[77]=0 xslope_ybwd[77]=1 xslope_size[77]=7 xoffset[77]=0 yslope_xfwd[77]=0 yslope_yfwd[77]=0 yslope_xbwd[77]=-1 yslope_ybwd[77]=0 yslope_size[77]=1 yoffset[77]=-1 ; ; block 78: 0, forward ; xslope_xfwd[78]=1 xslope_yfwd[78]=0 xslope_xbwd[78]=0 xslope_ybwd[78]=0 xslope_size[78]=7 xoffset[78]=0 yslope_xfwd[78]=0 yslope_yfwd[78]=1 yslope_xbwd[78]=0 yslope_ybwd[78]=0 yslope_size[78]=1 yoffset[78]=0 ; ; block 79: 0, forward ; xslope_xfwd[79]=1 xslope_yfwd[79]=0 xslope_xbwd[79]=0 xslope_ybwd[79]=0 xslope_size[79]=8 xoffset[79]=0 yslope_xfwd[79]=0 yslope_yfwd[79]=1 yslope_xbwd[79]=0 yslope_ybwd[79]=0 yslope_size[79]=1 yoffset[79]=0 ; ; block 80: left, backward ; xslope_xfwd[80]=0 xslope_yfwd[80]=0 xslope_xbwd[80]=0 xslope_ybwd[80]=-1 xslope_size[80]=9 xoffset[80]=-1 yslope_xfwd[80]=0 yslope_yfwd[80]=0 yslope_xbwd[80]=1 yslope_ybwd[80]=0 yslope_size[80]=0 yoffset[80]=0 endif ; ; iterate ; ilevel=1 while(ilevel<@nlevel) ilevel=ilevel+1 go=1-go gn=1-gn iblock=-1 jpoint=-1 while(iblock<(nblock-1)) iblock=iblock+1 ipoint=-1 while(ipoint<(npoint-1)) ipoint=ipoint+1 xfwd=round(real(zsf[go,ipoint])) yfwd=round(imag(zsf[go,ipoint])) xbwd=round(real(zsf[go,npoint-1-ipoint])) ybwd=round(imag(zsf[go,npoint-1-ipoint])) xnew=xslope_xfwd[iblock]*xfwd+xslope_yfwd[iblock]*yfwd+\ xslope_xbwd[iblock]*xbwd+xslope_ybwd[iblock]*ybwd+\ xslope_size[iblock]*round(@block_size^(ilevel-1))+xoffset[iblock] ynew=yslope_xfwd[iblock]*xfwd+yslope_yfwd[iblock]*yfwd+\ yslope_xbwd[iblock]*xbwd+yslope_ybwd[iblock]*ybwd+\ yslope_size[iblock]*round(@block_size^(ilevel-1))+yoffset[iblock] jpoint=jpoint+1 zsf[gn,jpoint]=xnew+flip(ynew) endwhile endwhile npoint=npoint*nblock endwhile init: complex t=(0,0) complex z1=(0,0) complex z2=(0,0) complex zscaled=(0,0) float rl=0 float rmin=1e20 float xl=0 float yl=0 int il=0 int imin=0 loop: final: zscaled=#z/@scalefac-@offsetz il=0 while(il<(npoint-1)) il=il+1 z1=zsf[gn,il-1] z2=zsf[gn,il] rl=cabs((z1+z2)/2-zscaled) if(rl<@speedup) t=(zscaled-z1)/(z2-z1) xl=real(t) yl=imag(t) if(xl<0) rl=sqr(xl)+sqr(yl) if(@square_caps) rl=|xl| if(|yl|>rl) rl=|yl| endif endif elseif(xl>1) rl=sqr(xl-1)+sqr(yl) if(@square_caps) rl=|xl-1| if(|yl|>rl) rl=|yl| endif endif else rl=sqr(yl) endif rl=2*sqrt(rl)*cabs(z2-z1) if(rl@line_width) #solid=true else if(@colorby=="outline") #index=rmin/@line_width elseif(@colorby=="which line") #index=imin/(npoint-1) endif endif default: title="Square Space-Filling Curves" heading text="Draws or colors according to a space-filling curve based on\ a square grid. Be sure to set the 'block size' according to the \ type of curve you're using." endheading param block_type caption="curve type" default=0 enum="2x2 - Hilbert" "3x3 - min/S" "3x3 - cbf/max" "4x4 - min" "4x4 - spiral"\ "4x4 - cbf" "4x4 - max" "5x5 - min" "5x5 - S" "5x5 - cbf" "5x5 - diag a" \ "5x5 - diag b" "5x5 - max" "6x6 - min" "6x6 - spiral" "6x6 - cbf" \ "6x6 - max" "7x7 - min" "7x7 - S" "7x7 - cbf" "7x7 - diag a" "7x7 - diag b" \ "7x7 - max" "8x8 - min" "8x8 - spiral" "8x8 - cbf" "8x8 - max" "9x9 - min" \ "9x9 - S" "9x9 - cbf" "9x9 - diag a" "9x9 - diag b" "9x9 - max" endparam int param block_size caption="block size" default=2 hint="Set this according to the 'curve type', for example, set to 5 \ for the '5x5 - min' curve." min=2 endparam int param nlevel caption="# levels" default=2 min=1 endparam complex param scalefac caption="scale factor" default=1 hint="Use this to resize the curve to fit your fractal." endparam complex param offsetz caption="offset" default=0 hint="Use this to move the curve to fit your fractal." endparam float param speedup caption="speedup threshold" default=1.25 min=0 endparam param colorby caption="color by" default=0 enum="outline" "which line" endparam float param line_width caption="line width" default=0.5 min=0 endparam bool param square_caps caption="square caps" default=true endparam } connector { ; Kerry Mitchell 21Aug2014 ; ; Draws a straight line between two points ; Designed for use with Square Space-Filling Curves formula ; $define debug init: complex t=(0,0) float xl=0 float yl=0 float rl=0 loop: final: t=(#z-@z1)/(@z2-@z1) xl=real(t) yl=imag(t) if(xl<0) rl=sqr(xl)+sqr(yl) if(@square_caps) rl=|xl| if(|yl|>rl) rl=|yl| endif endif elseif(xl>1) rl=sqr(xl-1)+sqr(yl) if(@square_caps) rl=|xl-1| if(|yl|>rl) rl=|yl| endif endif else rl=sqr(yl) endif rl=2*sqrt(rl)*cabs(@z2-@z1)/@line_width if(rl>1) #solid=true else #index=rl endif default: title="Connector" heading text="Draws a straight line between 2 points. Intended for use\ with Square Space-Filling Curves formula." endheading complex param z1 caption="first point" default=(1,0) endparam complex param z2 caption="second point" default=(2,0) endparam float param line_width caption="line width" default=0.1 endparam bool param square_caps caption="square caps" default=true endparam } whirls { ; Kerry Mitchell 02Feb15 ; ; Draws whirls--sets of nested polygons inside of a base polygon ; $define debug global: complex c[@nside,@niter] float fac[@nside] float facabs=0 int gi=0 int gj=0 int jlast=0 int jnext=0 int jnow=0 ; ; initializations ; c[0,0]=@corner1 c[1,0]=@corner2 c[2,0]=@corner3 fac[0]=@factor1 fac[1]=@factor2 fac[2]=@factor3 if(@nside>3) c[3,0]=@corner4 fac[3]=@factor4 if(@nside>4) c[4,0]=@corner5 fac[4]=@factor5 if(@nside>5) c[5,0]=@corner6 fac[5]=@factor6 if(@nside>6) c[6,0]=@corner7 fac[6]=@factor7 if(@nside>7) c[7,0]=@corner8 fac[7]=@factor8 if(@nside>8) c[8,0]=@corner9 fac[8]=@factor9 if(@nside>9) c[9,0]=@corner10 fac[9]=@factor10 if(@nside>10) c[10,0]=@corner11 fac[10]=@factor11 if(@nside>11) c[11,0]=@corner12 fac[11]=@factor12 endif endif endif endif endif endif endif endif endif ; ; iterate ; gi=0 while(gi<(@niter-1)) gi=gi+1 gj=-1 while(gj<(@nside-1)) gj=gj+1 jnow=gj jnext=(gj+1)%@nside jlast=(gj-1+@nside)%@nside facabs=abs(fac[jnow]) if(fac[jnow]<0) c[jnow,gi]=c[jnow,gi-1]+facabs*(c[jlast,gi-1]-c[jnow,gi-1]) else c[jnow,gi]=c[jnow,gi-1]+facabs*(c[jnext,gi-1]-c[jnow,gi-1]) endif endwhile endwhile init: complex t=(0,0) complex z1=(0,0) complex z2=(0,0) float r=0 float rmin=1e20 float x=0 float y=0 int i=0 int j=0 int nn=0 int np=0 int inlast=0 int iplast=0 loop: final: inlast=-1 iplast=-1 i=-1 while(i<(@niter-1)) i=i+1 nn=0 np=0 j=-1 while(j<(@nside-1)) j=j+1 z1=c[j,i] z2=c[((j+1)%@nside),i] t=(#pixel-z1)/(z2-z1) x=real(t) y=imag(t) if(y<=0) nn=nn+1 endif if(y>=0) np=np+1 endif if(x<=0) r=sqr(x)+sqr(y) elseif(x>=1) r=sqr(x-1)+sqr(y) else r=sqr(y) endif r=sqrt(r)*cabs(z2-z1) if(r@line_width) #solid=true else #index=rmin/@line_width endif elseif(@colorby=="which") if(inlast>=0) #solid=false #index=inlast/@niter elseif(iplast>=0) #solid=false #index=iplast/@niter else #solid=true endif endif default: title="Whirls" heading text="Draws a whirl--a set of nested polygons inside of a base polygon. \ It may not be suitable for general fractaling." endheading ; ; general parameters ; heading caption="General parameters" endheading int param nside caption="# corners" default=4 min=3 max=12 endparam int param niter caption="# iterations" default=50 min=1 endparam param colorby caption="color by" default=0 enum="outline" "which" endparam float param line_width caption="line width" default=0.01 visible=(@colorby=="outline") endparam ; ; base polygon points ; heading caption="Base Polygon Corners" endheading complex param corner1 caption="corner 1" default=(1,1) endparam complex param corner2 caption="corner 2" default=(-1,1) endparam complex param corner3 caption="corner 3" default=(-1,-1) endparam complex param corner4 caption="corner 4" default=(1,-1) visible=(@nside>3) endparam complex param corner5 caption="corner 5" default=(0,0) visible=(@nside>4) endparam complex param corner6 caption="corner 6" default=(0,0) visible=(@nside>5) endparam complex param corner7 caption="corner 7" default=(0,0) visible=(@nside>6) endparam complex param corner8 caption="corner 8" default=(0,0) visible=(@nside>7) endparam complex param corner9 caption="corner 9" default=(0,0) visible=(@nside>8) endparam complex param corner10 caption="corner 10" default=(0,0) visible=(@nside>9) endparam complex param corner11 caption="corner 11" default=(0,0) visible=(@nside>10) endparam complex param corner12 caption="corner 12" default=(0,0) visible=(@nside>11) endparam ; ; factors ; heading caption="Factors" endheading float param factor1 caption="factor 1" default=0.1 endparam float param factor2 caption="factor 2" default=0.1 endparam float param factor3 caption="factor 3" default=0.1 endparam float param factor4 caption="factor 4" default=0.1 visible=(@nside>3) endparam float param factor5 caption="factor 5" default=0.1 visible=(@nside>4) endparam float param factor6 caption="factor 6" default=0.1 visible=(@nside>5) endparam float param factor7 caption="factor 7" default=0.1 visible=(@nside>6) endparam float param factor8 caption="factor 8" default=0.1 visible=(@nside>7) endparam float param factor9 caption="factor 9" default=0.1 visible=(@nside>8) endparam float param factor10 caption="factor 10" default=0.1 visible=(@nside>9) endparam float param factor11 caption="factor 11" default=0.1 visible=(@nside>10) endparam float param factor12 caption="factor 12" default=0.1 visible=(@nside>11) endparam } edit-distance { ; Kerry Mitchell 02Dec2015 ; ; Uses the Wagner-Fischer algorithm to color by the ; Levenshtein edit distance between two variables (e.g., ; real(z) and imag(z), or mag(z) and angle(z)). ; ; Digit base is variable (defaults to decimal-base 10). ; Use 'add digits' to increase the number of digits used. ; Can color by the last distance or the average over the ; last several iterations (specify number of iterations to skip). ; ; References: ; https://en.wikipedia.org/wiki/Levenshtein_distance ; https://en.wikipedia.org/wiki/Wagner%E2%80%93Fischer_algorithm ; ; Updated 25Dec2015 to add digit-difference edit distance: ; distance = sum of |digit_x - digit_y| ; $define debug init: float dtotal=0 float scale=0 int d[40,40] int d1=0 int d2=0 int d3=0 int digmax=0 int dmin=0 int i=0 int iter=0 int j=0 int longx=0 int longy=0 int m=0 int modbase=0 int n=0 int xdig[40] int ydig[40] ; ; clear digit arrays ; m=-1 while(m<39) m=m+1 xdig[m]=0 ydig[m]=0 endwhile ; ; set numerals for digit base ; e.g. if the digit base (@basie) = 1.618, the numeral set is 0, 1 (mod 2) ; generally, digit set = 0, ... floor (digit base - 1) ; if(@basie>=2) modbase=trunc(@basie) else modbase=2 endif scale=abs(modbase)^@add_digits loop: if(@colorby=="average") iter=iter+1 if(iter>@iterskip) ; ; x digits ; if(@x_type=="constant") longx=trunc(abs(@const*scale)) elseif(@x_type=="real(z)") longx=trunc(abs(real(#z*scale))) elseif(@x_type=="imag(z)") longx=trunc(abs(imag(#z*scale))) elseif(@x_type=="mag(z)") longx=trunc(cabs(#z*scale)) elseif(@x_type=="angle(z)") longx=trunc(abs(atan2(#z*scale))) elseif(@x_type=="real(pixel)") longx=trunc(abs(real(#pixel*scale))) elseif(@x_type=="imag(pixel)") longx=trunc(abs(imag(#pixel*scale))) elseif(@x_type=="mag(pixel)") longx=trunc(cabs(#pixel*scale)) elseif(@x_type=="angle(pixel)") longx=trunc(abs(atan2(#pixel*scale))) endif m=ceil(log(abs(longx+1))/log(@basie)) i=-1 while(i<(m-1)) i=i+1 xdig[i]=trunc(abs(longx)/(@basie^i))%modbase endwhile ; ; y digits ; if(@y_type=="constant") longy=trunc(abs(@const*scale)) elseif(@y_type=="real(z)") longy=trunc(abs(real(#z*scale))) elseif(@y_type=="imag(z)") longy=trunc(abs(imag(#z*scale))) elseif(@y_type=="mag(z)") longy=trunc(cabs(#z*scale)) elseif(@y_type=="angle(z)") longy=trunc(abs(atan2(#z*scale))) elseif(@y_type=="real(pixel)") longy=trunc(abs(real(#pixel*scale))) elseif(@y_type=="imag(pixel)") longy=trunc(abs(imag(#pixel*scale))) elseif(@y_type=="mag(pixel)") longy=trunc(cabs(#pixel*scale)) elseif(@y_type=="angle(pixel)") longy=trunc(abs(atan2(#pixel*scale))) endif n=ceil(log(abs(longy+1))/log(@basie)) j=-1 while(j<(n-1)) j=j+1 ydig[j]=trunc(abs(longy)/(@basie^j))%modbase endwhile ; ; determine edit distance ; if(@distance_type=="Levenshtein") ; ; distance matrix ; i=-1 while(im) digmax=n endif d3=0 j=-1 while(j<(digmax-1)) j=j+1 d3=d3+abs(xdig[j]-ydig[j]) endwhile dtotal=dtotal+d3/digmax endif endif endif final: if(@colorby=="average") #index=dtotal/(iter-@iterskip)/10 else ; ; x digits ; if(@x_type=="constant") longx=trunc(abs(@const*scale)) elseif(@x_type=="real(z)") longx=trunc(abs(real(#z*scale))) elseif(@x_type=="imag(z)") longx=trunc(abs(imag(#z*scale))) elseif(@x_type=="mag(z)") longx=trunc(cabs(#z*scale)) elseif(@x_type=="angle(z)") longx=trunc(abs(atan2(#z*scale))) elseif(@x_type=="real(pixel)") longx=trunc(abs(real(#pixel*scale))) elseif(@x_type=="imag(pixel)") longx=trunc(abs(imag(#pixel*scale))) elseif(@x_type=="mag(pixel)") longx=trunc(cabs(#pixel*scale)) elseif(@x_type=="angle(pixel)") longx=trunc(abs(atan2(#pixel*scale))) endif m=ceil(log(abs(longx+1))/log(@basie)) i=-1 while(i<(m-1)) i=i+1 xdig[i]=trunc(abs(longx)/(@basie^i))%modbase endwhile ; ; y digits ; if(@y_type=="constant") longy=trunc(abs(@const*scale)) elseif(@y_type=="real(z)") longy=trunc(abs(real(#z*scale))) elseif(@y_type=="imag(z)") longy=trunc(abs(imag(#z*scale))) elseif(@y_type=="mag(z)") longy=trunc(cabs(#z*scale)) elseif(@y_type=="angle(z)") longy=trunc(abs(atan2(#z*scale))) elseif(@y_type=="real(pixel)") longy=trunc(abs(real(#pixel*scale))) elseif(@y_type=="imag(pixel)") longy=trunc(abs(imag(#pixel*scale))) elseif(@y_type=="mag(pixel)") longy=trunc(cabs(#pixel*scale)) elseif(@y_type=="angle(pixel)") longy=trunc(abs(atan2(#pixel*scale))) endif n=ceil(log(abs(longy+1))/log(@basie)) j=-1 while(j<(n-1)) j=j+1 ydig[j]=trunc(abs(longy)/(@basie^j))%modbase endwhile ; ; determine edit distance ; if(@distance_type=="Levenshtein") ; ; distance matrix ; i=-1 while(im) digmax=n endif d3=0 j=-1 while(j<(digmax-1)) j=j+1 d3=d3+abs(xdig[j]-ydig[j]) endwhile #index=d3/digmax/10 endif endif default: title="Edit Distance" heading text="Colors by the edit distance between 2 variables" endheading param distance_type caption="distance type" default=1 enum="digit difference" "Levenshtein" endparam param x_type caption="1st variable" default=1 enum="constant" "real(z)" "imag(z)" "mag(z)" "angle(z)"\ "real(pixel)" "imag(pixel)" "mag(pixel)" "angle(pixel)" endparam param y_type caption="2nd variable" default=2 enum="constant" "real(z)" "imag(z)" "mag(z)" "angle(z)"\ "real(pixel)" "imag(pixel)" "mag(pixel)" "angle(pixel)" endparam float param const caption="constant" default=3.1415926535897932384626433832795 visible=((@x_type=="constant")||(@y_type=="constant")) endparam float param add_digits caption="add digits" default=3 endparam param colorby caption="color by" default=0 enum="last" "average" endparam int param iterskip caption="iterations to skip" default=0 min=0 visible=(@colorby=="average") endparam float param basie caption="digit base" default=10 min=1 endparam } guilloche-spiral { ; Kerry Mitchell 28 March 2021 ; ; More of a drawing formula than a true fractal coloring formula, but use it as ; you see fit. Draws a guilloche spiral between two closed curves. ; ; Specify "inner" and "outer" curves and spiral parameters. ; $define debug global: complex temp=(0,0) complex zcircle=(0,0) complex zg[round(@npoint+1)] complex zpinner[10] complex zpouter[10] float bigpi=100*#pi float cornerinner[10] float corner1inner=0 float corner2inner=0 float corner3inner=0 float corner4inner=0 float cornerouter[10] float corner1outer=0 float corner2outer=0 float corner3outer=0 float corner4outer=0 float deltax=0 float deltay=0 float dtheta=(@tmaxturns-@tminturns)*2*#pi/@npoint float k=0 float linner=cabs(@centerinner-@centerspiral) float louter=cabs(@centerouter-@centerspiral) float phi=0 float psiinner=atan2(@centerinner-@centerspiral) float psiouter=atan2(@centerouter-@centerspiral) float rg=0 float rinner=0 float router=0 float rotinner=@rotdinner/180*#pi float rotouter=@rotdouter/180*#pi float rho=0 float theta=0 float tmax=@tmaxturns*2*#pi float tmin=@tminturns*2*#pi float tt=0 float twopi=2*#pi float xx=0 float yy=0 int i=0 int kp1=0 int kp2=0 int whichside=0 ; ; set up square corners ; if(@typeinner=="square") temp=@centerinner+@sideinner/2*(-1,-1)-@centerspiral corner1inner=atan2(temp) temp=@centerinner+@sideinner/2*(1,-1)-@centerspiral corner2inner=atan2(temp) temp=@centerinner+@sideinner/2*(1,1)-@centerspiral corner3inner=atan2(temp) temp=@centerinner+@sideinner/2*(-1,1)-@centerspiral corner4inner=atan2(temp) endif if(@typeouter=="square") temp=@centerouter+@sideouter/2*(-1,-1)-@centerspiral corner1outer=atan2(temp) temp=@centerouter+@sideouter/2*(1,-1)-@centerspiral corner2outer=atan2(temp) temp=@centerouter+@sideouter/2*(1,1)-@centerspiral corner3outer=atan2(temp) temp=@centerouter+@sideouter/2*(-1,1)-@centerspiral corner4outer=atan2(temp) endif ; ; general polygon corners ; if(@typeinner=="general polygon") zpinner[0]=@inpoly1 zpinner[1]=@inpoly2 zpinner[2]=@inpoly3 zpinner[3]=@inpoly4 zpinner[4]=@inpoly5 zpinner[5]=@inpoly6 zpinner[6]=@inpoly7 zpinner[7]=@inpoly8 zpinner[8]=@inpoly9 zpinner[9]=@inpoly10 i=-1 while(i<(@ninpoly-1)) i=i+1 temp=zpinner[i]-@centerspiral cornerinner[i]=atan2(temp) endwhile endif if(@typeouter=="general polygon") zpouter[0]=@outpoly1 zpouter[1]=@outpoly2 zpouter[2]=@outpoly3 zpouter[3]=@outpoly4 zpouter[4]=@outpoly5 zpouter[5]=@outpoly6 zpouter[6]=@outpoly7 zpouter[7]=@outpoly8 zpouter[8]=@outpoly9 zpouter[9]=@outpoly10 i=-1 while(i<(@noutpoly-1)) i=i+1 temp=zpouter[i]-@centerspiral cornerouter[i]=atan2(temp) endwhile endif ; i=-1 while(i<@npoint) i=i+1 theta=i*dtheta+tmin ; ; find point on inner curve and its radius ; if(@typeinner=="circle") k=sin(psiinner-theta)/@radiusinner phi=theta-asin(k*linner) zcircle=@radiusinner*(cos(phi)+flip(sin(phi)))+@centerinner rinner=cabs(zcircle-@centerspiral) elseif(@typeinner=="square") temp=@centerinner-@centerspiral tt=(theta+bigpi)%(twopi)-#pi if(tt=corner1inner)&&(tt=corner2inner)&&(tt=corner3inner)&&(tt=#pi) tt=tt-2*#pi endif kp1=-1 whichside=-99 while(kp1<(@ninpoly-1)) kp1=kp1+1 kp2=(kp1+1)%@ninpoly if((tt>=cornerinner[kp1])&&(tt=corner1outer)&&(tt=corner2outer)&&(tt=corner3outer)&&(tt=#pi) tt=tt-2*#pi endif kp1=-1 whichside=-99 while(kp1<(@noutpoly-1)) kp1=kp1+1 kp2=(kp1+1)%@noutpoly if((tt>=cornerouter[kp1])&&(tt@boundradiusinner)\ &&(cabs(#pixel-@centerouter)<@boundradiusouter)) dopoint=true elseif(@bound==false) dopoint=true endif if(dopoint==true) ; j=0 while(j<@npoint) j=j+1 z1=zg[j-1] z2=zg[j] t=(#pixel-z1)/(z2-z1) x=real(t) y=imag(t) if(x<0) r=sqr(x)+sqr(y) elseif(x>1) r=sqr(x-1)+sqr(y) else r=sqr(y) endif r=sqrt(r)*cabs(z2-z1) if(r@linewidth) #solid=true else if(@colorby=="outline") #index=rmin/@linewidth elseif(@colorby=="which line") #index=lastmin/@npoint endif endif default: title="Guilloche Spiral" ; ; General parameters ; heading caption="General" endheading int param npoint caption="# points on spiral" default=100 endparam complex param centerspiral caption="spiral center" default=(0,0) endparam float param tminturns caption="min angle, turns" default=0 endparam float param tmaxturns caption="max angle, turns" default=4 endparam float param power caption="spiral power" default=1 endparam param colorby caption="color by" default=0 enum="outline" "which line" endparam float param linewidth caption="line width" default=0.01 endparam bool param bound caption="bounding circle?" default=true endparam float param boundradiusinner caption="inner radius" default=0 visible=(@bound==true) endparam float param boundradiusouter caption="outer radius" default=2 visible=(@bound==true) endparam bool param printlength caption="print length?" default=false endparam ; ; Inner curve ; heading caption="Inner curve" endheading param typeinner caption="type" default=0 enum="circle" "square" "rose curve" "general polygon" endparam complex param centerinner caption="center" default=(0,0) visible=(@typeinner!="general polygon") endparam float param radiusinner caption="radius" default=0.5 visible=(@typeinner=="circle") endparam float param sideinner caption="side" default=1 visible=(@typeinner=="square") endparam float param acosinner caption="cos amplitude" default=1 visible=(@typeinner=="rose curve") endparam float param bcosinner caption="cos frequency" default=3 visible=(@typeinner=="rose curve") endparam float param asininner caption="sin amplitude" default=0 visible=(@typeinner=="rose curve") endparam float param bsininner caption="sin frequency" default=0 visible=(@typeinner=="rose curve") endparam float param rotdinner caption="rotation, deg" default=0 visible=(@typeinner=="rose curve") endparam int param ninpoly caption="# sides" default=3 min=2 visible=(@typeinner=="general polygon") endparam complex param inpoly1 caption="corner 1" default=(-0.5,-0.866) visible=(@typeinner=="general polygon") endparam complex param inpoly2 caption="corner 2" default=(1,0) visible=(@typeinner=="general polygon") endparam complex param inpoly3 caption="corner 3" default=(-0.5,0.866) visible=((@typeinner=="general polygon")&&(@ninpoly>2)) endparam complex param inpoly4 caption="corner 4" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>3)) endparam complex param inpoly5 caption="corner 5" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>4)) endparam complex param inpoly6 caption="corner 6" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>5)) endparam complex param inpoly7 caption="corner 7" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>6)) endparam complex param inpoly8 caption="corner 8" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>7)) endparam complex param inpoly9 caption="corner 9" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>8)) endparam complex param inpoly10 caption="corner 10" default=(0,0) visible=((@typeinner=="general polygon")&&(@ninpoly>9)) endparam ; ; Outer curve ; heading caption="Outer curve" endheading param typeouter caption="type" default=0 enum="circle" "square" "rose curve" "general polygon" endparam complex param centerouter caption="center" default=(0,0) visible=(@typeouter!="general polygon") endparam float param radiusouter caption="radius" default=2 visible=(@typeouter=="circle") endparam float param sideouter caption="side" default=4 visible=(@typeouter=="square") endparam float param acosouter caption="cos amplitude" default=1 visible=(@typeouter=="rose curve") endparam float param bcosouter caption="cos frequency" default=3 visible=(@typeouter=="rose curve") endparam float param asinouter caption="sin amplitude" default=0 visible=(@typeouter=="rose curve") endparam float param bsinouter caption="sin frequency" default=0 visible=(@typeouter=="rose curve") endparam float param rotdouter caption="rotation, deg" default=0 visible=(@typeouter=="rose curve") endparam int param noutpoly caption="# sides" default=3 min=2 visible=(@typeouter=="general polygon") endparam complex param outpoly1 caption="corner 1" default=(-0.5,-0.866) visible=(@typeouter=="general polygon") endparam complex param outpoly2 caption="corner 2" default=(1,0) visible=(@typeouter=="general polygon") endparam complex param outpoly3 caption="corner 3" default=(-0.5,0.866) visible=((@typeouter=="general polygon")&&(@noutpoly>2)) endparam complex param outpoly4 caption="corner 4" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>3)) endparam complex param outpoly5 caption="corner 5" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>4)) endparam complex param outpoly6 caption="corner 6" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>5)) endparam complex param outpoly7 caption="corner 7" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>6)) endparam complex param outpoly8 caption="corner 8" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>7)) endparam complex param outpoly9 caption="corner 9" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>8)) endparam complex param outpoly10 caption="corner 10" default=(0,0) visible=((@typeouter=="general polygon")&&(@noutpoly>9)) endparam } 4d-attractors { ; Kerry Mitchell 22 May 2021 ; ; General framework for continuous 4D attractors ; of the form xdot=f(x,y,z,w), ydot=g(x,y,z,w), etc. ; ; Supported attractors: ; Bouali hyperchaotic https://arxiv.org/ftp/arxiv/papers/1503/1503.08872.pdf ; Chen ; Rossler 4D http://www.scholarpedia.org/article/Hyperchaos ; initial variables: (x,y,z,w) = (-10,-6,0,10) ; Thomas (extended to 4D, with 4 parameters) https://en.wikipedia.org/wiki/Thomas%27_cyclically_symmetric_attractor ; Yu-Wang https://link.springer.com/article/10.1007/s11071-009-9607-8 ; ; See https://en.wikipedia.org/wiki/List_of_chaotic_maps for other attractors ; ; Numerical integration techniques: https://www.efunda.com/math/num_ode/num_ode.cfm ; ; Point cloud version ; $define debug global: ; ; variables for screen array ; complex rot=cos(#angle)-flip(sin(#angle)) complex worbit=(0,0) complex zorbit=(0,0) float fac=4/#magn if(4*#height<3*#width) fac=0.75*#width*fac/#height endif float xmin=real(#center)-fac/2 float xmax=xmin+fac float rdx=#width/(xmax-xmin) fac=fac*#height/#width float ymax=imag(#center)+fac/2 float ymin=ymax-fac float rdy=#height/(ymax-ymin) float xr=0 float yi=0 int gi=0 int gj=0 int gipix=0 int gjpix=0 int gn=round(sqrt(@samplefac*#width*#height)) int hits[#width,#height] ; ; attractor variables ; float imag1=0 float imag2=0 float imag3=0 float imag4=0 float real1=0 float real2=0 float real3=0 float real4=0 float wdot=0 float wk1=0 float wk2=0 float wk3=0 float wk4=0 float wsa=@initialw float xdot=0 float xk1=0 float xk2=0 float xk3=0 float xk4=0 float xsa=@initialx float ydot=0 float yk1=0 float yk2=0 float yk3=0 float yk4=0 float ysa=@initialy float zdot=0 float zimag=0 float zk1=0 float zk2=0 float zk3=0 float zk4=0 float zreal=0 float zsa=@initialz ; ; clear out pixel arrays ; gjpix=-1 while(gjpix<(#height-1)) gjpix=gjpix+1 gipix=-1 while(gipix<(#width-1)) gipix=gipix+1 hits[gipix,gjpix]=0 endwhile endwhile ; ; compute orbit ; gj=0 while(gj1) if(@realc2=="x") real2=xsa elseif(@realc2=="y") real2=ysa elseif(@realc2=="z") real2=zsa elseif(@realc2=="w") real2=wsa elseif(@realc2=="xdot") real2=xdot elseif(@realc2=="ydot") real2=ydot elseif(@realc2=="zdot") real2=zdot elseif(@realc2=="wdot") real2=wdot endif endif if(@nrealc>2) if(@realc3=="x") real3=xsa elseif(@realc3=="y") real3=ysa elseif(@realc3=="z") real3=zsa elseif(@realc3=="w") real3=wsa elseif(@realc3=="xdot") real3=xdot elseif(@realc3=="ydot") real3=ydot elseif(@realc3=="zdot") real3=zdot elseif(@realc3=="wdot") real3=wdot endif endif if(@nrealc>3) if(@realc4=="x") real4=xsa elseif(@realc4=="y") real4=ysa elseif(@realc4=="z") real4=zsa elseif(@realc4=="w") real4=wsa elseif(@realc4=="xdot") real4=xdot elseif(@realc4=="ydot") real4=ydot elseif(@realc4=="zdot") real4=zdot elseif(@realc4=="wdot") real4=wdot endif endif ; ; combine real components and operators ; zreal=@realw1*real1 if(@nrealc>1) if(@realop1=="+") zreal=zreal+(@realw2*real2) elseif(@realop1=="-") zreal=zreal-(@realw2*real2) elseif(@realop1=="*") zreal=zreal*(@realw2*real2) elseif(@realop1=="/") zreal=zreal/(@realw2*real2) endif endif if(@nrealc>2) if(@realop2=="+") zreal=zreal+(@realw3*real3) elseif(@realop2=="-") zreal=zreal-(@realw3*real3) elseif(@realop2=="*") zreal=zreal*(@realw3*real3) elseif(@realop2=="/") zreal=zreal/(@realw3*real3) endif endif if(@nrealc>3) if(@realop3=="+") zreal=zreal+(@realw4*real4) elseif(@realop3=="-") zreal=zreal-(@realw4*real4) elseif(@realop3=="*") zreal=zreal*(@realw4*real4) elseif(@realop3=="/") zreal=zreal/(@realw4*real4) endif endif ; ; imaginary components ; if(@imagc1=="x") imag1=xsa elseif(@imagc1=="y") imag1=ysa elseif(@imagc1=="z") imag1=zsa elseif(@imagc1=="w") imag1=wsa elseif(@imagc1=="xdot") imag1=xdot elseif(@imagc1=="ydot") imag1=ydot elseif(@imagc1=="zdot") imag1=zdot elseif(@imagc1=="wdot") imag1=wdot endif if(@nimagc>1) if(@imagc2=="x") imag2=xsa elseif(@imagc2=="y") imag2=ysa elseif(@imagc2=="z") imag2=zsa elseif(@imagc2=="w") imag2=wsa elseif(@imagc2=="xdot") imag2=xdot elseif(@imagc2=="ydot") imag2=ydot elseif(@imagc2=="zdot") imag2=zdot elseif(@imagc2=="wdot") imag2=wdot endif endif if(@nimagc>2) if(@imagc3=="x") imag3=xsa elseif(@imagc3=="y") imag3=ysa elseif(@imagc3=="z") imag3=zsa elseif(@imagc3=="w") imag3=wsa elseif(@imagc3=="xdot") imag3=xdot elseif(@imagc3=="ydot") imag3=ydot elseif(@imagc3=="zdot") imag3=zdot elseif(@imagc3=="wdot") imag3=wdot endif endif if(@nimagc>3) if(@imagc4=="x") imag4=xsa elseif(@imagc4=="y") imag4=ysa elseif(@imagc4=="z") imag4=zsa elseif(@imagc4=="w") imag4=wsa elseif(@imagc4=="xdot") imag4=xdot elseif(@imagc4=="ydot") imag4=ydot elseif(@imagc4=="zdot") imag4=zdot elseif(@imagc4=="wdot") imag4=wdot endif endif ; ; combine imag components and operators ; zimag=@imagw1*imag1 if(@nimagc>1) if(@imagop1=="+") zimag=zimag+(@imagw2*imag2) elseif(@imagop1=="-") zimag=zimag-(@imagw2*imag2) elseif(@imagop1=="*") zimag=zimag*(@imagw2*imag2) elseif(@imagop1=="/") zimag=zimag/(@imagw2*imag2) endif endif if(@nimagc>2) if(@imagop2=="+") zimag=zimag+(@imagw3*imag3) elseif(@imagop2=="-") zimag=zimag-(@imagw3*imag3) elseif(@imagop2=="*") zimag=zimag*(@imagw3*imag3) elseif(@imagop2=="/") zimag=zimag/(@imagw3*imag3) endif endif if(@nimagc>3) if(@imagop3=="+") zimag=zimag+(@imagw4*imag4) elseif(@imagop3=="-") zimag=zimag-(@imagw4*imag4) elseif(@imagop3=="*") zimag=zimag*(@imagw4*imag4) elseif(@imagop3=="/") zimag=zimag/(@imagw4*imag4) endif endif ; ; combine into zorbit ; zorbit=zreal+flip(zimag) endif if(gj>@transfac) worbit=(zorbit-#center)*rot+#center xr=real(worbit) yi=imag(worbit) if((xr>xmin)&&(xrymin)&&(yi1)) endparam param realc2 caption="real component 2" default=1 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nrealc>1)) endparam float param realw2 caption="real component 2 weight" default=1 visible=((@view_type=="custom")&&(@nrealc>1)) endparam param realop2 caption="real operator 2" default=2 enum="+" "-" "*" "/" visible=((@view_type=="custom")&&(@nrealc>2)) endparam param realc3 caption="real component 3" default=2 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nrealc>2)) endparam float param realw3 caption="real component 3 weight" default=1 visible=((@view_type=="custom")&&(@nrealc>2)) endparam param realop3 caption="real operator 3" default=3 enum="+" "-" "*" "/" visible=((@view_type=="custom")&&(@nrealc>3)) endparam param realc4 caption="real component 4" default=3 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nrealc>3)) endparam float param realw4 caption="real component 3 weight" default=1 visible=((@view_type=="custom")&&(@nrealc>3)) endparam ; ; custom view type, build imaginary part ; int param nimagc caption="# imaginary components" default=1 min=1 max=4 visible=(@view_type=="custom") endparam param imagc1 caption="imaginary component 1" default=3 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=(@view_type=="custom") endparam float param imagw1 caption="imaginary component 1 weight" default=1 visible=(@view_type=="custom") endparam param imagop1 caption="imaginary operator 1" default=0 enum="+" "-" "*" "/" visible=((@view_type=="custom")&&(@nimagc>1)) endparam param imagc2 caption="imaginary component 2" default=4 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nimagc>1)) endparam float param imagw2 caption="imaginary component 2 weight" default=1 visible=((@view_type=="custom")&&(@nimagc>1)) endparam param imagop2 caption="imaginary operator 2" default=2 enum="+" "-" "*" "/" visible=((@view_type=="custom")&&(@nimagc>2)) endparam param imagc3 caption="imaginary component 3" default=5 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nimagc>2)) endparam float param imagw3 caption="imaginary component 3 weight" default=1 visible=((@view_type=="custom")&&(@nimagc>2)) endparam param imagop3 caption="imaginary operator 3" default=3 enum="+" "-" "*" "/" visible=((@view_type=="custom")&&(@nimagc>3)) endparam param imagc4 caption="imaginary component 4" default=6 enum="x" "y" "z" "w" "xdot" "ydot" "zdot" "wdot" visible=((@view_type=="custom")&&(@nimagc>3)) endparam float param imagw4 caption="imaginary component 4 weight" default=1 visible=((@view_type=="custom")&&(@nimagc>3)) endparam ; ; Variable Initializations ; heading caption="Variables and Parameters" endheading float param initialx caption="initial x" default=1 endparam float param initialy caption="initial y" default=2 endparam float param initialz caption="initial z" default=3 endparam float param initialw caption="initial w" default=4 endparam ; ; parameters ; float param dt caption="time step" default=0.001 endparam ; ; Bouali ; float param boualpha caption="alpha" default=-2 visible=(@attractor=="Bouali") endparam float param boubeta caption="beta" default=1 visible=(@attractor=="Bouali") endparam float param bougamma caption="gamma" default=0.2 visible=(@attractor=="Bouali") endparam float param bounu caption="nu" default=1 visible=(@attractor=="Bouali") endparam ; ; Chen ; float param chena caption="a" default=35 visible=(@attractor=="Chen") endparam float param chenb caption="b" default=3 visible=(@attractor=="Chen") endparam float param chenc caption="c" default=12 visible=(@attractor=="Chen") endparam float param chend caption="d" default=7 visible=(@attractor=="Chen") endparam float param chenr caption="r" default=0.3 visible=(@attractor=="Chen") endparam ; ; Rossler ; float param rossa caption="a" default=0.25 visible=(@attractor=="Rossler") endparam float param rossb caption="b" default=3 visible=(@attractor=="Rossler") endparam float param rossc caption="c" default=0.5 visible=(@attractor=="Rossler") endparam float param rossd caption="d" default=0.05 visible=(@attractor=="Rossler") endparam ; ; Thomas ; float param thoma caption="a" default=0.2 visible=(@attractor=="Thomas") endparam float param thomb caption="b" default=0.2 visible=(@attractor=="Thomas") endparam float param thomc caption="c" default=0.2 visible=(@attractor=="Thomas") endparam float param thomd caption="d" default=0.2 visible=(@attractor=="Thomas") endparam ; ; Yu-Wang ; float param ywa caption="a" default=8 visible=(@attractor=="Yu-Wang") endparam float param ywb caption="b" default=5 visible=(@attractor=="Yu-Wang") endparam float param ywc caption="c" default=12 visible=(@attractor=="Yu-Wang") endparam float param ywd caption="d" default=60 visible=(@attractor=="Yu-Wang") endparam float param ywe caption="e" default=4 visible=(@attractor=="Yu-Wang") endparam }