as-PolarCurves { ;Andrea Spinozzi(Dec. 2006) Global: complex rota[3] complex rota[0]=(0,1)^(@rota0/90.0) complex rota[1]=(0,1)^(@rota1/90.0) complex rota[2]=(0,1)^(@rota2/90.0) float newpoint[2] float newpoint[0]=@circ_pointP float newpoint[1]=@circ_pointQ float affine[1] float affine[0]=|@s0| Init: trap_z=0.0 trap_p=0.0 index=0.0 int iter=0 float distance=0.0 float o_distance=0.0 int trap_iter=0 bool trapped=false float min_dist=1e30 float point_dist=0.0 float radius_dist=0.0 float s=0.0 float theta[1] float radiP[5] float affcoord[2] complex points[2] int ra=1322939 int rc=7336919 int rm=36282757 if @no_of_iters == 0 int max_iter=#maxiter - @skip else int max_iter=@skip + @no_of_iters endif ;Toby Morph complex z2=(0,0) complex z3=(0,0) complex z4=(0,0) complex z1p=(0,0) complex z1q=(0,0) complex qw=(0,0) complex er=(0,0) complex ty=(0,0) complex nuvar=(0,0) tw=@tw tw2= @tw2 tw3=@tw3 tw4=@tw4 tw5=@tw5 tw6=@tw6 exp1=@exp1 exp2=@exp2 exp3=@exp3 exp4=@exp4 exp5=@exp5 exp6=@exp6 ;Toby Texture complex tz=(0,0) p=(0.0,0.0) pfb=(0.0,0.0) float x=0 float y=0 float xx =0 float yy =0 float ddd=0 float texture_rnd=0.0 float texture_dec=0.0 float texture_fbm=0.0 float texture_gna=0.0 float pd=0.0 int i=0 int it=0 float aaa=0 float texture=0.0 float tx=abs(@tp) float a2=0 complex tz=(0,0) float ct=abs(@tc*1000) float rn=real(#random) float t2=0 complex trap2_z=(0,0) float texture_tr=0.0 complex ptr=(0,0) float frfr=0 float fifi=0 float zzzz=0 float r0r0=0 float i0i0=0 float r1r1=0 float i1i1=0 float azaz=0 float bzbz=0 float czcz=0 float dzdz=0 float zaza=0 float avav=1 float xbxb=1 complex z_values[#maxiter+1] float za=0 Loop: iter=iter+1 complex pixel1=#z complex z1=#z float x=real(z1) float y=imag(z1) float affcoord[0]=real(z1) float affcoord[1]=imag(z1) ;----------------------Circular Inversion--------------------------------------- c=@invcenter complex z1=(pixel1-c)*rota[2] ;apply translation and rotation z1=real(z1)+flip(imag(z1)*@aspect) ;apply aspect float d=1.0 IF (@invpower==(-1,0)) ;standard power z1=@invscale*z1*d/|z1| ;do inversion (Kerry-optimized) ELSE ;general power z1=@invscale*z1*d*cabs(z1)^(@invpower) ;do inversion ENDIF z1=real(z1)+flip(imag(z1)/@aspect) ;undo aspect pixel1=z1*conj(rota[2])+c ;undo rotation and translation ;--------------------------------Morph------------------------------------------ if @tha2 == false qw=@nufunc(z1-tw)^exp3 er=@nufunc2((z1-tw2)^exp1) ty=@nufunc3((z1-tw3)^exp2) if @change == "1" z1=@nufunc(z1-tw)^exp1 elseif @change == "2" z1=qw+er elseif @change == "3" z1=qw-er elseif @change == "4" z1=qw*er elseif @change == "5" z1=qw/er elseif @change == "6" z1=qw^er elseif @change == "7" if @op == "+" z1=qw+(er+ty) elseif @op == "-" z1=qw+(er-ty) elseif @op == "*" z1=qw+(er*ty) elseif @op == "/" z1=qw+(er/ty) elseif @op == "^" z1=qw+(er^ty) endif elseif @change == "8" if @op == "+" z1=qw-(er+ty) elseif @op == "-" z1=qw-(er-ty) elseif @op == "*" z1=qw-(er*ty) elseif @op == "/" z1=qw-(er/ty) elseif @op == "^" z1=qw-(er^ty) endif elseif @change == "9" if @op == "+" z1=qw*(er+ty) elseif @op == "-" z1=qw*(er-ty) elseif @op == "*" z1=qw*(er*ty) elseif @op == "/" z1=qw*(er/ty) elseif @op == "^" z1=qw*(er^ty) endif elseif @change == "10" if @op == "+" z1=qw/(er+ty) elseif @op == "-" z1=qw/(er-ty) elseif @op == "*" z1=qw/(er*ty) elseif @op == "/" z1=qw/(er/ty) elseif @op == "^" z1=qw/(er^ty) endif elseif @change == "11" if @op == "+" z1=qw^(er+ty) elseif @op == "-" z1=qw^(er-ty) elseif @op == "*" z1=qw^(er*ty) elseif @op == "/" z1=qw^(er/ty) elseif @op == "^" z1=qw^(er^ty) endif endif else if @zchange1 == "|z|" z2=|z1| elseif @zchange1 == "atan2(z)" z2=atan2(z1) elseif @zchange1 == "real(z)" z2=real(z1) elseif @zchange1 == "imag(z)" z2=imag(z1) endif if @zchange2 == "|z|" z3=|z1| elseif @zchange2 == "atan2(z)" z3=atan2(z1) elseif @zchange2 == "real(z)" z3=real(z1) elseif @zchange2 == "imag(z)" z3=imag(z1) endif if @zchange3 == "|z|" z4=|z1| elseif @zchange3 == "atan2(z)" z4=atan2(z1) elseif @zchange3 == "real(z)" z4=real(z1) elseif @zchange3 == "imag(z)" z4=imag(z1) endif aa=@nufunc((z1-tw)+@nufunc4(z2-tw4)^exp4) bb=@nufunc((z1-tw)-@nufunc4(z2-tw4)^exp4) cc=@nufunc4((z2-tw4)^exp4-@nufunc(z1-tw)) ff=real((z3-tw5)^exp5) dd=@nufunc5(ff) jj=(z4-tw6) kk=(z1-tw2) oo=(z1-tw3) gg=@nufunc2(kk) hh=@nufunc6(jj)^exp6 pp=@nufunc3(oo) if @mmode == "z+|z|" nuvar=aa elseif @mmode == "z-|z|" nuvar=bb elseif @mmode == "|z|-z" nuvar=cc endif if @change == "1" z1=nuvar^exp1 elseif @change == "2" if @mmode2 == "z+|z|" z1=nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1=nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1=nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1=nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1=nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1=nuvar^exp3+@nufunc5(ff/gg)^exp1 endif elseif @change == "3" if @mmode2 == "z+|z|" z1=nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1=nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1=nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1=nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1=nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1=nuvar^exp3-@nufunc5(ff/gg)^exp1 endif elseif @change == "4" if @mmode2 == "z+|z|" z1=nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1=nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1=nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1=nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1=nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1=nuvar^exp3*@nufunc5(ff/gg)^exp1 endif elseif @change == "5" if @mmode2 == "z+|z|" z1=nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1=nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1=nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1=nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1=nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1=nuvar^exp3/@nufunc5(ff/gg)^exp1 endif elseif @change == "6" if @mmode2 == "z+|z|" z1=nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1=nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1=nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1=nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1=nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1=nuvar^exp3^@nufunc5(ff/gg)^exp1 endif elseif @change == "7" if @mmode3 == "z+|z|" z1q=@nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q=@nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q=@nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q=@nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q=@nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q=@nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p= nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p= nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p= nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p= nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p= nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p= nuvar^exp3+@nufunc5(ff/gg)^exp1 endif if @op == "+" z1=z1q + z1p elseif @op == "-" z1=z1q - z1p elseif @op == "*" z1=z1q * z1p elseif @op == "/" z1=z1q / z1p elseif @op == "^" z1=z1q ^ z1p endif elseif @change == "8" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q=@nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q=@nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q=@nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q=@nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q=@nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p= nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p= nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p= nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p= nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p= nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p= nuvar^exp3-@nufunc5(ff/gg)^exp1 endif if @op == "+" z1=z1q + z1p elseif @op == "-" z1=z1q - z1p elseif @op == "*" z1=z1q * z1p elseif @op == "/" z1=z1q / z1p elseif @op == "^" z1=z1q ^ z1p endif elseif @change == "9" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q=@nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q=@nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q=@nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q=@nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q=@nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p= nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p= nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p= nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p= nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p= nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p= nuvar^exp3*@nufunc5(ff/gg)^exp1 endif if @op == "+" z1=z1q + z1p elseif @op == "-" z1=z1q - z1p elseif @op == "*" z1=z1q * z1p elseif @op == "/" z1=z1q / z1p elseif @op == "^" z1=z1q ^ z1p endif elseif @change == "10" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q=@nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q=@nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q=@nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q=@nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q=@nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p= nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p= nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p= nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p= nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p= nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p= nuvar^exp3/@nufunc5(ff/gg)^exp1 endif if @op == "+" z1=z1q + z1p elseif @op == "-" z1=z1q - z1p elseif @op == "*" z1=z1q * z1p elseif @op == "/" z1=z1q / z1p elseif @op == "^" z1=z1q ^ z1p endif elseif @change == "11" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q=@nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q=@nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q=@nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q=@nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q=@nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p= nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p= nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p= nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p= nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p= nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p= nuvar^exp3^@nufunc5(ff/gg)^exp1 endif if @op == "+" z1=z1q + z1p elseif @op == "-" z1=z1q - z1p elseif @op == "*" z1=z1q * z1p elseif @op == "/" z1=z1q / z1p elseif @op == "^" z1=z1q ^ z1p endif endif endif ;------------------------------Polar Curves------------------------------------- if @optheta==0 ;Change theta and rotation of Z if desired float theta[0]=atan2(@fnz1(z1*rota[0])) elseif @optheta==1 float theta[0]=real(@fnzr1(z1*rota[0])) elseif @optheta==2 float theta[0]=imag(@fnzi1(z1*rota[1])) elseif @optheta==3 float theta[0]=real(@fnzr1(z1*rota[0]))+imag(@fnzi1(z1*rota[1])) elseif @optheta==4 float theta[0]=real(@fnzr1(z1*rota[0]))*imag(@fnzi1(z1*rota[1])) elseif @optheta==5 float theta[0]=real(@fnzr1(z1*rota[0]))/imag(@fnzi1(z1*rota[1])) elseif @optheta==6 float theta[0]=imag(@fnzi1(z1*rota[1]))/real(@fnzr1(z1*rota[0])) elseif @optheta==7 float theta[0]=cabs(@fnz1(z1*rota[0])) elseif @optheta==8 float theta[0]=|(@fnz1(z1*rota[0]))| endif float theta[0]=real(fn1(theta[0])*p2) if @vartypeX==0 x=x elseif @vartypeX==1 x=|x| elseif @vartypeX==2 x=atan2(x) endif if @vartypeY==0 y=y elseif @vartypeY==1 y=|y| elseif @vartypeY==2 y=atan2(y) endif if @opadd=="None" ;--------------------Mix theta with x,y------------------ theta[0]=theta[0] elseif @opadd=="+(X+Y)" theta[0]=theta[0]+real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="+(X*Y)" theta[0]=theta[0]+real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="+(X/Y)" theta[0]=theta[0]+real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="+(Y/X)" theta[0]=theta[0]+real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="+(X^Y)" theta[0]=theta[0]+real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="+(Y^X)" theta[0]=theta[0]+real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(X+Y)" theta[0]=theta[0]*real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(X*Y)" theta[0]=theta[0]*real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(X/Y)" theta[0]=theta[0]*real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(Y/X)" theta[0]=theta[0]*real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(X^Y)" theta[0]=theta[0]*real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="*(Y^X)" theta[0]=theta[0]*real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(X+Y)" theta[0]=theta[0]/real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(X*Y)" theta[0]=theta[0]/real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(X/Y)" theta[0]=theta[0]/real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(Y/X)" theta[0]=theta[0]/real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(X^Y)" theta[0]=theta[0]/real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="/(Y^X)" theta[0]=theta[0]/real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(X+Y)" theta[0]=theta[0]^real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(X*Y)" theta[0]=theta[0]^real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(X/Y)" theta[0]=theta[0]^real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(Y/X)" theta[0]=theta[0]^real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(X^Y)" theta[0]=theta[0]^real((@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) elseif @opadd=="^(Y^X)" theta[0]=theta[0]^real(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ (@nufuncxtx(x-@xtra1x)*@xtra2x)^@xtra3x) float theta[0]=real(@varFn(@varFn1(theta[0])*@xb2)^@xb3) endif ;------------------------------------Curves radius------------------------------ if (@trap_mode==0) ;Arachnida radiP[0]=@arach*sin(2*@arach1*theta[0])/sin((2*@arach1-1)*theta[0]) elseif (@trap_mode==1) ;Bifolium radiP[0]=4*@bif1*sin(theta[0])^2*cos(theta[0])*@bif2 elseif (@trap_mode==2) ;Butterfly radiP[0]=@butt1*#e^sin(theta[0])-2*cos(4*theta[0]*@butt2)+sin(1/36*(2*theta[0]-#pi))^5 elseif (@trap_mode==3) ;Cardioid radiP[0]=@card1*(1-cos(theta[0])^@card2) elseif (@trap_mode==4) ;Circle radiP[0]=@circ1 elseif (@trap_mode==5) ;Cissoid Of Diocles radiP[0]=2*@ciss1*sin(theta[0])*tan(theta[0]*@ciss2) elseif (@trap_mode==6) ;Cranioid radiP[0]=@cran1*sin(theta[0])+@cran2*sqrt(1-@cran3*cos(theta[0])^2)+@cran4*sqrt(1-@cran5*cos(theta[0])^2) elseif (@trap_mode==7) ;Conchoid Of Nicomedes radiP[0]=@conc1+@conc2*1/cos(theta[0]) elseif (@trap_mode==8) ;Cote's Spiral radiP[0]=@cot1/cosh(@cot2*(theta[0])+@cot3) elseif (@trap_mode==9) ;Cycloid Of Ceva radiP[0]=@cev1*(1+2*cos(2*theta[0]*@cev2)) elseif (@trap_mode==10) ;Eight Curve radiP[0]=@eight1^2*(1/cos(theta[0])*@eight2)^4*cos(2*theta[0])*@eight2 elseif (@trap_mode==11) ;Epispiral radiP[0]=@epi1*(1/cos(@epi2*theta[0])) elseif (@trap_mode==12) ;Folium Of Descartes radiP[0]=(3*@foli1*(1/cos(theta[0]*@foli2)*tan(theta[0]*@foli2)))/(1+tan(theta[0]*@foli2)^3) elseif (@trap_mode==13) ;Hyperbola radiP[0]=(@hyp1^2*@hyp2^2)/(@hyp2^2*cos(theta[0])^2-@hyp1^2*sin(theta[0])^2) elseif (@trap_mode==14) ;Kampyle of Eudoxus radiP[0]=@kamp1^2/(@kamp2*cos(theta[0])^2) elseif (@trap_mode==15) ;Lemniscate Of Bernoulli radiP[0]=@lemni1^2*cos(2*theta[0]+@lemni2)^@lemni3 elseif (@trap_mode==16) ;Limacon Of Pascal radiP[0]=@lima1+2*@lima2*cos(theta[0]) elseif (@trap_mode==17) ;Lituus radiP[0]=(@litu1^2)/(theta[0]*@litu2) elseif (@trap_mode==18) ;Log Spiral radiP[0]=@log1*#e^(@log2*theta[0]) elseif (@trap_mode==19) ;Neoid radiP[0]=@neo1*theta[0]+@neo2 elseif (@trap_mode==20) ;Ophiuride radiP[0]=(@ophi1*sin(theta[0])^@ophi3-(@ophi2*cos(theta[0])^@ophi4))*tan(theta[0])*@ophi5 elseif (@trap_mode==21) ;Quadratix Of Hippias radiP[0]=(2*@quad1*theta[0])/(#pi*sin(theta[0])*@quad2) elseif (@trap_mode==22) ;Quadrifolium radiP[0]=@quadr1*sin(2*theta[0])^@quadr2 elseif (@trap_mode==23) ;Rose radiP[0]=@rose1*cos(@rose2*theta[0]) elseif (@trap_mode==24) ;Rose Of Troy radiP[0]=1+@rost1*sin(@rost2*theta[0]) elseif (@trap_mode==25) ;Scarabeus radiP[0]=@scar1*cos(2*theta[0])-@scar2*cos(theta[0]) elseif (@trap_mode==26) ;Semicubical Parabola radiP[0]=@semi1*(tan(theta[0])^2*(1/cos(theta[0])))/@semi2 elseif (@trap_mode==27) ;Sextic Of Cayley radiP[0]=4*@sext1*cos(theta[0]/3*@sext2)^3 elseif (@trap_mode==28) ;Spiral Of Archimedes radiP[0]=@arch1*(theta[0]^1/@arch2) elseif (@trap_mode==29) ;Strophoid radiP[0]=@stroph1*sin(@stroph2-2*theta[0])/cos(@stroph2-theta[0]) elseif (@trap_mode==30) ;Trifolium radiP[0]=-@trif1*cos(3*theta[0])*@trif2 elseif (@trap_mode==31) ;Build Your Own if (@selown==0) radiP[0]=@byo1*real(@fnbyo1(theta[0]))+real(@fnbyo2(theta[0]))*@byo2 elseif (@selown==1) radiP[0]=@byo1*real(@fnbyo1(theta[0]))*real(@fnbyo2(theta[0]))*@byo2 elseif (@selown==2) radiP[0]=@byo1*real(@fnbyo1(theta[0]))/real(@fnbyo2(theta[0]))*@byo2 endif endif if (@op_swirlR==true) ; Add Swirl radiP[0]=radiP[0]+(sin(6*cos(x^2+y^2)-@swirl*theta[0])) endif float radiP[0]=radiP[0] ;----------------------------------Create trap point---------------------------- trap_point=fn3(radiP[0])*fn4(sin(theta[0]))+flip(@fn5(radiP[0])*@fn6(cos(theta[0]))) if (@adv_extra==false) ; Normal Mode if @wild==0 float point_dist=cabs(@fnz(z1)-@fntemp(trap_point-@point)) elseif @wild==1 float point_dist=real(@fnz(z1)-@fntemp(trap_point-@point)) elseif @wild==2 float point_dist=imag(@fnz(z1)-@fntemp(trap_point-@point)) endif float radius_dist=abs(cabs(@fnz(z1)) - radiP[0]) else ;--------------------------------------Advantage Mode---------------- ;---------------------------------Affine Transformations------------------------ if (@affinesc==0) float s=affine[0] elseif (@affinesc==1) float s=cabs(sqrt( (real(affcoord[0])^2+flip(imag(affcoord[1]))^2) - affine[0]^2 )) endif float x0=@adv_x0 float y0=@adv_y0 float alpha=theta[0] float x_pt=(s*cos(alpha))*x+(s*sin(alpha))*y-s*(x0*cos(alpha)+y0*sin(alpha)) float y_pt=(-s*sin(alpha))*x+(s*cos(alpha))*y+s*(x0*sin(alpha)-y0*cos(alpha)) ;------------------------Create a new flavor radius----------------------------- if (@trap_mode1==0) ;Arachnida radiP[3]=@arach0*sin(2*@arach11*theta[0])/sin((2*@arach11-1)*theta[0]) elseif (@trap_mode1==1) ;Bifolium radiP[3]=4*@bif11*sin(theta[0])^2*cos(theta[0])*@bif21 elseif (@trap_mode1==2) ;Butterfly radiP[3]=@butt11*#e^sin(theta[0])-2*cos(4*theta[0]*@butt21)+sin(1/36*(2*theta[0]-#pi))^5 elseif (@trap_mode1==3) ;Cardioid radiP[3]=@card11*(1-cos(theta[0])^@card21) elseif (@trap_mode1==4) ;Circle radiP[3]=@circ11 elseif (@trap_mode1==5) ;Cissoid Of Diocles radiP[3]=2*@ciss11*sin(theta[0])*tan(theta[0]*@ciss21) elseif (@trap_mode1==6) ;Cranioid radiP[3]=@cran11*sin(theta[0])+@cran21*sqrt(1-@cran31*cos(theta[0])^2)+@cran41*sqrt(1-@cran51*cos(theta[0])^2) elseif (@trap_mode1==7) ;Conchoid Of Nicomedes radiP[3]=@conc11+@conc21*1/cos(theta[0]) elseif (@trap_mode1==8) ;Cote's Spiral radiP[3]=@cot11/cosh(@cot21*(theta[0])+@cot31) elseif (@trap_mode1==9) ;Cycloid Of Ceva radiP[3]=@cev11*(1+2*cos(2*theta[0]*@cev21)) elseif (@trap_mode1==10) ;Eight Curve radiP[3]=@eight11^2*(1/cos(theta[0])*@eight21)^4*cos(2*theta[0])*@eight21 elseif (@trap_mode1==11) ;Epispiral radiP[3]=@epi11*(1/cos(@epi21*theta[0])) elseif (@trap_mode1==12) ;Folium Of Descartes radiP[3]=(3*@foli11*(1/cos(theta[0]*@foli21)*tan(theta[0]*@foli21)))/(1+tan(theta[0]*@foli21)^3) elseif (@trap_mode1==13) ;Hyperbola radiP[3]=(@hyp11^2*@hyp2^2)/(@hyp21^2*cos(theta[0])^2-@hyp11^2*sin(theta[0])^2) elseif (@trap_mode1==14) ;Kampyle of Eudoxus radiP[3]=@kamp11^2/(@kamp21*cos(theta[0])^2) elseif (@trap_mode1==15) ;Lemniscate Of Bernoulli radiP[3]=@lemni11^2*cos(2*theta[0]+@lemni21)^@lemni31 elseif (@trap_mode1==16) ;Limacon Of Pascal radiP[3]=@lima11+2*@lima21*cos(theta[0]) elseif (@trap_mode1==17) ;Lituus radiP[3]=(@litu11^2)/(theta[0]*@litu21) elseif (@trap_mode1==18) ;Log Spiral radiP[3]=@log11*#e^(@log21*theta[0]) elseif (@trap_mode1==19) ;Neoid radiP[3]=@neo11*theta[0]+@neo21 elseif (@trap_mode1==20) ;Ophiuride radiP[3]=(@ophi11*sin(theta[0])^@ophi31-(@ophi21*cos(theta[0])^@ophi41))*tan(theta[0])*@ophi51 elseif (@trap_mode1==21) ;Quadratix Of Hippias radiP[3]=(2*@quad11*theta[0])/(#pi*sin(theta[0])*@quad21) elseif (@trap_mode1==22) ;Quadrifolium radiP[3]=@quadr11*sin(2*theta[0])^@quadr21 elseif (@trap_mode1==23) ;Rose radiP[3]=@rose11*cos(@rose21*theta[0]) elseif (@trap_mode1==24) ;Rose Of Troy radiP[3]=1+@rost11*sin(@rost21*theta[0]) elseif (@trap_mode1==25) ;Scarabeus radiP[3]=@scar11*cos(2*theta[0])-@scar21*cos(theta[0]) elseif (@trap_mode1==26) ;Semicubical Parabola radiP[3]=@semi11*(tan(theta[0])^2*(1/cos(theta[0])))/@semi21 elseif (@trap_mode1==27) ;Sextic Of Cayley radiP[3]=4*@sext11*cos(theta[0]/3*@sext21)^3 elseif (@trap_mode1==28) ;Spiral Of Archimedes radiP[3]=@arch11*(theta[0]^1/@arch21) elseif (@trap_mode1==29) ;Strophoid radiP[3]=@stroph11*sin(@stroph21-2*theta[0])/cos(@stroph21-theta[0]) elseif (@trap_mode1==30) ;Trifolium radiP[3]=-@trif11*cos(3*theta[0])*@trif21 elseif (@trap_mode1==31) ;Build Your Own if (@selown1==0) radiP[3]=@byo11*real(@fnbyo11(theta[0]))+real(@fnbyo21(theta[0]))*@byo21 elseif (@selown1==1) radiP[3]=@byo11*real(@fnbyo11(theta[0]))*real(@fnbyo21(theta[0]))*@byo21 elseif (@selown1==2) radiP[3]=@byo11*real(@fnbyo11(theta[0]))/real(@fnbyo21(theta[0]))*@byo21 endif endif if (@op_swirlR==true) ; Add swirl like as in RadiP[0] radiP[3]=radiP[3]+(sin(6*cos(x^2+y^2)-@swirl*theta[0])) endif ;------------------------Create two mix radius---------------------------------- radiP[0]=(radiP[0]-@point1)*@adv_mr theta[0]=(theta[0]-@point2)*@adv_mTh radiP[1]=@adv_addr1+real(@fnadv_r1(radiP[0])*@fnadv_th1(theta[0]))*@adv_mult1 radiP[2]=@adv_addr2+real(@fnadv_r2(radiP[3])*@fnadv_th2(theta[0]))*@adv_mult2 ;-----------------------------------Mix radius---------------------------------- if (@advradi==0) radiP[3]=radiP[3] radiP[0]=radiP[0] elseif (@advradi==1) radiP[3]=radiP[3]+radiP[1] radiP[0]=radiP[0]+radiP[2] elseif (@advradi==2) radiP[3]=radiP[3]*radiP[1] radiP[0]=radiP[0]*radiP[2] endif ;--points[0] and points[1] trapped with the basic and flavor trap--------------- points[0]=radiP[0]*sin(theta[0])+flip(radiP[0]*cos(theta[0])) points[1]=radiP[3]*sin(theta[0])+flip(radiP[3]*cos(theta[0])) ;---Add Affine coordinates------------------------------------------------------ if (@affdist==0) points[0]=z1*(real(x_pt)+flip(imag(y_pt))) - points[0] points[1]=z1*(real(x_pt)+flip(imag(y_pt))) - points[1] elseif (@affdist==1) points[0]=z1^2*(real(x_pt)+flip(imag(y_pt)) )^2 - points[0]^2 points[1]=z1^2*(real(x_pt)+flip(imag(y_pt)) )^2 - points[1]^2 endif ;--------------------------------Light\Shape Offset----------------------------- points[0]=points[0]-newpoint[0] points[1]=points[1]-newpoint[1] ;--------------------Now mix point[0] and point[1]------------------------- if (@mix==0) radiP[4]= real( @fngn1( @fngn2( @fnadv_cp(points[0]) * @fnadv_cq(points[1]) ))) elseif (@mix==1) radiP[4]= real( @fnadv_cp(points[0])) + imag( @fnadv_cq(points[1]) ) elseif (@mix==2) radiP[4]= real( @fnadv_cp(points[0])) * imag( @fnadv_cq(points[1]) ) elseif (@mix==3) radiP[4]= real( @fnadv_cp(points[0])) / imag( @fnadv_cq(points[1]) ) elseif (@mix==4) radiP[4]= real( @fnadv_cp(points[0])) + real( @fnadv_cq(points[1]) ) elseif (@mix==5) radiP[4]= real( @fnadv_cp(points[0])) * real( @fnadv_cq(points[1]) ) elseif (@mix==6) radiP[4]= imag( @fnadv_cp(points[0])) + imag( @fnadv_cq(points[1]) ) elseif (@mix==7) radiP[4]= imag( @fnadv_cp(points[0])) * imag( @fnadv_cq(points[1]) ) endif ;----------------------Final trapped point--------------------------------------- trap_point=fn3(radiP[4])*fn4(sin(theta[0]))+flip(@fn5(radiP[4])*@fn6(cos(theta[0]))) ;----------------------------Point Distance------------------------------------- if @wild==0 float point_dist=cabs(@fnz(z1)-@fntemp(trap_point-@point)) elseif @wild==1 float point_dist=real(@fnz(z1)-@fntemp(trap_point-@point)) elseif @wild==2 float point_dist=imag(@fnz(z1)-@fntemp(trap_point-@point)) endif float radius_dist=abs(cabs(@fnz(z1)) - radiP[4]) endif ;----------------------------Transfer Functions--------------------------------- float point_dist=point_dist*@presc if @usecabs==true if (@var_d==0) float point_dist=cabs(point_dist) elseif (@var_d==1) float point_dist=cabs(log(point_dist)) elseif (@var_d==2) float point_dist=cabs(point_dist^(1/3)) elseif (@var_d==3) float point_dist=cabs(sqr(point_dist)) elseif (@var_d==4) float point_dist=cabs(sqrt(point_dist)) elseif (@var_d==5) float point_dist=cabs(point_dist^3) elseif (@var_d==6) float point_dist=cabs(sin(point_dist)) elseif (@var_d==7) float point_dist=cabs(cos(point_dist)) elseif (@var_d==8) float point_dist=cabs(exp(point_dist)) elseif (@var_d==9) float point_dist=cabs(atan(point_dist)) endif else if (@var_d==0) float point_dist=point_dist elseif (@var_d==1) float point_dist=log(point_dist) elseif (@var_d==2) float point_dist=point_dist^(1/3) elseif (@var_d==3) float point_dist=sqr(point_dist) elseif (@var_d==4) float point_dist=sqrt(point_dist) elseif (@var_d==5) float point_dist=point_dist^3 elseif (@var_d==6) float point_dist=sin(point_dist) elseif (@var_d==7) float point_dist=cos(point_dist) elseif (@var_d==8) float point_dist=exp(point_dist) elseif (@var_d==9) float point_dist=atan(point_dist) endif endif float point_dist=point_dist*@postsc ;-------------------------------Trap Mode(Mark Townsend Method)----------------- if @mode == 0 ; Closest if (iter >= @skip && iter < max_iter) \ && radius_dist < min_dist min_dist=radius_dist distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif elseif @mode == 1 ; First near if (iter >= @skip && iter < max_iter) \ && !trapped && radius_dist < @width trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif elseif @mode == 2 ; Last near if (iter >= @skip && iter < max_iter) \ && radius_dist < @width trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif elseif @mode == 3 ; First within if (@adv_extra==false) if (iter >= @skip && iter < max_iter) \ && !trapped && cabs(z1) < radiP[0] trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif else if (iter >= @skip && iter < max_iter) \ && !trapped && cabs(z1) < radiP[4] trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif endif elseif @mode == 4 ; Last within if (@adv_extra==false) if (iter >= @skip && iter < max_iter) \ && cabs(z1) < radiP[0] trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif else if (iter >= @skip && iter < max_iter) \ && cabs(z1) < radiP[4] trapped=true distance=radius_dist o_distance=point_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif endif elseif @mode == 5 ; Closest point if (iter >= @skip && iter < max_iter) \ && point_dist < min_dist min_dist=point_dist distance=point_dist o_distance=radius_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif elseif @mode == 6 ; First point if (iter >= @skip && iter < max_iter) \ && !trapped && point_dist < @width trapped=true distance=point_dist o_distance=radius_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif elseif @mode == 7 ; Last point if (iter >= @skip && iter < max_iter) \ && point_dist < @width trapped=true distance=point_dist o_distance=radius_dist trap_iter=iter trap_z=z1 trap2_z=#z trap_p=trap_point endif endif ;-------------------------------------------Progressive Morph------------------- if @linear=="Linear" if @incTwr tw=tw + @twistrDegree endif if @incTwi tw=tw + @twistiDegree*(0,1) endif if @incTw2r tw2=tw2 + @twist2rDegree endif if @incTw2i tw2=tw2 + @twist2iDegree*(0,1) endif if @incTw3r tw3=tw3 + @twist3rDegree endif if @incTw3i tw3=tw3 + @twist3iDegree*(0,1) endif if @incTw4r tw4=tw4 + @twist4rDegree endif if @incTw4i tw4=tw4 + @twist4iDegree*(0,1) endif if @incTw5r tw5=tw5 + @twist5rDegree endif if @incTw5i tw5= tw5 + @twist5iDegree*(0,1) endif if @incTw6r tw6=tw6 + @twist6rDegree endif if @incTw6i tw6=tw6 + @twist6iDegree*(0,1) endif if @incExp1r exp1=exp1 + @exp1rDegree endif if @incExp1i exp1=exp1 + @exp1iDegree*(0,1) endif if @incExp2r exp2=exp2 + @exp2rDegree endif if @incExp2i exp2=exp2 + @exp2iDegree*(0,1) endif if @incExp3r exp3=exp3 + @exp3rDegree endif if @incExp3i exp3=exp3 + @exp3iDegree*(0,1) endif if @incExp4r exp4=exp4 + @exp4rDegree endif if @incExp4i exp4=exp4 + @exp4iDegree*(0,1) endif if @incExp5r exp5=exp5 + @exp5rDegree endif if @incExp5i exp5= exp5 + @exp5iDegree*(0,1) endif if @incExp6r exp6=exp6 + @exp6rDegree endif if @incExp6i exp6=exp6 + @exp6iDegree*(0,1) endif elseif @linear=="Non-Linear 1" if @incTwr tw=tw + @twistrDegree /(@twistrDegree-@speed) endif if @incTwi tw=tw + @twistiDegree /(@twistiDegree-@speed)*(0,1) endif if @incTw2r tw2=tw2 + @twist2rDegree /(@twist2rDegree-@speed) endif if @incTw2i tw2=tw2 + @twist2iDegree/(@twist2iDegree-@speed)*(0,1) endif if @incTw3r tw3=tw3 + @twist3rDegree /(@twist3rDegree-@speed) endif if @incTw3i tw3=tw3 + @twist3iDegree /(@twist3iDegree-@speed)*(0,1) endif if @incTw4r tw4=tw4 + @twist4rDegree /(@twist4rDegree-@speed) endif if @incTw4i tw4=tw4 + @twist4iDegree /(@twist4iDegree-@speed)*(0,1) endif if @incTw5r tw5=tw5 + @twist5rDegree /(@twist5rDegree-@speed) endif if @incTw5i tw5= tw5 + @twist5iDegree/(@twist5iDegree-@speed)*(0,1) endif if @incTw6r tw6=tw6 + @twist6rDegree /(@twist6rDegree-@speed) endif if @incTw6i tw6=tw6 + @twist6iDegree /(@twist6iDegree-@speed)*(0,1) endif if @incExp1r exp1=exp1 + @exp1rDegree /(@exp1rDegree-@speed) endif if @incExp1i exp1=exp1 + @exp1iDegree/(@exp1iDegree-@speed)*(0,1) endif if @incExp2r exp2=exp2 + @exp2rDegree /(@exp2rDegree-@speed) endif if @incExp2i exp2=exp2 + @exp2iDegree /(@exp2iDegree-@speed)*(0,1) endif if @incExp3r exp3=exp3 + @exp3rDegree /(@exp3rDegree-@speed) endif if @incExp3i exp3=exp3 + @exp3iDegree /(@exp3iDegree-@speed)*(0,1) endif if @incExp4r exp4=exp4 + @exp4rDegree /(@exp4rDegree-@speed) endif if @incExp4i exp4=exp4 + @exp4iDegree /(@exp4iDegree-@speed)*(0,1) endif if @incExp5r exp5=exp5 + @exp5rDegree /(@exp5rDegree-@speed) endif if @incExp5i exp5=exp5 + @exp5iDegree /(@exp5iDegree-@speed)*(0,1) endif if @incExp6r exp6=exp6 + @exp6rDegree /(@exp6rDegree-@speed) endif if @incExp6i exp6=exp6 + @exp6iDegree/(@exp6iDegree-@speed)*(0,1) endif elseif @linear=="Non-Linear 2" if @incTwr tw=tw + @twistrDegree /(@twistrDegree-1i*pi*@speed) endif if @incTwi tw=tw + @twistiDegree /(@twistiDegree-1i*pi*@speed)*(0,1) endif if @incTw2r tw2=tw2 + @twist2rDegree /(@twist2rDegree-1i*pi*@speed) endif if @incTw2i tw2=tw2 + @twist2iDegree/(@twist2iDegree-1i*pi*@speed)*(0,1) endif if @incTw3r tw3=tw3 + @twist3rDegree /(@twist3rDegree-1i*pi*@speed) endif if @incTw3i tw3=tw3 + @twist3iDegree /(@twist3iDegree-1i*pi*@speed)*(0,1) endif if @incTw4r tw4=tw4 + @twist4rDegree /(@twist4rDegree-1i*pi*@speed) endif if @incTw4i tw4=tw4 + @twist4iDegree /(@twist4iDegree-1i*pi*@speed)*(0,1) endif if @incTw5r tw5=tw5 + @twist5rDegree /(@twist5rDegree-1i*pi*@speed) endif if @incTw5i tw5=tw5 + @twist5iDegree/(@twist5iDegree-1i*pi*@speed)*(0,1) endif if @incTw6r tw6=tw6 + @twist6rDegree /(@twist6rDegree-1i*pi*@speed) endif if @incTw6i tw6=tw6 + @twist6iDegree /(@twist6iDegree-1i*pi*@speed)*(0,1) endif if @incExp1r exp1=exp1 + @exp1rDegree /(@exp1rDegree-1i*pi*@speed) endif if @incExp1i exp1=exp1 + @exp1iDegree/(@exp1iDegree-1i*pi*@speed)*(0,1) endif if @incExp2r exp2=exp2 + @exp2rDegree /(@exp2rDegree-1i*pi*@speed) endif if @incExp2i exp2=exp2 + @exp2iDegree /(@exp2iDegree-1i*pi*@speed)*(0,1) endif if @incExp3r exp3=exp3 + @exp3rDegree /(@exp3rDegree-1i*pi*@speed) endif if @incExp3i exp3=exp3 + @exp3iDegree /(@exp3iDegree-1i*pi*@speed)*(0,1) endif if @incExp4r exp4=exp4 + @exp4rDegree /(@exp4rDegree-1i*pi*@speed) endif if @incExp4i exp4=exp4 + @exp4iDegree /(@exp4iDegree-1i*pi*@speed)*(0,1) endif if @incExp5r exp5=exp5 + @exp5rDegree /(@exp5rDegree-1i*pi*@speed) endif if @incExp5i exp5=exp5 + @exp5iDegree /(@exp5iDegree-1i*pi*@speed)*(0,1) endif if @incExp6r exp6=exp6 + @exp6rDegree /(@exp6rDegree-1i*pi*@speed) endif if @incExp6i exp6=exp6 + @exp6iDegree/(@exp6iDegree-1i*pi*@speed)*(0,1) endif elseif @linear=="Non-Linear 3" if @incTwr tw=tw + @twistrDegree /(@twistrDegree-pi*@speed) endif if @incTwi tw=tw + @twistiDegree /(@twistiDegree-pi*@speed)*(0,1) endif if @incTw2r tw2=tw2 + @twist2rDegree /(@twist2rDegree-pi*@speed) endif if @incTw2i tw2=tw2 + @twist2iDegree/(@twist2iDegree-pi*@speed)*(0,1) endif if @incTw3r tw3=tw3 + @twist3rDegree /(@twist3rDegree-pi*@speed) endif if @incTw3i tw3=tw3 + @twist3iDegree /(@twist3iDegree-pi*@speed)*(0,1) endif if @incTw4r tw4=tw4 + @twist4rDegree /(@twist4rDegree-pi*@speed) endif if @incTw4i tw4=tw4 + @twist4iDegree /(@twist4iDegree-pi*@speed)*(0,1) endif if @incTw5r tw5=tw5 + @twist5rDegree /(@twist5rDegree-pi*@speed) endif if @incTw5i tw5=tw5 + @twist5iDegree/(@twist5iDegree-pi*@speed)*(0,1) endif if @incTw6r tw6=tw6 + @twist6rDegree /(@twist6rDegree-pi*@speed) endif if @incTw6i tw6=tw6 + @twist6iDegree /(@twist6iDegree-pi*@speed)*(0,1) endif if @incExp1r exp1=exp1 + @exp1rDegree /(@exp1rDegree-pi*@speed) endif if @incExp1i exp1=exp1 + @exp1iDegree/(@exp1iDegree-pi*@speed)*(0,1) endif if @incExp2r exp2=exp2 + @exp2rDegree /(@exp2rDegree-pi*@speed) endif if @incExp2i exp2=exp2 + @exp2iDegree /(@exp2iDegree-pi*@speed)*(0,1) endif if @incExp3r exp3=exp3 + @exp3rDegree /(@exp3rDegree-pi*@speed) endif if @incExp3i exp3=exp3 + @exp3iDegree /(@exp3iDegree-pi*@speed)*(0,1) endif if @incExp4r exp4=exp4 + @exp4rDegree /(@exp4rDegree-pi*@speed) endif if @incExp4i exp4=exp4 + @exp4iDegree /(@exp4iDegree-pi*@speed)*(0,1) endif if @incExp5r exp5=exp5 + @exp5rDegree /(@exp5rDegree-pi*@speed) endif if @incExp5i exp5=exp5 + @exp5iDegree /(@exp5iDegree-pi*@speed)*(0,1) endif if @incExp6r exp6=exp6 + @exp6rDegree /(@exp6rDegree-pi*@speed) endif if @incExp6i exp6=exp6 + @exp6iDegree/(@exp6iDegree-pi*@speed)*(0,1) endif endif Final: ;------------------------------------Textures----------------------------------- if tx > 0 if @ztyp=="#z" tz=((#z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Morph z" tz=((z1-@txia1)*@txib1)^@txic1 elseif @ztyp=="Trap z" tz=((trap_z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Trap #z" tz=((trap2_z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Dist" tz=((point_dist-@txia1)*@txib1)^@txic1 endif if @tt==0 tz=@fntx2(@fntx1(tz))^@exad1 elseif @tt==1 tz=@fntx1(real(tz))^@exad1+@fntx2(imag(tz))^@exad2 elseif @tt==2 tz=@fntx1(real(tz))^@exad1-@fntx2(imag(tz))^@exad2 elseif @tt==3 tz=@fntx1(real(tz))^@exad1*@fntx2(imag(tz))^@exad2 elseif @tt==4 tz=@fntx1(imag(tz))^@exad1-@fntx2(real(tz))^@exad2 elseif @tt==5 tz=@fntx2(@fntx1(x))^@exad1 elseif @tt==6 tz=@fntx2(@fntx1(y))^@exad1 elseif @tt==7 tz=@fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @tt==8 tz=@fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @tt==9 tz=@fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @tt==10 tz=@fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @tt==11 tz=@fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @tt==12 tz=@fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @tt==13 tz=@fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @tt==14 tz=@fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @tt==15 tz=@fntx1(x)^@exad1+@fntx2(tz)^@exad2 elseif @tt==16 tz=@fntx1(x)^@exad1-@fntx2(tz)^@exad2 elseif @tt==17 tz=@fntx2(tz)^@exad2-@fntx1(x)^@exad1 elseif @tt==18 tz=@fntx1(x)^@exad1*@fntx2(tz)^@exad2 elseif @tt==19 tz=@fntx1(x)^@exad1/@fntx2(tz)^@exad2 elseif @tt==20 tz=@fntx2(tz)^@exad2/@fntx1(x)^@exad1 elseif @tt==21 tz=@fntx1(y)^@exad1+@fntx2(tz)^@exad2 elseif @tt==22 tz=@fntx1(y)^@exad1-@fntx2(tz)^@exad2 elseif @tt==23 tz=@fntx2(tz)^@exad2-@fntx1(y)^@exad1 elseif @tt==24 tz=@fntx1(y)^@exad1*@fntx2(tz)^@exad2 elseif @tt==25 tz=@fntx1(y)^@exad1/@fntx2(tz)^@exad2 elseif @tt==26 tz=@fntx2(tz)^@exad2/@fntx1(y)^@exad1 endif float zr=real(tz)%(@tv/10)/@ts*10 float zi=imag(tz)%(@tv/10)/@ts*10 float rz=floor(zr) float iz=floor(zi) if @tc > 0 float a1=(rz + iz - 2)/ct float a2=(rz + iz + 2)/ct else float a1=(rz + iz - 2)%ct float a2=(rz + iz + 2)%ct endif float a3=a1 float a4=a2 i=0 float ez=0 float h=1 repeat h=h / 2 float fr=rz + h float fi=iz + h float za=(a1 + a2 + a3 + a4) / 4 ez=ez + za if (zr > fr) rz=fr if (zi > fi) iz=fi a1=ez else a2=ez endif else if (zi > fi) iz=fi a3=ez else a4=ez endif endif it=it + 1 until it >=20 endif t2=abs((za-real(@fntx3(za)))) if @add_sgn==false t2=(za-real(@fntx3(za))) endif ;------------------------------------------------------------------------------- ;Random complex hasard=#random texture_rnd=10 * @rnd2 * (real(hasard)+ imag(hasard)) ; fBm if (@fbmtxt !=0) r1=(0,1) ^ (@fbmangle / 90.0) r2=(0,1) ^ (@fbmastep / 90.0) if @ztyp4=="#z" tz=((#z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Morph z" tz=((z1-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Trap z" tz=((trap_z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Trap #z" tz=((trap2_z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Dist" tz=((point_dist-@txia4)*@txib4)^@txic4 endif if @fbminit==0 pfb=(@fntx9(@fntx8(tz))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==1 pfb=(@fntx8(real(tz))^@exad8+@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==2 pfb=(@fntx8(real(tz))^@exad8-@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==3 pfb=(@fntx8(real(tz))^@exad8*@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==4 pfb=(@fntx8(imag(tz))^@exad8-@fntx9(real(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==5 pfb=(@fntx9(@fntx8(x))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==6 pfb=(@fntx9(@fntx8(y))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==7 pfb=(@fntx8(x)^@exad8+@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==8 pfb=(@fntx8(x)^@exad8-@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==9 pfb=(@fntx9(y)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==10 pfb=(@fntx8(x)^@exad8*@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==11 pfb=(@fntx8(x)^@exad8/@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==12 pfb=(@fntx9(y)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==13 pfb=(@fntx8(x)^@exad8^@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==14 pfb=(@fntx9(y)^@exad9^@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==15 pfb=(@fntx8(x)^@exad8+@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==16 pfb=(@fntx8(x)^@exad8-@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==17 pfb=(@fntx9(tz)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==18 pfb=(@fntx8(x)^@exad8*@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==19 pfb=(@fntx8(x)^@exad8/@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==20 pfb=(@fntx9(tz)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==21 pfb=(@fntx8(y)^@exad8+@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==22 pfb=(@fntx8(y)^@exad8-@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==23 pfb=(@fntx9(tz)^@exad9-@fntx8(y)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==24 pfb=(@fntx8(y)^@exad8*@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==25 pfb=(@fntx8(y)^@exad8/@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==26 pfb=(@fntx9(tz)^@exad9/@fntx8(y)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==27 pfb=(@fntx9(@fntx8(pixel))^@exad8)* @fbmscale * r1 + @fbmoffset endif float summ=0.0 float freq=1.0 int i=@fbmoct while (i > 0) ; determine integer coordinate for corners of square ; surrounding p float bx0=real(@fbmrfn2(@fbmrfn1(pfb))) % 256 float by0=imag(@fbmifn2(@fbmifn1(pfb))) % 256 if (bx0 < 0) bx0=bx0 + 256 endif if (by0 < 0) by0=by0 + 256 endif float bx1=(bx0 + @hc) % 256 float by1=(by0 + @hd) % 256 float rx0=real(pfb) - floor(real(pfb)) float ry0=imag(pfb) - floor(imag(pfb)) float rx1=rx0 - @ha float ry1=ry0 - @hb float b00=(bx0^@fbmpower % 65536 + by0)^@fbmpower % 65536 float b10=(bx1^@fbmpower % 65536 + by0)^@fbmpower % 65536 float b01=(bx0^@fbmpower % 65536 + by1)^@fbmpower % 65536 float b11=(bx1^@fbmpower % 65536 + by1)^@fbmpower % 65536 float g_b00_0=(b00)^@fbmpower*0.25 % 512 - 256 float g_b10_0=(b10)^@fbmpower*0.25 % 512 - 256 float g_b01_0=(b01)^@fbmpower*0.25 % 512 - 256 float g_b11_0=(b11)^@fbmpower*0.25 % 512 - 256 float g_b00_1=(b00+1)^@fbmpower*0.25 % 512 - 256 float g_b10_1=(b10+1)^@fbmpower*0.25 % 512 - 256 float g_b01_1=(b01+1)^@fbmpower*0.25 % 512 - 256 float g_b11_1=(b11+1)^@fbmpower*0.25 % 512 - 256 float ddd=0.0; ddd=1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0=g_b00_0 * ddd g_b00_1=g_b00_1 * ddd ddd=1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0=g_b10_0 * ddd g_b10_1=g_b10_1 * ddd ddd=1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0=g_b01_0 * ddd g_b01_1=g_b01_1 * ddd ddd=1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0=g_b11_0 * ddd g_b11_1=g_b11_1 * ddd float u1=rx0 * g_b00_0 + ry0 * g_b00_1 float v1=rx1 * g_b10_0 + ry0 * g_b10_1 float u2=rx0 * g_b01_0 + ry1 * g_b01_1 float v2=rx1 * g_b11_0 + ry1 * g_b11_1 float sx=sqr(rx0) * (3 - rx0*2) float sy=sqr(ry0) * (3 - ry0*2) float aaa=u1 + sx*(v1-u1) float b=u2 + sx*(v2-u2) summ=summ + (aaa + sy*(b-aaa))*freq freq=freq * @fbmstep pfb=pfb * r2 / @fbmstep i=i - 1 endwhile texture_fbm=10 * @fbmtxt * summ endif if @fbm_limit !=0 texture_fbm=texture_fbm % @fbm_limit endif if @fbm_sgn==true texture_fbm=abs(texture_fbm) endif ;------------------------------------------------------------------------------- ;decimal if @dectxt > 0 if @ztyp2=="#z" tz=((#z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Morph z" tz=((z1-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Trap z" tz=((trap_z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Trap #z" tz=((trap2_z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Dist" tz=((point_dist-@txia2)*@txib2)^@txic2 endif if @dec_init==0 pd=real(@fntx5(@fntx4(tz))^@exad4) elseif @dec_init==1 pd=real(@fntx4(real(tz))^@exad4+@fntx5(imag(tz))^@exad5) elseif @dec_init==2 pd=real(@fntx4(real(tz))^@exad4-@fntx5(imag(tz))^@exad5) elseif @dec_init==3 pd=real(@fntx4(real(tz))^@exad4*@fntx5(imag(tz))^@exad5) elseif @dec_init==4 pd=real(@fntx4(imag(tz))^@exad4-@fntx5(real(tz))^@exad5) elseif @dec_init==5 pd=real(@fntx5(@fntx4(x))^@exad4) elseif @dec_init==6 pd=real(@fntx5(@fntx4(y))^@exad4) elseif @dec_init==7 pd=real(@fntx4(x)^@exad4+@fntx5(y)^@exad5) elseif @dec_init==8 pd=real(@fntx4(x)^@exad4-@fntx5(y)^@exad5) elseif @dec_init==9 pd=real(@fntx5(y)^@exad4-@fntx4(x)^@exad5) elseif @dec_init==10 pd=real(@fntx4(x)^@exad4*@fntx5(y)^@exad5) elseif @dec_init==11 pd=real(@fntx4(x)^@exad4/@fntx5(y)^@exad5) elseif @dec_init==12 pd=real(@fntx5(y)^@exad4/@fntx4(x)^@exad5) elseif @dec_init==13 pd=real(@fntx4(x)^@exad4^@fntx5(y)^@exad5) elseif @dec_init==14 pd=real(@fntx5(y)^@exad4^@fntx4(x)^@exad5) elseif @dec_init==15 pd=real(@fntx4(x)^@exad4+@fntx5(tz)^@exad5) elseif @dec_init==16 pd=real(@fntx4(x)^@exad4-@fntx5(tz)^@exad5) elseif @dec_init==17 pd=real(@fntx5(tz)^@exad4-@fntx4(x)^@exad5) elseif @dec_init==18 pd=real(@fntx4(x)^@exad4*@fntx5(tz)^@exad5) elseif @dec_init==19 pd=real(@fntx4(x)^@exad4/@fntx5(tz)^@exad5) elseif @dec_init==20 pd=real(@fntx5(tz)^@exad4/@fntx4(x)^@exad5) elseif @dec_init==21 pd=real(@fntx4(y)^@exad4+@fntx5(tz)^@exad5) elseif @dec_init==22 pd=real(@fntx4(y)^@exad4-@fntx5(tz)^@exad5) elseif @dec_init==23 pd=real(@fntx5(tz)^@exad4-@fntx4(y)^@exad5) elseif @dec_init==24 pd=real(@fntx4(y)^@exad4*@fntx5(tz)^@exad5) elseif @dec_init==25 pd=real(@fntx4(y)^@exad4/@fntx5(tz)^@exad5) elseif @dec_init==26 pd=real(@fntx5(tz)^@exad4/@fntx4(y)^@exad5) endif if @dec_type==0 pd=pd-ceil(pd*@dec_scale)/@dec_scale elseif @dec_type==1 pd=pd-floor(pd*@dec_scale)/@dec_scale elseif @dec_type==2 pd=pd-trunc(pd*@dec_scale)/@dec_scale elseif @dec_type==3 pd=pd-round(pd*@dec_scale)/@dec_scale elseif @dec_type==4 pd=pd-real(@fndec(pd*@dec_scale))/@dec_scale elseif @dec_type==5 pd =pd-round(pd*@dec_scale)/@dec_scale-ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==6 pd =pd-round(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==7 pd =pd+round(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==8 pd =pd-round(pd*@dec_scale)/@dec_scale-trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==9 pd =pd-round(pd*@dec_scale)/@dec_scale*trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==10 pd =pd+round(pd*@dec_scale)/@dec_scale*trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==11 pd =pd-trunc(pd*@dec_scale)/@dec_scale-floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==12 pd =pd-trunc(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==13 pd =pd+trunc(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==14 pd =pd-trunc(pd*@dec_scale)/@dec_scale-ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==15 pd =pd-trunc(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==16 pd =pd+trunc(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==17 pd =pd-ceil(pd*@dec_scale)/@dec_scale-floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==18 pd =pd-ceil(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==19 pd =pd+ceil(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale)/@dec_scale2 endif if @dec_size !=0 pd=pd/@dec_size endif texture_dec=@dectxt*pd if @dec_limit !=0 texture_dec=texture_dec%@dec_limit endif if @dec_sgn==true texture_dec=abs(texture_dec) endif endif texture_dec=10 * texture_dec * @decamt ;------------------------------------------------------------------------------- ;Popgnarl if (@gnarl_amt !=0) if @ztyp3=="#z" tz=((#z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Morph z" tz=((z1-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Trap z" tz=((trap_z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Trap #z" tz=((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Dist" tz=((point_dist-@txia3)*@txib3)^@txic3 endif if @gnarl_init==0 p=@fntx7(@fntx6(tz))^@exad6 elseif @gnarl_init==1 p=@fntx6(real(tz))^@exad6+@fntx7(imag(tz))^@exad7 elseif @gnarl_init==2 p=@fntx6(real(tz))^@exad6-@fntx7(imag(tz))^@exad7 elseif @gnarl_init==3 p=@fntx6(real(tz))^@exad6*@fntx7(imag(tz))^@exad7 elseif @gnarl_init==4 p=@fntx6(imag(tz))^@exad6-@fntx7(real(tz))^@exad7 elseif @gnarl_init==5 p=@fntx7(@fntx6(x))^@exad6 elseif @gnarl_init==6 p=@fntx7(@fntx6(y))^@exad6 elseif @gnarl_init==7 p=@fntx6(x)^@exad6+@fntx7(y)^@exad7 elseif @gnarl_init==8 p=@fntx6(x)^@exad6-@fntx7(y)^@exad7 elseif @gnarl_init==9 p=@fntx7(y)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init==10 p=@fntx6(x)^@exad6*@fntx7(y)^@exad7 elseif @gnarl_init==11 p=@fntx6(x)^@exad6/@fntx7(y)^@exad7 elseif @gnarl_init==12 p=@fntx7(y)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init==13 p=@fntx6(x)^@exad6^@fntx7(y)^@exad7 elseif @gnarl_init==14 p=@fntx7(y)^@exad6^@fntx6(x)^@exad7 elseif @gnarl_init==15 p=@fntx6(x)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init==16 p=@fntx6(x)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init==17 p=@fntx7(tz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init==18 p=@fntx6(x)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init==19 p=@fntx6(x)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init==20 p=@fntx7(tz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init==21 p=@fntx6(y)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init==22 p=@fntx6(y)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init==23 p=@fntx7(tz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init==24 p=@fntx6(y)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init==25 p=@fntx6(y)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init==26 p=@fntx7(tz)^@exad6/@fntx6(y)^@exad7 elseif @gnarl_init==27 p=@fntx7(@fntx6(pixel))^@exad6 endif if @gnarl_scaling==0 p=p-ceil(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==1 p=p-floor(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==2 p=p-trunc(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==3 p=p-round(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==4 p=p-real(@fngnarl(p*@gnarl_scale))/@gnarl_scale elseif @gnarl_scaling==5 p =p-round(p*@gnarl_scale)/@gnarl_scale-ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==6 p =p-round(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==7 p =p+round(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==8 p =p-round(p*@gnarl_scale)/@gnarl_scale-trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==9 p =p-round(p*@gnarl_scale)/@gnarl_scale*trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==10 p =p+round(p*@gnarl_scale)/@gnarl_scale*trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==11 p =p-trunc(p*@gnarl_scale)/@gnarl_scale-floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==12 p =p-trunc(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==13 p =p+trunc(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==14 p =p-trunc(p*@gnarl_scale)/@gnarl_scale-ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==15 p =p-trunc(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==16 p =p+trunc(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==17 p =p-ceil(p*@gnarl_scale)/@gnarl_scale-floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==18 p =p-ceil(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==19 p =p+ceil(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale)/@gnarl_scale2 endif if @gnarl_size !=0 p=p/@gnarl_size endif xx=real(p) yy=imag(p) float xOld=0 int iter3=@gnarl_octaves while (iter3 > 0) iter3=iter3-1 xOld=xx if @gnarl_form==0 xx=xx - sin(yy + sin(yy)) yy=yy - sin(xOld + sin(xOld)) elseif @gnarl_form==1 xx=xx - sin(yy + log(yy + cos(yy))) yy=yy - sin(xOld + log(xOld + cos(xOld))) elseif @gnarl_form==2 xx=xx - sin(yy + cos(yy)) yy=yy - sin(xOld + cos(xOld)) elseif @gnarl_form==3 xx=xx - sin(yy + log(yy + tan(yy))) yy=yy - sin(xOld + log(xOld + tan(xOld))) elseif @gnarl_form==4 xx=xx - sin(yy + log(yy + sin(yy))) yy=yy - sin(xOld + log(xOld + sin(xOld))) endif endwhile if (@gnarl_type==0) texture_gna=real(@fng(xx)) elseif (@gnarl_type==1) texture_gna=real(@fng(yy)) elseif (@gnarl_type==2) texture_gna=real(@fng(xx+yy)) elseif (@gnarl_type==3) texture_gna=real(@fng(xx*yy)) elseif (@gnarl_type==4) texture_gna=real(@fng(xx-yy)) elseif (@gnarl_type==5) texture_gna=real(@fng(xx/yy)) elseif (@gnarl_type==6) texture_gna=real(@fng(yy/xx)) elseif (@gnarl_type==7) texture_gna=real(@fng(xx^yy)) elseif (@gnarl_type==8) texture_gna=real(@fng(yy^xx)) elseif (@gnarl_type==9) texture_gna=real(@fng(1/xx)) elseif (@gnarl_type==10) texture_gna=real(@fng(1/yy)) elseif (@gnarl_type==11) texture_gna=atan2(xx+1i*yy)/(2*#pi) if (texture_gna < 0) texture_gna=texture_gna + 1 endif elseif (@gnarl_type==12) texture_gna=|xx+1i*yy| elseif (@gnarl_type==13) texture_gna=(xx+yy+|xx+1i*yy|)/3 elseif (@gnarl_type==14) texture_gna=(xx*yy*|xx+1i*yy|)^(1/3) endif if @gnarl_limit !=0 texture_gna=10 * (texture_gna%@gnarl_limit) * @gnarl_amt endif endif ;------------------------------------------------------------------------------- ;geometrix if (@trtxt !=0) if @ztyp5=="#z" tz=((#z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Morph z" tz=((z1-@trxia)*@trxib)^@trxic elseif @ztyp5=="Trap z" tz=((trap_z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Trap #z" tz=((trap2_z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Dist" tz=((point_dist-@trxia)*@trxib)^@trxic endif if @trinit==0 ptr=(@fntx11(@fntx10(tz))^@exad10) elseif @trinit==1 ptr=(@fntx10(real(tz))^@exad10+@fntx11(imag(tz))^@exad11) elseif @trinit==2 ptr=(@fntx10(real(tz))^@exad10-@fntx11(imag(tz))^@exad11) elseif @trinit==3 ptr=(@fntx10(real(tz))^@exad10*@fntx11(imag(tz))^@exad11) elseif @trinit==4 ptr=(@fntx10(imag(tz))^@exad10-@fntx11(real(tz))^@exad11) elseif @trinit==5 ptr=(@fntx11(@fntx10(x))^@exad10) elseif @trinit==6 ptr=(@fntx11(@fntx10(y))^@exad10) elseif @trinit==7 ptr=(@fntx10(x)^@exad10+@fntx11(y)^@exad11) elseif @trinit==8 ptr=(@fntx10(x)^@exad10-@fntx11(y)^@exad11) elseif @trinit==9 ptr=(@fntx11(y)^@exad11-@fntx10(x)^@exad10) elseif @trinit==10 ptr=(@fntx10(x)^@exad10*@fntx11(y)^@exad11) elseif @trinit==11 ptr=(@fntx10(x)^@exad10/@fntx11(y)^@exad11) elseif @trinit==12 ptr=(@fntx11(y)^@exad11/@fntx10(x)^@exad10) elseif @trinit==13 ptr=(@fntx10(x)^@exad10^@fntx11(y)^@exad11) elseif @trinit==14 ptr=(@fntx11(y)^@exad11^@fntx10(x)^@exad10) elseif @trinit==15 ptr=(@fntx10(x)^@exad10+@fntx11(tz)^@exad11) elseif @trinit==16 ptr=(@fntx10(x)^@exad10-@fntx11(tz)^@exad11) elseif @trinit==17 ptr=(@fntx11(tz)^@exad11-@fntx10(x)^@exad10) elseif @trinit==18 ptr=(@fntx10(x)^@exad10*@fntx11(tz)^@exad11) elseif @trinit==19 ptr=(@fntx10(x)^@exad10/@fntx11(tz)^@exad11) elseif @trinit==20 ptr=(@fntx11(tz)^@exad11/@fntx10(x)^@exad10) elseif @trinit==21 ptr=(@fntx10(y)^@exad10+@fntx11(tz)^@exad11) elseif @trinit==22 ptr=(@fntx10(y)^@exad10-@fntx11(tz)^@exad11) elseif @trinit==23 ptr=(@fntx11(tz)^@exad11-@fntx10(y)^@exad10) elseif @trinit==24 ptr=(@fntx10(y)^@exad10*@fntx11(tz)^@exad11) elseif @trinit==25 ptr=(@fntx10(y)^@exad10/@fntx11(tz)^@exad11) elseif @trinit==26 ptr=(@fntx11(tz)^@exad11/@fntx10(y)^@exad10) endif endif complex tz=z_values[#numiter-1] complex tz=ptr float zrzr=real(@fnzr(ptr))*@scc float zizi=imag(@fnzi(ptr))*@scc float rzrz=floor(zrzr) float iziz=floor(zizi) r0r0=rzrz - 1 i0i0=iziz - 1 r1r1=rzrz + 1 i1i1=iziz + 1 azaz=cabs(@fn1tx(r0r0) + @fn2tx(i0i0)) azaz=cabs(@fn3tx(azaz)) azaz=(azaz % @shad1 * 2) bzbz=cabs(@fn1tx(r1r1) + @fn2tx(i0i0)) bzbz=cabs(@fn3tx(bzbz)) bzbz=(bzbz % @shad2 * 2) czcz=cabs(@fn1tx(r1r1) + @fn2tx(i1i1)) czcz=cabs(@fn3tx(czcz)) czcz=(czcz % @shad3 * 2) dzdz=cabs(@fn1tx(r0r0) + @fn2tx(i1i1)) dzdz=cabs(@fn3tx(dzdz)) dzdz=(dzdz % @shad4 * 2) i=1 repeat avav=avav / (@trp1 * 2) xbxb=xbxb / (@trp2 * 2) frfr=rzrz + avav fifi=iziz + avav zaza=(azaz + bzbz + czcz + dzdz) / (@trp3 * 4) zzzz=zzzz * xbxb + zaza if (zrzr > frfr) if (zizi > fifi) rzrz=frfr iziz=fifi azaz=zzzz else rzrz=frfr dzdz=zzzz endif else if (zizi > fifi) iziz=fifi bzbz=zzzz else czcz=zzzz endif endif i=i + 1 until i >=@freq texture_tr=(zaza-trunc(zaza*2)^@exp)*@trtxt if @geo_limit !=0 texture_tr=((zaza-trunc(zaza)^@exp*2)% @geo_limit)*@trtxt endif if @geo_sgn==true texture_tr=abs(texture_tr) endif texture=(texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10000 ;-----------------------------Coloring Mode(Mark Townsend Method)--------------- if @mode ==0 || @mode ==5 && @masked && min_dist>@mask #solid=true endif if (@mode ==1 || @mode ==2 || @mode ==3 || \ @mode ==4 || @mode ==6 || @mode ==7) && \ !trapped && @solid #solid=true else if @color_mode==0 ;Distance index=distance elseif @color_mode==1 ;Distance 2 index=o_distance elseif @color_mode==2 ;Iterations index=0.01*trap_iter elseif @color_mode==3 ;Modulated Iterations index=(trap_iter%@mod_iter)/@mod_iter elseif @color_mode==4 ;Random Iterations index = (((ra*(trap_iter+@rnd)+rc)%rm) % @mod_iter) / @mod_iter elseif @color_mode==5 ;Magnitude index=cabs(trap_z) elseif @color_mode==6 ;Real index=abs(real(trap_z)) elseif @color_mode==7 ;Image index=abs(imag(trap_z)) elseif @color_mode==8 ;Angle float angle=atan2(trap_z) if angle < 0 angle=angle+2*#pi endif angle=1/(2*#pi)*angle index=angle elseif @color_mode==9 ;Trap Magnitude index=cabs(trap_p) elseif @color_mode==10 ;Angle to Trap float angle=atan2(trap_z - trap_p) if angle < 0 angle=angle+2*#pi endif angle=1/(2*#pi)*angle index=angle endif endif #index=real(@indfn(index^@shad+(texture)))+(tx*@txamt/10)/100+ \ t2*(tx*@txamt/10)/100+rn*@r*(tx*@txamt/10)/100 Default: title="Polar Curves" ;--------------------------------------Coloring--------------------------------- Heading caption="Coloring" Endheading param mode caption="Mode" enum="Closest""First near""Last near""First within""Last within" \ "Closest point""First point""Last point" default=5 endparam param color_mode caption="Coloring" enum="Distance""Distance 2""Iterations""Modulated Iterations""Random Iterations" \ "Magnitude""Real""Imag""Angle""Trap magnitude""Angle to trap" default=0 endparam param mod_iter caption="No. of Colors" default=8.0 min=0.0 visible=(@color_mode==3)||(@color_mode==4) endparam param rnd caption="Random Seed" default=0.0 visible=(@color_mode==4) endparam param usecabs caption="Apply Cabs" default=false endparam param var_d caption="Transfer Distance" enum="Normal""Log""CubeRoot""Sqr""Sqrt""Cube""Sin""Cos""Exp""Atan" default=0 endparam param presc caption="Pre Scale" default=1.0 endparam param postsc caption="Post Scale" default=1.0 endparam param width caption="Width" default=1.0 hint="This controls the width of the elements. It's not \ used with all of the trap modes." visible=(@mode==1)||(@mode==2)||(@mode==6)||(@mode==7) endparam param skip caption="Iterations to skip" hint="This is the number of iterations to skip before watching \ the orbit." default=0 min=0 endparam param no_of_iters caption="No. of iterations" hint="This is the number of iterations to monitor the orbit." default=0 min=0 endparam param solid caption="Solid background" default=true hint="If this is checked orbits that aren't trapped \ are mapped solid. It has no effect in the 'Closest' \ trap modes." visible=@mode!=0 && @mode!=5 endparam float param shad caption="Shading" default=1 endparam func indfn caption="Final Index Function" default=ident() hint="Changes the 'shading' of the elements." endfunc param masked caption="Masked" default=false visible=@mode==0 || @mode==5 endparam param mask caption="Mask Threshold" default=1.0 min=0.0 visible=@mode==0 || @mode==5 && @masked==true endparam ;--------------------------------------Trap Distance---------------------------- Heading caption="Trap Distance" Endheading param wild caption="Trap Distance" enum="Normal""Real""Imag" default=0 endparam func fnz caption="Function Z" default=ident() endfunc func fntemp caption="Distance Function" default=ident() endfunc complex param point caption="Spread" default=(0,0) endparam ;--------------------------------------Int Theta-------------------------------- Heading caption="Starting Theta" Endheading int param optheta caption="Init Theta" enum="Atan2(z)""Real(z)""Imag(z)""Re(z)+Im(z)""Re(z)*Im(z)""Re(z)/Im(z)""Im(z)/Re(z)"\ "Cabs(z)""|z|" default=0 endparam param rota0 caption="Z Rotation Part Re." default=0.0 visible=(@optheta!=2) endparam param rota1 caption="Z Rotation Part Im." default=0.0 visible=(@optheta==2)||(@optheta==3)||(@optheta==4)||(@optheta==5)||(@optheta==6) endparam param p2 caption="Theta Strenght" default=1.0 endparam func fnz1 caption="Function Z" default=ident() visible=(@optheta==0||@optheta==7||@optheta==8) endfunc func fnzr1 caption="Function Re|Z" default=ident() visible=(@optheta==1||@optheta==3||@optheta==4||@optheta==5||@optheta==6) endfunc func fnzi1 caption="Function Im|Z" default=ident() visible=(@optheta==2||@optheta==3||@optheta==4||@optheta==5||@optheta==6) endfunc ;--------------------------------New Shaping Theta------------------------------ Heading caption="New Shaping Theta" Endheading bool param newStuff caption="New Shaping Theta" default=false endparam func varFn caption="Theta Function 1" default=ident() visible=@newStuff && @opadd>0 endfunc func varFn1 caption="Theta Function 2" default=ident() visible=@newStuff && @opadd>0 endfunc param xb2 caption="Theta Strength" default=1.0 visible=@newStuff && @opadd>0 endparam param xb3 caption="Theta Power" default=1.0 visible=@newStuff && @opadd>0 endparam int param opadd caption="Extra X/Y" enum="None""+(X+Y)""+(X*Y)""+(X/Y)""+(Y/X)""+(X^Y)""+(Y^X)" \ "*(X+Y)""*(X*Y)""*(X/Y)""*(Y/X)""*(X^Y)""*(Y^X)" \ "/(X+Y)""/(X*Y)""/(X/Y)""/(Y/X)""/(X^Y)""/(Y^X)" \ "^(X+Y)""^(X*Y)""^(X/Y)""^(Y/X)""^(X^Y)""^(Y^X)" default=0 visible=@newStuff endparam int param varTypeX caption="X Species" enum="Normal""Modulus""Atan2" default=0 visible=@newStuff && @opadd>0 endparam int param varTypeY caption="Y Species" enum="Normal""Modulus""Atan2" default=0 visible=@newStuff && @opadd>0 endparam func nufuncxtx caption="Extra X Fn" default=sin() visible=@opadd>0 && @newStuff endfunc func nufuncxty caption="Extra Y Fn" default=sin() visible=@opadd>0 && @newStuff endfunc complex param xtra1x caption="Extra X Offset" default=(0.0,0.0) visible=@opadd>0 && @newStuff endparam complex param xtra1y caption="Extra Y Offset" default=(0.0,0.0) visible=@opadd>0 && @newStuff endparam complex param xtra2x caption="Extra X Strength" default=(1.0,0.0) visible=@opadd>0 && @newStuff endparam complex param xtra2y caption="Extra Y Strength" default=(1.0,0.0) visible=@opadd>0 && @newStuff endparam complex param xtra3x caption="Extra X Power" default=(1.0,0.0) visible=@opadd>0 && @newStuff endparam complex param xtra3y caption="Extra Y Power" default=(1.0,0.0) visible=@opadd>0 && @newStuff endparam ;------------------------------------Curves------------------------------------- Heading caption="Curves" Endheading param trap_mode caption="Select Trap" enum="Arachnida""Bifolium""Butterfly""Cardioid""Circle""Cissoid of Diocles""Cranioid"\ "Conchoid of Nicomedes""Cotes' Spiral""Cycloid of Ceva""Eight Curve""Epispiral"\ "Folium of Descartes""Hyperbola""Kampyle of Eudoxus""Lemniscate of Bernoulli"\ "Limacon of Pascal""Lituus""Log Spiral""Neoid""Ophiuride""Quadratix of Hippias"\ "Quadrifolium""Rose""Rose of Troy""Scarabeus""Semicubical Parabola""Sextic of Cayley"\ "Spiral of Archimedes""Strophoid""Trifolium""Build Your Own" default=3 endparam param op_swirlR caption="Apply Swirl" default=false endparam param swirl caption="Swirl" default=0.0 visible=(@op_swirlR==true) endparam Heading caption="Arachnida" visible=(@trap_mode==0) Endheading param arach caption="Arachnida Param.1" default=1.0 visible=(@trap_mode==0) endparam param arach1 caption="Arachnida Param.2" default=2.0 visible=(@trap_mode==0) endparam Heading caption="Bifolium" visible=(@trap_mode==1) Endheading param bif1 caption="Bifolium Param.1" default=1.0 visible=(@trap_mode==1) endparam param bif2 caption="Bifolium Param.2" default=1.0 visible=(@trap_mode==1) endparam Heading caption="Butterfly" visible=(@trap_mode==2) Endheading param butt1 caption="Butterfly Param.1" default=1.0 visible=(@trap_mode==2) endparam param butt2 caption="Butterfly Param.2" default=1.0 visible=(@trap_mode==2) endparam Heading caption="Cardioid" visible=(@trap_mode==3) Endheading param card1 caption="Cardioid Param.1" default=1.0 visible=(@trap_mode==3) endparam param card2 caption="Cardioid Param.2" default=1.0 visible=(@trap_mode==3) endparam Heading caption="Circle" visible=(@trap_mode==4) Endheading param circ1 caption="Radius" default=1.0 visible=(@trap_mode==4) endparam Heading caption="Cissoid of Diocles" visible=(@trap_mode==5) Endheading param ciss1 caption="Cissoid Param.1" default=1.0 visible=(@trap_mode==5) endparam param ciss2 caption="Cissoid Param.2" default=1.0 visible=(@trap_mode==5) endparam Heading caption="Cranioid" visible=(@trap_mode==6) Endheading param cran1 caption="Cranioid Param.1" default=1.0 visible=(@trap_mode==6) endparam param cran2 caption="Cranioid Param.2" default=1.0 visible=(@trap_mode==6) endparam param cran3 caption="Cranioid Param.3" default=1.0 visible=(@trap_mode==6) endparam param cran4 caption="Cranioid Param.4" default=1.0 visible=(@trap_mode==6) endparam param cran5 caption="Cranioid Param.5" default=1.0 visible=(@trap_mode==6) endparam Heading caption="Conchoid of Nicomedes" visible=(@trap_mode==7) Endheading param conc1 caption="Conchoid Param.1" default=1.0 visible=(@trap_mode==7) endparam param conc2 caption="Conchoid Param.2" default=1.0 visible=(@trap_mode==7) endparam Heading caption="Cotes' Spiral" visible=(@trap_mode==8) Endheading param cot1 caption="Cotes Param.1" default=1.0 visible=(@trap_mode==8) endparam param cot2 caption="Cotes Param.2" default=1.0 visible=(@trap_mode==8) endparam param cot3 caption="Cotes Param.3" default=0.0 visible=(@trap_mode==8) endparam Heading caption="Cycloid of Ceva" visible=(@trap_mode==9) Endheading param cev1 caption="Cycloid Param.1" default=1.0 visible=(@trap_mode==9) endparam param cev2 caption="Cycloid Param.2" default=1.0 visible=(@trap_mode==9) endparam Heading caption="Eight Curve" visible=(@trap_mode==10) Endheading param eight1 caption="Eight Param.1" default=1.0 visible=(@trap_mode==10) endparam param eight2 caption="Eight Param.2" default=1.0 visible=(@trap_mode==10) endparam Heading caption="Epispiral" visible=(@trap_mode==11) Endheading param epi1 caption="Epispiral Param.1" default=1.0 visible=(@trap_mode==11) endparam param epi2 caption="Epispiral Param.2" default=2.0 visible=(@trap_mode==11) endparam Heading caption="Folium of Descartes" visible=(@trap_mode==12) Endheading param foli1 caption="Folium Param.1" default=1.0 visible=(@trap_mode==12) endparam param foli2 caption="Folium Param.2" default=1.0 visible=(@trap_mode==12) endparam Heading caption="Hyperbola" visible=(@trap_mode==13) Endheading param hyp1 caption="Hyperbola Param.1" default=1.0 visible=(@trap_mode==13) endparam param hyp2 caption="Hyperbola Param.2" default=1.0 visible=(@trap_mode==13) endparam Heading caption="Kampyle of Eudoxus" visible=(@trap_mode==14) Endheading param kamp1 caption="Kampyle Param.1" default=1.0 visible=(@trap_mode==14) endparam param kamp2 caption="Kampyle Param.2" default=1.0 visible=(@trap_mode==14) endparam Heading caption="Lemniscate of Bernoulli" visible=(@trap_mode==15) Endheading param lemni1 caption="Lemniscate Param.1" default=1.0 visible=(@trap_mode==15) endparam param lemni2 caption="Lemniscate Param.2" default=0.0 visible=(@trap_mode==15) endparam param lemni3 caption="Lemniscate Param.3" default=1.0 visible=(@trap_mode==15) endparam Heading caption="Limacon of Pascal" visible=(@trap_mode==16) Endheading param lima1 caption="Limacon Param.1" default=1.0 visible=(@trap_mode==16) endparam param lima2 caption="Limacon Param.2" default=1.0 visible=(@trap_mode==16) endparam Heading caption="Lituus" visible=(@trap_mode==17) Endheading param litu1 caption="Lituus Param.1" default=1.0 visible=(@trap_mode==17) endparam param litu2 caption="Lituus Param.2" default=1.0 visible=(@trap_mode==17) endparam Heading caption="Log Spiral" visible=(@trap_mode==18) Endheading param log1 caption="Log Param.1" default=1.0 visible=(@trap_mode==18) endparam param log2 caption="Log Param.2" default=1.0 visible=(@trap_mode==18) endparam Heading caption="Neoid" visible=(@trap_mode==19) Endheading float param neo1 caption="Neoid Param.1" default=0.1 min=0.1 visible=(@trap_mode==19) endparam float param neo2 caption="Neoid Param.2" default=1 visible=(@trap_mode==19) endparam Heading caption="Ophiuride" visible=(@trap_mode==20) Endheading param ophi1 caption="Ophiuride Param.1" default=1.0 visible=(@trap_mode==20) endparam param ophi2 caption="Ophiuride Param.2" default=1.0 visible=(@trap_mode==20) endparam param ophi3 caption="Ophiuride Param.3" default=1.0 visible=(@trap_mode==20) endparam param ophi4 caption="Ophiuride Param.4" default=1.0 visible=(@trap_mode==20) endparam param ophi5 caption="Ophiuride Param.5" default=1.0 visible=(@trap_mode==20) endparam Heading caption="Quadratix of Hippias" visible=(@trap_mode==21) Endheading param quad1 caption="Quadratix Param.1" default=1.0 visible=(@trap_mode==21) endparam param quad2 caption="Quadratix Param.2" default=1.0 visible=(@trap_mode==21) endparam Heading caption="Quadrifolium" visible=(@trap_mode==22) Endheading param quadr1 caption="Quadrifolium Param.1" default=1.0 visible=(@trap_mode==22) endparam param quadr2 caption="Quadrifolium Param.2" default=2.0 visible=(@trap_mode==22) endparam Heading caption="Rose" visible=(@trap_mode==23) Endheading param rose1 caption="Rose Param.1" default=1.0 visible=(@trap_mode==23) endparam param rose2 caption="Rose Param.2" default=4.0 visible=(@trap_mode==23) endparam Heading caption="Rose of Troy" visible=(@trap_mode==24) Endheading param rost1 caption="Troy Param.1" default=1.0 visible=(@trap_mode==24) endparam param rost2 caption="Troy Param.2" default=3.0 visible=(@trap_mode==24) endparam Heading caption="Scarabeus" visible=(@trap_mode==25) Endheading param scar1 caption="Scarabeus Param.1" default=2.0 visible=(@trap_mode==25) endparam param scar2 caption="Scarabeus Param.2" default=3.0 visible=(@trap_mode==25) endparam Heading caption="Semicubical Parabola" visible=(@trap_mode==26) Endheading param semi1 caption="Semicubical Param.1" default=1.0 visible=(@trap_mode==26) endparam param semi2 caption="Semicubical Param.2" default=1.0 visible=(@trap_mode==26) endparam Heading caption="Sextic of Cayley" visible=(@trap_mode==27) Endheading param sext1 caption="Sextic Param.1" default=1.0 visible=(@trap_mode==27) endparam param sext2 caption="Sextic Param.2" default=1.0 visible=(@trap_mode==27) endparam Heading caption="Spiral of Archimedes" visible=(@trap_mode==28) Endheading param arch1 caption="Spiral Param.1" default=1.0 visible=(@trap_mode==28) endparam param arch2 caption="Spiral Param.2" default=1.0 visible=(@trap_mode==28) endparam Heading caption="Strophoid" visible=(@trap_mode==29) Endheading param stroph1 caption="Strophoid Param.1" default=1.0 visible=(@trap_mode==29) endparam param stroph2 caption="Strophoid Param.2" default=1.0 visible=(@trap_mode==29) endparam Heading caption="Trifolium" visible=(@trap_mode==30) Endheading param trif1 caption="Trifolium Param.1" default=1.0 visible=(@trap_mode==30) endparam param trif2 caption="Trifolium Param.2" default=1.0 visible=(@trap_mode==30) endparam Heading caption="Build Your Own" visible=(@trap_mode==31) Endheading param selown caption="Operator" enum="+""*""/" default=0 visible=(@trap_mode==31) endparam float param byo1 caption="Your Own Param.1" default=1.0 visible=(@trap_mode==31) endparam float param byo2 caption="Your Own Param.2" default=0.5 visible=(@trap_mode==31) endparam func fnbyo1 caption="Theta Func. 1" default=sin() visible=(@trap_mode==31) endfunc func fnbyo2 caption="Theta Func. 2" default=ident() visible=(@trap_mode==31) endfunc Heading caption="Functions" Endheading func fn1 caption="Theta Func." default=ident() endfunc func fn3 caption="R|Point Func. 1" default=ident() endfunc func fn5 caption="R|Point Func. 2" default=ident() endfunc func fn4 caption="Theta|Point Func. 1" default=ident() endfunc func fn6 caption="Theta|Point Func. 2" default=ident() endfunc ;---------------------------Circular Inversion---------------------------------- Heading caption="Inversion Section" Endheading param rota2 caption="Rotation" default=0.0 endparam param aspect caption="Aspect Ratio" default=1.0 min=0.000000001 endparam param invscale caption="Inversion Scale" default=1.0 hint="Scale of the inversion. This performs a similar function\ to changing the magnitude of the fractal zoom." endparam param invcenter caption="Center of Inversion" default=(0.0,0.0) endparam param invpower caption="Exponent" default=(0.0,0.0) hint="Gives the inversion exponent. (-1,0) gives the classic \ 1/z inversion type." endparam ;---------------------------------Advantage Mode-------------------------------- Heading caption="Advantage Mode" Endheading param adv_extra caption="On/Off" default=true endparam param circ_pointP caption="Offset Point1" default=0.0 visible=(@adv_extra==true) endparam param circ_pointQ caption="Offset Point2" default=0.0 visible=(@adv_extra==true) endparam Heading caption="Affine Transformations" visible=(@adv_extra==true) Endheading param affdist caption="Affine Method" enum="1""2" default=0 visible=(@adv_extra==true) endparam param affinesc caption="Scale Method" enum="Parameter""Distance" default=0 visible=(@adv_extra==true) endparam param s0 caption="Scale" default=0.0 visible=(@adv_extra==true) min=0.0 endparam param adv_x0 caption="x0 Transform" default=0.0 visible=(@adv_extra==true) endparam param adv_y0 caption="y0 Transform" default=0.0 visible=(@adv_extra==true) endparam Heading caption="Trap Flavor" visible=(@adv_extra==true) Endheading param trap_mode1 caption="Select Trap" enum="Arachnida""Bifolium""Butterfly""Cardioid""Circle""Cissoid of Diocles""Cranioid"\ "Conchoid of Nicomedes""Cotes' Spiral""Cycloid of Ceva""Eight Curve""Epispiral"\ "Folium of Descartes""Hyperbola""Kampyle of Eudoxus""Lemniscate of Bernoulli"\ "Limacon of Pascal""Lituus""Log Spiral""Neoid""Ophiuride""Quadratix of Hippias"\ "Quadrifolium""Rose""Rose of Troy""Scarabeus""Semicubical Parabola""Sextic of Cayley"\ "Spiral of Archimedes""Strophoid""Trifolium""Build Your Own" default=3 visible=(@adv_extra==true) endparam param arach0 caption="Arachnida Param.1" default=1.0 visible=(@trap_mode1==0)&&(@adv_extra==true) endparam param arach11 caption="Arachnida Param.2" default=2.0 visible=(@trap_mode1==0)&&(@adv_extra==true) endparam param bif11 caption="Bifolium Param.1" default=1.0 visible=(@trap_mode1==1)&&(@adv_extra==true) endparam param bif21 caption="Bifolium Param.2" default=1.0 visible=(@trap_mode1==1)&&(@adv_extra==true) endparam param butt11 caption="Butterfly Param.1" default=1.0 visible=(@trap_mode1==2)&&(@adv_extra==true) endparam param butt21 caption="Butterfly Param.2" default=1.0 visible=(@trap_mode1==2)&&(@adv_extra==true) endparam param card11 caption="Cardioid Param.1" default=1.0 visible=(@trap_mode1==3)&&(@adv_extra==true) endparam param card21 caption="Cardioid Param.2" default=1.0 visible=(@trap_mode1==3)&&(@adv_extra==true) endparam param circ11 caption="Radius" default=1.0 visible=(@trap_mode1==4)&&(@adv_extra==true) endparam param ciss11 caption="Cissoid Param.1" default=1.0 visible=(@trap_mode1==5)&&(@adv_extra==true) endparam param ciss21 caption="Cissoid Param.2" default=1.0 visible=(@trap_mode1==5)&&(@adv_extra==true) endparam param cran11 caption="Cranioid Param.1" default=1.0 visible=(@trap_mode1==6)&&(@adv_extra==true) endparam param cran21 caption="Cranioid Param.2" default=1.0 visible=(@trap_mode1==6)&&(@adv_extra==true) endparam param cran31 caption="Cranioid Param.3" default=1.0 visible=(@trap_mode1==6)&&(@adv_extra==true) endparam param cran41 caption="Cranioid Param.4" default=1.0 visible=(@trap_mode1==6)&&(@adv_extra==true) endparam param cran51 caption="Cranioid Param.5" default=1.0 visible=(@trap_mode1==6)&&(@adv_extra==true) endparam param conc11 caption="Conchoid Param.1" default=1.0 visible=(@trap_mode1==7)&&(@adv_extra==true) endparam param conc21 caption="Conchoid Param.2" default=1.0 visible=(@trap_mode1==7)&&(@adv_extra==true) endparam param cot11 caption="Cotes Param.1" default=1.0 visible=(@trap_mode1==8)&&(@adv_extra==true) endparam param cot21 caption="Cotes Param.2" default=1.0 visible=(@trap_mode1==8)&&(@adv_extra==true) endparam param cot31 caption="Cotes Param.3" default=0.0 visible=(@trap_mode1==8)&&(@adv_extra==true) endparam param cev11 caption="Cycloid Param.1" default=1.0 visible=(@trap_mode1==9)&&(@adv_extra==true) endparam param cev21 caption="Cycloid Param.2" default=1.0 visible=(@trap_mode1==9)&&(@adv_extra==true) endparam param eight11 caption="Eight Param.1" default=1.0 visible=(@trap_mode==10)&&(@adv_extra==true) endparam param eight21 caption="Eight Param.2" default=1.0 visible=(@trap_mode1==10)&&(@adv_extra==true) endparam param epi11 caption="Epispiral Param.1" default=1.0 visible=(@trap_mode1==11)&&(@adv_extra==true) endparam param epi21 caption="Epispiral Param.2" default=2.0 visible=(@trap_mode1==11)&&(@adv_extra==true) endparam param foli11 caption="Folium Param.1" default=1.0 visible=(@trap_mode1==12)&&(@adv_extra==true) endparam param foli21 caption="Folium Param.2" default=1.0 visible=(@trap_mode1==12)&&(@adv_extra==true) endparam param hyp11 caption="Hyperbola Param.1" default=1.0 visible=(@trap_mode1==13)&&(@adv_extra==true) endparam param hyp21 caption="Hyperbola Param.2" default=1.0 visible=(@trap_mode1==13)&&(@adv_extra==true) endparam param kamp11 caption="Kampyle Param.1" default=1.0 visible=(@trap_mode1==14)&&(@adv_extra==true) endparam param kamp21 caption="Kampyle Param.2" default=1.0 visible=(@trap_mode1==14)&&(@adv_extra==true) endparam param lemni11 caption="Lemniscate Param.1" default=1.0 visible=(@trap_mode1==15)&&(@adv_extra==true) endparam param lemni21 caption="Lemniscate Param.2" default=0.0 visible=(@trap_mode1==15)&&(@adv_extra==true) endparam param lemni31 caption="Lemniscate Param.3" default=1.0 visible=(@trap_mode1==15)&&(@adv_extra==true) endparam param lima11 caption="Limacon Param.1" default=1.0 visible=(@trap_mode1==16)&&(@adv_extra==true) endparam param lima21 caption="Limacon Param.2" default=1.0 visible=(@trap_mode1==16)&&(@adv_extra==true) endparam param litu11 caption="Lituus Param.1" default=1.0 visible=(@trap_mode1==17)&&(@adv_extra==true) endparam param litu21 caption="Lituus Param.2" default=1.0 visible=(@trap_mode1==17)&&(@adv_extra==true) endparam param log11 caption="Log Param.1" default=1.0 visible=(@trap_mode1==18)&&(@adv_extra==true) endparam param log21 caption="Log Param.2" default=1.0 visible=(@trap_mode==18)&&(@adv_extra==true) endparam float param neo11 caption="Neoid Param.1" default=0.1 min=0.1 visible=(@trap_mode1==19)&&(@adv_extra==true) endparam float param neo21 caption="Neoid Param.2" default=1 visible=(@trap_mode1==19)&&(@adv_extra==true) endparam param ophi11 caption="Ophiuride Param.1" default=1.0 visible=(@trap_mode1==20)&&(@adv_extra==true) endparam param ophi21 caption="Ophiuride Param.2" default=1.0 visible=(@trap_mode1==20)&&(@adv_extra==true) endparam param ophi31 caption="Ophiuride Param.3" default=1.0 visible=(@trap_mode1==20)&&(@adv_extra==true) endparam param ophi41 caption="Ophiuride Param.4" default=1.0 visible=(@trap_mode1==20)&&(@adv_extra==true) endparam param ophi51 caption="Ophiuride Param.5" default=1.0 visible=(@trap_mode1==20)&&(@adv_extra==true) endparam param quad11 caption="Quadratix Param.1" default=1.0 visible=(@trap_mode1==21)&&(@adv_extra==true) endparam param quad21 caption="Quadratix Param.2" default=1.0 visible=(@trap_mode1==21)&&(@adv_extra==true) endparam param quadr11 caption="Quadrifolium Param.1" default=1.0 visible=(@trap_mode1==22)&&(@adv_extra==true) endparam param quadr21 caption="Quadrifolium Param.2" default=2.0 visible=(@trap_mode1==22)&&(@adv_extra==true) endparam param rose11 caption="Rose Param.1" default=1.0 visible=(@trap_mode1==23)&&(@adv_extra==true) endparam param rose21 caption="Rose Param.2" default=4.0 visible=(@trap_mode1==23)&&(@adv_extra==true) endparam param rost11 caption="Troy Param.1" default=1.0 visible=(@trap_mode1==24)&&(@adv_extra==true) endparam param rost21 caption="Troy Param.2" default=3.0 visible=(@trap_mode1==24)&&(@adv_extra==true) endparam param scar11 caption="Scarabeus Param.1" default=2.0 visible=(@trap_mode1==25)&&(@adv_extra==true) endparam param scar21 caption="Scarabeus Param.2" default=3.0 visible=(@trap_mode1==25)&&(@adv_extra==true) endparam param semi11 caption="Semicubical Param.1" default=1.0 visible=(@trap_mode1==26)&&(@adv_extra==true) endparam param semi21 caption="Semicubical Param.2" default=1.0 visible=(@trap_mode1==26)&&(@adv_extra==true) endparam param sext11 caption="Sextic Param.1" default=1.0 visible=(@trap_mode1==27)&&(@adv_extra==true) endparam param sext21 caption="Sextic Param.2" default=1.0 visible=(@trap_mode1==27)&&(@adv_extra==true) endparam param arch11 caption="Spiral Param.1" default=1.0 visible=(@trap_mode1==28)&&(@adv_extra==true) endparam param arch21 caption="Spiral Param.2" default=1.0 visible=(@trap_mode1==28)&&(@adv_extra==true) endparam param stroph11 caption="Strophoid Param.1" default=1.0 visible=(@trap_mode1==29)&&(@adv_extra==true) endparam param stroph21 caption="Strophoid Param.2" default=1.0 visible=(@trap_mode1==29)&&(@adv_extra==true) endparam param trif11 caption="Trifolium Param.1" default=1.0 visible=(@trap_mode1==30)&&(@adv_extra==true) endparam param trif21 caption="Trifolium Param.2" default=1.0 visible=(@trap_mode1==30)&&(@adv_extra==true) endparam param selown1 caption="Operator" enum="+""*""/" default=0 visible=(@trap_mode1==31)&&(@adv_extra==true) endparam float param byo11 caption="Your Own Param.1" default=1.0 visible=(@trap_mode1==31)&&(@adv_extra==true) endparam float param byo21 caption="Your Own Param.2" default=0.5 visible=(@trap_mode1==31)&&(@adv_extra==true) endparam func fnbyo11 caption="Theta Func. 1" default=sin() visible=(@trap_mode1==31)&&(@adv_extra==true) endfunc func fnbyo21 caption="Theta Func. 2" default=ident() visible=(@trap_mode1==31)&&(@adv_extra==true) endfunc Heading caption="Parameters" visible=(@adv_extra==true) Endheading param mix caption="Mix Curves" enum="Cabs|Sqrt""Real+Imag""Real*Imag""Real/Imag""Real+Real""Real*Real" \ "Imag+Imag""Imag*Imag" default=0 visible=(@adv_extra==true) endparam param point1 caption="Spread R" default=0.0 visible=(@adv_extra==true) endparam param point2 caption="Spread Theta" default=0.0 visible=(@adv_extra==true) endparam param adv_mr caption="Strength R" default=1.0 visible=(@adv_extra==true) endparam param adv_mTh caption="Strength Theta" default=1.0 visible=(@adv_extra==true) endparam param advradi caption="Mix Curves Radius" enum="Normal""Method 1(+)""Method 2(*)" default=0 visible=(@adv_extra==true) endparam param adv_addr1 caption="Offset R|Point1" default=-1.0 visible=(@adv_extra==true)&&(@advradi!=0) endparam param adv_addr2 caption="Offset R|Point2" default=1.5 visible=(@adv_extra==true)&&(@advradi!=0) endparam param adv_mult1 caption="Strength R|Point1" default=1.0 visible=(@adv_extra==true)&&(@advradi!=0) endparam param adv_mult2 caption="Strength R|Point2" default=1.0 visible=(@adv_extra==true)&&(@advradi!=0) endparam Heading caption="Advanced Functions" visible=(@adv_extra==true) Endheading func fnadv_th1 caption="Func. Theta Point1" default=cos() visible=(@adv_extra==true)&&(@advradi!=0) endfunc func fnadv_th2 caption="Func. Theta Point2" default=cos() visible=(@adv_extra==true)&&(@advradi!=0) endfunc func fnadv_r1 caption="Function R|Point1" default=ident() visible=(@adv_extra==true)&&(@advradi!=0) endfunc func fnadv_r2 caption="Function R|Point2" default=ident() visible=(@adv_extra==true)&&(@advradi!=0) endfunc func fnadv_cp caption="Function Point1" default=ident() visible=(@adv_extra==true) endfunc func fnadv_cq caption="Function Point2" default=ident() visible=(@adv_extra==true) endfunc func fngn1 caption="Function 1" default=cabs() visible=(@adv_extra==true)&&(@mix==0) endfunc func fngn2 caption="Function 2" default=sqrt() visible=(@adv_extra==true)&&(@mix==0) endfunc ;----------------------------------Morph---------------------------------------- Heading caption="Morph Parameters" visible=(@change==0 && @exp1==(1,0) && @exp2==(1,0) \ && @exp3==(1,0) && @tw==(0,0) && @tw2==(0,0) && @tw3==\ (0,0) && @tha2==false) Endheading Heading caption="Morph Parameters [active]" visible=(@change !=0 || @exp1 !=(1,0) || @exp2 !=(1,0) || \ @exp3 !=(1,0) || @tw !=(0,0) || @tw2 !=(0,0) || @tw3 !=(0,0)\ || @tha2==true) Endheading param showm caption="Morph Parameters" hint="Additional shaping parameters and functions." default=false endparam param tha2 caption="Morph -> Morph II" default=false visible=@showm endparam param change caption="Morph" enum="1""2""3""4""5""6""7""8""9""10""11" default=0 visible=@showm endparam param mmode caption="Z1 Mode" enum="z+|z|""z-|z|""|z|-z" default=0 hint="Defines relationship of z1 to z in 1st z block" visible=@showm && @tha2 endparam param zchange1 caption="Z1 type" enum="|z|""atan2(z)""real(z)""imag(z)" default=0 hint="Determines the character of z1 variable " visible=@showm && @tha2 endparam param mmode2 caption="Z2 Mode" enum="z+|z|""z-|z|""|z|-z""z*|z|""z/|z|""|z|/z" default=0 hint="Defines relationship of z2 to z in 2nd z block" visible=@showm && @tha2 && @change > 0 endparam param zchange2 caption="Z2 type" enum="|z|""atan2(z)""real(z)""imag(z)" default=0 hint="Determines the character of z2 variable " visible=@showm && @tha2 && @change > 0 endparam param mmode3 caption="Z3 Mode" enum="z+|z|""z-|z|""|z|-z""z*|z|""z/|z|""|z|/z" default=0 hint="Defines relationship of z3 to z in 3rd z block" visible=@showm && @tha2 && @change > 5 endparam param zchange3 caption="Z3 type" enum="|z|""atan2(z)""real(z)""imag(z)" hint="Determines the character of z3 variable " default=0 visible=@showm && @tha2 && @change > 5 endparam complex param exp1 caption="Bias 1" default=(1,0) visible=@showm endparam complex param exp3 caption="Bias 2" default=(1,0) visible=@showm && @change > 0 endparam complex param exp2 caption="Bias 3" default=(1,0) visible=@showm && @change > 5 endparam complex param exp4 caption="Bias Z1" default=(1,0) visible=@tha2 && @showm endparam complex param exp5 caption="Bias Z2" default=(1,0) visible=@tha2 && @showm && @change > 0 endparam complex param exp6 caption="Bias Z3" default=(1,0) visible=@tha2 && @showm && @change > 5 endparam complex param tw caption="Twist 1" default=(0,0) visible=@showm endparam complex param tw2 caption="Twist 2" default=(0,0) visible=@showm && @change > 0 endparam complex param tw3 caption="Twist 3" default=(0,0) visible=@showm && @change > 5 endparam complex param tw4 caption="Twist Z1" default=(0,0) visible=@tha2 && @showm endparam complex param tw5 caption="Twist Z2" default=(0,0) visible=@tha2 && @showm && @change > 0 endparam complex param tw6 caption="Twist Z3" default=(0,0) visible=@tha2 && @showm && @change > 5 endparam param op caption="Operator" enum="+""-""*""/""^" default=0 visible=@showm && @change > 5 endparam func nufunc caption="Morph function 1" default=ident() visible=@showm endfunc func nufunc2 caption="Morph function 2" default=ident () visible=@showm && @change > 0 endfunc func nufunc3 caption="Morph function 3" default=ident () visible=@showm && @change > 5 endfunc func nufunc4 caption="Morph function Z1" default=ident () visible=@tha2 && @showm endfunc func nufunc5 caption="Morph function Z2" default=zero () visible=@tha2 && @showm && @change > 0 endfunc func nufunc6 caption="Morph function Z3" default=zero () visible=@tha2 && @showm && @change > 5 endfunc ;---------------------------------Progressive Morph----------------------------- Heading caption="Progressive Morph Params" visible=@showm Endheading bool param progress caption="Progressive Parameters" default=false visible=@showm endparam int param linear caption="Progression Type" enum="Linear""Non-Linear 1""Non-Linear 2""Non-Linear 3" default=0 visible=@progress && @showm endparam float param speed caption="Non-Linear Amount" default=1 visible=@progress && @showm endparam bool param incExp1r caption="> Bias 1 (re)" default=false visible=@progress && @showm endparam float param exp1rDegree caption="Increment by" default=0 visible=@progress && @incExp1r && @showm endparam bool param incExp1i caption="> Bias 1 (im)" default=false visible=@progress && @showm endparam float param exp1iDegree caption="Increment by" default=0 visible=@progress && @incExp1i && @showm endparam bool param incExp3r caption="> Bias 2 (re)" default=false visible=@progress && @change > 0 && @showm endparam float param exp3rDegree caption="Increment by" default=0 visible=@progress && @incExp3r && @showm endparam bool param incExp3i caption="> Bias 2 (im)" default=false visible=@progress && @change > 0 && @showm endparam float param exp3iDegree caption="Increment by" default=0 visible=@progress && @incExp3i && @showm endparam bool param incExp2r caption="> Bias 3 (re)" default=false visible=@progress && @change > 5 && @showm endparam float param exp2rDegree caption="Increment by" default=0 visible=@progress && @incExp2r && @showm endparam bool param incExp2i caption="> Bias 3 (im)" default=false visible=@progress && @change > 5 && @showm endparam float param exp2iDegree caption="Increment by" default=0 visible=@progress && @incExp2i && @showm endparam bool param incExp4r caption="> Bias Z1 (re)" default=false visible=@progress && @tha2 && @showm endparam float param exp4rDegree caption="Increment by" default=0 visible=@progress && @incExp4r && @showm endparam bool param incExp4i caption="> Bias Z1 (im)" default=false visible=@progress && @tha2 && @showm endparam float param exp4iDegree caption="Increment by" default=0 visible=@progress && @incExp4i && @showm endparam bool param incExp5r caption="> Bias Z2 (re)" default=false visible=@progress && @tha2 && @change > 0 && @showm endparam float param exp5rDegree caption="Increment by" default=0 visible=@progress && @incExp5r && @showm endparam bool param incExp5i caption="> Bias Z2 (im)" default=false visible=@progress && @tha2 && @change > 0 && @showm endparam float param exp5iDegree caption="Increment by" default=0 visible=@progress && @incExp5i && @showm endparam bool param incExp6r caption="> Bias Z3 (re)" default=false visible=@progress && @tha2 && @change > 5 && @showm endparam float param exp6rDegree caption="Increment by" default=0 visible=@progress && @incExp6r && @showm endparam bool param incExp6i caption="> Bias Z3 (im)" default=false visible=@progress && @tha2 && @change > 5 && @showm endparam float param exp6iDegree caption="Increment by" default=0 visible=@progress && @incExp6i && @showm endparam bool param incTwr caption="> Twist 1 (re)" default=false visible=@progress && @showm endparam float param twistrDegree caption="Increment by" default=0 visible=@progress && @incTwr && @showm endparam bool param incTwi caption="> Twist 1 (im)" default=false visible=@progress && @showm endparam float param twistiDegree caption="Increment by" default=0 visible=@progress && @incTwi && @showm endparam bool param incTw2r caption="> Twist 2 (re)" default=false visible=@progress && @change > 0 && @showm endparam float param twist2rDegree caption="Increment by" default=0 visible=@progress && @incTw2r && @showm endparam bool param incTw2i caption="> Twist 2 (im)" default=false visible=@progress && @change > 0 && @showm endparam float param twist2iDegree caption="Increment by" default=0 visible=@progress && @incTw2i && @showm endparam bool param incTw3r caption="> Twist 3 (re)" default=false visible=@progress && @change > 5 && @showm endparam float param twist3rDegree caption="Increment by" default=0 visible=@progress && @incTw3r && @showm endparam bool param incTw3i caption="> Twist 3 (im)" default=false visible=@progress && @change > 5 && @showm endparam float param twist3iDegree caption="Increment by" default=0 visible=@progress && @incTw3i && @showm endparam bool param incTw4r caption="> Twist Z1 (re)" default=false visible=@progress && @tha2 && @showm endparam float param twist4rDegree caption="Increment by" default=0 visible=@progress && @incTw4r && @showm endparam bool param incTw4i caption="> Twist Z1 (im)" default=false visible=@progress && @tha2 && @showm endparam float param twist4iDegree caption="Increment by" default=0 visible=@progress && @incTw4i && @showm endparam bool param incTw5r caption="> Twist Z2 (re)" default=false visible=@progress && @tha2 && @change > 0 && @showm endparam float param twist5rDegree caption="Increment by" default=0 visible=@progress && @incTw5r && @showm endparam bool param incTw5i caption="> Twist Z2 (im)" default=false visible=@progress && @tha2 && @change > 0 && @showm endparam float param twist5iDegree caption="Increment by" default=0 visible=@progress && @incTw5i && @showm endparam bool param incTw6r caption="> Twist Z3 (re)" default=false visible=@progress && @tha2 && @change > 5 && @showm endparam float param twist6rDegree caption="Increment by" default=0 visible=@progress && @incTw6r && @showm endparam bool param incTw6i caption="> Twist Z3 (im)" default=false visible=@progress && @tha2 && @change > 5 && @showm endparam float param twist6iDegree caption="Increment by" default=0 visible=@progress && @incTw6i && @showm endparam ;---------------------------------Texture Parameters---------------------------- Heading caption="Texture Parameters" visible=(@rnd2==0 && @fbmtxt==0 && @decamt==0 && @tp==0 && @gnarl_amt==0) Endheading Heading caption="Texture Parameters [active]" visible=(@rnd2 !=0 || @fbmtxt !=0 || @decamt !=0 || @tp !=0 || @gnarl_amt !=0) Endheading param advt caption="Texture Parameters" default=false endparam float param txamt caption="Overall Tx Percent" default=100.0 hint="Controls the amount of \ Random, fBm, Decimal, Popgnarl and Additional \ texture applied cumulatively." visible=@advt endparam float param rnd2 caption="Random Tx Amount" default=0.0 hint="Adds Random texture" visible=@advt endparam Heading caption="fBm" visible=@advt && @fbmtxt==0 Endheading Heading caption="fBm [active]" visible=@advt && @fbmtxt !=0 Endheading param advfbm caption="fBm Texturing" default=false visible=@advt endparam float param fbmtxt caption="fBm Tx Amount" default=0.0 visible=@advt && @advfbm endparam param fbminit caption="fBm Initialization" enum="z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y""pixel" hint="Determines which variable(s) initialize(s) the texture" default=0 visible=@advt && @advfbm endparam param ztyp4 caption="Choose z type" enum="#z""Morph z""Trap z""Trap #z""Dist" default=2 hint="Determines which kind of 'z' variable is used in \ 'fBm Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible=@advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam func fntx8 caption ="Init Function 1" default=ident() hint="Modifies the 1st variable defined in \ 'fBm Initialization'" visible=@advt && @advfbm endfunc func fntx9 caption ="Init Function 2" default=ident() hint="Modifies the 2nd variable defined in \ 'fBm Initialization'" visible=@advt && @advfbm endfunc func fbmrfn1 caption ="fBm Function 1" default=ident() hint="Try changing this to achieve different fBm \ 'cloud' distribution and look" visible=@advt && @advfbm endfunc func fbmifn1 caption ="fBm Function 2" default=ident() hint="Try changing this to achieve different fBm \ 'cloud' distribution and look" visible=@advt && @advfbm endfunc func fbmrfn2 caption ="Pattern Function 1" default=floor() hint="Changing this often radically alters the look of the \ texture. With many functions--if they look 'grainy'--\ you will need to make the value of the 'Frequency' (real) \ param much smaller--on the order of .0000001. Experiment!" visible=@advt && @advfbm endfunc func fbmifn2 caption ="Pattern Function 2" default=floor() hint="Changing this often radically alters the look of the \ texture. With many functions--if they look 'grainy'--\ you will need to make the value of the 'Frequency' (real) \ param much smaller--on the order of .0000001. Experiment!" visible=@advt && @advfbm endfunc float param ha caption="Distribution 1" default=1 visible=@advt && @advfbm endparam float param hb caption="Distribution 2" default=1 visible=@advt && @advfbm endparam float param hc caption="Distribution 3" default=1 visible=@advt && @advfbm endparam float param hd caption="Distribution 4" default=1 visible=@advt && @advfbm endparam complex param txia4 caption="Tx Pattern 1" default=(0.0,0.0) visible=@advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txib4 caption="Tx Pattern 2" default=(1.0,0.0) visible=@advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txic4 caption="Tx Pattern 3" default=(1.0,0.0) visible=@advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param exad8 caption="Frequency 1" default=(1.0,0.0) hint="Changes the pattern frequency by acting on the 1st (or only) \ variable defined in 'fBm Initialization'" visible=@advt && @advfbm endparam complex param exad9 caption="Frequency 2" default=(1.0,0.0) hint="Changes the pattern frequency by acting on the 2nd variable \ (when present) defined in 'fBm Initialization'" visible=@advt && @advfbm && !(@fbminit==0 ||@fbminit==5 || @fbminit==6 ||\ @fbminit==21) endparam float param fbmscale caption="fBm Scale" default=1.0 visible=@advt && @advfbm endparam complex param fbmoffset caption="fBm Offset" default=(0,0) visible=@advt && @advfbm endparam float param fbmangle caption="fBm Rotation" default=0.0 visible=@advt && @advfbm endparam float param fbmstep caption="fBm Scale Step" default=0.5 visible=@advt && @advfbm endparam float param fbmastep caption="fBm Rotation Step" default=37.0 visible=@advt && @advfbm endparam param fbmoct caption="fBm Octaves" default=7 min=1 visible=@advt && @advfbm endparam float param fbmpower caption="fBm Exponent" default=2.0 visible=@advt && @advfbm endparam float param fbm_limit caption="fBm Limit" default=0.0 visible=@advt && @advfbm endparam bool param fbm_sgn caption="Soften Texture" default=true visible=@advt && @advfbm endparam Heading caption="Decimal" visible=@advt && @decamt==0 Endheading Heading caption="Decimal [active]" visible=@advt && @decamt !=0 Endheading param advd caption="Decimal Texturing" default=false visible=@advt endparam float param decamt caption="Decimal Tx Amount" default=0.0 visible=@advt && @advd endparam param dec_init caption="Decimal Initialisation" enum="z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" default=0 hint="Determines which variable(s) initialize(s) the texture" visible=@advt && @advd endparam param ztyp2 caption="Init z type" enum="#z""Morph z""Trap z""Trap #z""Dist" default=2 hint="Determines which kind of 'z' variable is used in \ 'Decimal Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible=@advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam func fntx4 caption ="Init Function 1" default=ident() hint="Modifies the 1st variable defined in \ 'Decimal Initialization'" visible=@advt && @advd endfunc func fntx5 caption ="Init Function 2" default=ident() hint="Modifies the 2nd variable defined in \ 'Decimal Initialization'" visible=@advt && @advd endfunc param dec_type caption="Decimal Type" enum="Ceil" "Floor" "Trunc" "Round""All Functions" \ "-Round-Ceil""-Round*Ceil""+Round*Ceil""-Round-Trunc" \ "-Round*Trunc""+Round*Trunc""-Trunc-Floor""-Trunc*Floor" \ "+Trunc*Floor""-Trunc-Ceil""-Trunc*Ceil""+Trunc*Ceil" \ "-Ceil-Floor""-Ceil*Floor""+Ceil*Floor" visible=@advt && @advd endparam func fndec caption="Type Function" default=atanh () hint="Active when 'Decimal Type'='All Functions'" visible=@advt && @advd && @dec_type==4 endfunc complex param txia2 caption="Tx Pattern 1" default=(0.0,0.0) visible=@advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txib2 caption="Tx Pattern 2" default=(1.0,0.0) visible=@advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txic2 caption="Tx Pattern 3" default=(1.0,0.0) visible=@advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam float param dec_scale caption="Scale 1st Variable" default=1.0 hint="Changes the value of the 1st (or only) variable \ defined in 'Decimal Type'" visible=@advt && @advd endparam float param dec_scale2 caption="Scale 2nd Variable" default=1.0 hint="Changes the value of the 2nd variable \ (when present) defined in 'Decimal Type'" visible=@advt && @advd && @dec_type > 4 endparam float param dectxt caption="Decimal Depth" default=1.0 hint="Changes the amount and to some extent \ the pattern of the texture." visible=@advt && @advd endparam float param dec_limit caption="Decimal Limit" default=2.0 hint="Limits the texture depth" min=0.0 visible=@advt && @advd endparam complex param exad4 caption="Frequency 1" default=(1.0,0.0) hint="Changes the frequency of the texture elements \ based on the 1st (or only) variable present defined in \ 'Decimal Initialization'" visible=@advt && @advd endparam complex param exad5 caption="Frequency 2" default=(1.0,0.0) hint="Changes the frequency of the texture elements \ based on the 2nd variable (when present) defined in \ 'Decimal Initialization'" visible=@advt && @advd && !(@dec_init==0 ||@dec_init==5 || @dec_init==6) endparam float param dec_size caption="Decimal Size" default=1.0 visible=@advt && @advd endparam param dec_sgn caption="Apply Decimal Sign?" default=true visible=@advt && @advd endparam Heading caption="Popgnarl" visible=@advt && @gnarl_amt==0 Endheading Heading caption="Popgnarl [active]" visible=@advt && @gnarl_amt !=0 Endheading param advpg caption="Popgnarl Texturing" default=false visible=@advt endparam float param gnarl_amt caption="Popgnarl Amount" default=0.0 min=0.0 visible=@advt && @advpg endparam param gnarl_init caption="Popgnarl Init" enum="z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y""pixel" default=0 hint="Determines which variable(s) initialize(s) the texture" visible=@advt && @advpg endparam param ztyp3 caption="Choose z type" enum="#z""Morph z""Trap z""Trap #z""Dist" default=2 hint="Determines which kind of 'z' variable is used in \ 'Popgnarl Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible=@advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam func fntx6 caption ="Init Function 1" default=ident() hint="Modifies the 1st variable defined in \ 'Popgnarl Initialization'" visible=@advt && @advpg endfunc func fntx7 caption ="Init Function 2" default=ident() hint="Modifies the 2nd variable defined in \ 'Popgnarl Initialization'" visible=@advt && @advpg endfunc complex param txia3 caption="Tx Pattern 1" default=(0.0,0.0) visible=@advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txib3 caption="Tx Pattern 2" default=(1.0,0.0) visible=@advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txic3 caption="Tx Pattern 3" default=(1.0,0.0) visible=@advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param exad6 caption="Frequency 1" default=(1.0,0.0) hint="Changes the frequency of the texture by altering the value \ of the 1st (or only) variable defined in 'Popgnarl Initilaization'" visible=@advt && @advpg endparam complex param exad7 caption="Frequency 2" default=(1.0,0.0) hint="Changes the frequency of the texture by altering the value \ of the 2nd variable (when present) defined in 'Popgnarl Initilaization'" visible=@advt && @advpg && !(@gnarl_init==0 || @gnarl_init==5 || \ @gnarl_init==6 || @gnarl_init==21) endparam param gnarl_type caption="Popgnarl Mode" enum ="real" "imag" "real+imag" "real*imag" "real-imag" \ "real/imag" "imag/real" "real^imag" "imag^real" \ "1/real" "1/imag" "angle" "magnitude" "arith. mean" \ "geom. mean" visible=@advt && @advpg endparam func fng caption ="Mode Function" default=abs() hint="Acts on the variables in 'Popgnarl Mode'" visible=@advt && @advpg && @gnarl_type < 11 endfunc param gnarl_scaling caption="Popgnarl Scaling" enum="Ceil" "Floor" "Trunc" "Round""All Functions" \ "-Round-Ceil""-Round*Ceil""+Round*Ceil""-Round-Trunc" \ "-Round*Trunc""+Round*Trunc""-Trunc-Floor""-Trunc*Floor" \ "+Trunc*Floor""-Trunc-Ceil""-Trunc*Ceil""+Trunc*Ceil" \ "-Ceil-Floor""-Ceil*Floor""+Ceil*Floor" visible=@advt && @advpg endparam func fngnarl caption="Scaling Function" default=atanh () visible=@advt && @advpg && @gnarl_scaling==4 endfunc float param gnarl_scale caption="Scale 1st Variable" default=1.0 hint="Changes the value of the 1st (or only) variable \ defined in 'Popgnarl Scaling'" visible=@advt && @advpg endparam float param gnarl_scale2 caption="Scale 2nd Variable" default=1.0 hint="Changes the value of the 2nd variable \ (when present)defined in 'Popgnarl Scaling'" visible=@advt && @advpg && @gnarl_scaling > 4 endparam param gnarl_form caption="Popgnarl Formula" enum="gnarl" "popcorn" "popsicle" "tannous" "narlog" visible=@advt && @advpg endparam float param gnarl_limit caption="Popgnarl Limit" default=1.0 hint="Limits the texture depth" min=0.0 visible=@advt && @advpg endparam float param gnarl_size caption="Popgnarl Size" default=1.0 visible=@advt && @advpg endparam int param gnarl_octaves caption="Popgnarl Octaves" default=5 min =1 visible=@advt && @advpg endparam Heading caption="Geometrix" visible=@advt && @trtxt==0 Endheading Heading caption="Geometrix [active]" visible=@advt && @trtxt !=0 Endheading param advtr caption="Geometrix Texturing" default=false visible=@advt endparam float param trtxt caption="Geometrix Tx Amt" default=0.0 visible=@advt && @advtr endparam param trinit caption="Geometrix Init" enum="z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" hint="Determines which variable(s) initialize(s) the texture" default=0 visible=@advt && @advtr endparam param ztyp5 caption="Choose z type" enum="#z""Morph z""Trap z""Trap #z""Dist" default=2 hint="Determines which kind of 'z' variable is used in \ 'Geometrix Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant. 'Dist' needs a high value and may require adjustment \ of the gradient. It tends to produce border and shading effects rather \ than textures per se." visible=@advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam func fntx10 caption ="Init Function 1" default=ident() hint="Modifies the 1st variable defined in \ 'Geometrix Initialization'" visible=@advt && @advtr endfunc func fntx11 caption ="Init Function 2" default=ident() hint="Modifies the 2nd variable defined in \ 'Geometrix Initialization'" visible=@advt && @advtr endfunc complex param trxia caption="Pattern 1" default=(0.0,0.0) visible=@advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxib caption="Pattern 2" default=(1.0,0.0) visible=@advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxic caption="Pattern 3" default=(1.0,0.0) visible=@advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param exad10 caption="Frequency 1" default=(1.0,0.0) hint="Changes the pattern frequency by acting on the 1st (or only) \ variable defined in 'Geometrix Initialization'" visible=@advt && @advtr endparam complex param exad11 caption="Frequency 2" default=(1.0,0.0) hint="Changes the pattern frequency by acting on the 2nd variable \ (when present) defined in 'Geometrix Initialization'" visible=@advt && @advtr && !(@trinit==0 ||@trinit==5 || @trinit==6 ||\ @trinit==21) endparam float param exp caption="Contrast" default=0.6 visible=@advt && @advtr hint="Higher values intensify the contrast between texture sections. If \ you find burned-out areas of texture try lowering this value" endparam float param scc caption="Density" default=1.0 hint="Higher values create finer detail in the texture" visible=@advt && @advtr endparam float param trp1 caption="Scale" default=1 visible=@advt && @advtr hint="Densest texture is at '1'. Try other values and increase the \ 'Density' value to achieve different texture patterns" endparam float param freq caption="Definition 1" default=10 visible=@advt && @advtr hint="Works interactively with other 'Definition' params. Higher values \ yield more texture definition and/or complexity" endparam float param trp2 caption="Definition 2" default=.7 hint="Works interactively with other 'Definition' params. Lower values \ yield more texture definition" visible=@advt && @advtr endparam float param trp3 caption="Definition 3" default=.7 hint="Works interactively with other 'Definition' params. Higher values \ yield more texture definition" visible=@advt && @advtr endparam float param shad1 caption="Shading 1" default=1 hint="Affects the shading of certain areas of texture" visible=@advt && @advtr endparam float param shad2 caption="Shading 2" default=1 hint="Affects the shading of certain areas of texture" visible=@advt && @advtr endparam float param shad3 caption="Shading 3" default=1 hint="Affects the shading of certain areas of texture" visible=@advt && @advtr endparam float param shad4 caption="Shading 4" default=1 hint="Affects the shading of certain areas of texture" visible=@advt && @advtr endparam func fnzr caption="Z function 1" default=ident() visible=@advt && @advtr endfunc func fnzi caption="Z function 2" default=ident() visible=@advt && @advtr endfunc func fn1tx caption ="Real function" default=sqrt() visible=@advt && @advtr endfunc func fn2tx caption ="Imag function" default=ident() visible=@advt && @advtr endfunc func fn3tx caption ="Overall function" default=asin() visible=@advt && @advtr endfunc float param geo_limit caption="Geometrix Limit" default=0.0 hint="Low values limit texture contrast. Zero is 'off'" visible=@advt && @advtr endparam bool param geo_sgn caption="Soften Texture" default=false visible=@advt && @advtr endparam Heading caption="Additional Texture" visible=@advt && @tp==0 Endheading Heading caption="Additional Texture [active]" visible=@advt && @tp !=0 Endheading param advatx caption="Additional Texturing" default=false visible=@advt endparam float param tp caption="Add'l Tx Amount" hint="'Blends' in texture" default=0.0 visible=@advt && @advatx endparam param tt caption="Add'l Tx Initialization" enum="z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" default=0 hint="Determines which variable(s) initialize(s) the texture" visible=@advt && @advatx endparam param ztyp caption="Choose z type" enum="#z""Morph z""Trap z""Trap #z""Dist" default=2 hint="Determines which kind of 'z' variable is used in \ 'Add'l Tx Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible=@advt && @advatx && (@tt < 5 || @tt > 14) endparam func fntx1 caption ="Init Function 1" default=ident() hint="Modifies the 1st variable defined in \ 'Add'l Tx Initialization'" visible=@advt && @advatx endfunc func fntx2 caption ="Init Function 2" default=ident() hint="Modifies the 2nd variable defined in\ 'Add'l Tx Initialization'" visible=@advt && @advatx endfunc func fntx3 caption ="Add'l Tx Function" default=trunc() visible=@advt && @advatx endfunc complex param txia1 caption="Tx Pattern 1" default=(0.0,0.0) visible=@advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param txib1 caption="Tx Pattern 2" default=(1.0,0.0) visible=@advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param txic1 caption="Tx Pattern 3" default=(1.0,0.0) visible=@advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param exad1 caption="Frequency 1" default=(1.0,0.0) hint="Determines the frequency of the pattern by acting on \ the 1st (or only) variable defined by 'Add'l Tx Initialization'" visible=@advt && @advatx endparam complex param exad2 caption="Frequency 2" default=(1.0,0.0) hint="Determines the frequency of the pattern by acting on \ the 2nd variable (when present) defined by 'Add'l Tx Initialization'" visible=@advt && @advatx && !(@tt==0 ||@tt==5 || @tt==6) endparam float param tv caption="Scale 1" hint="This and the next parameter work together \ to determine the scale of the texture" default=10.0 visible=@advt && @advatx endparam float param ts caption="Scale 2" default=2.0 visible=@advt && @advatx endparam float param tc caption="Density" hint="Works similarly to 'Color Density'. Positive \ numbers use division. Negative numbers use modulus, \ producing a slightly different effect." default=5.0 visible=@advt && @advatx endparam float param r caption="Randomness" default=0.0 visible=@advt && @advatx endparam bool param add_sgn caption="Soften Texture" default=true visible=@advt && @advatx endparam param version caption="Version" default=1.0 visible=false endparam } as-Harlequin { ;This color is a variation of the Harlequin in mt.ucl. ;It takes the normal equation of Harlequin : ; theta = real(atan(y/x)) ; radius = (theta)^2 ; radius = (1-radius^2) ; distance = cabs(#z-radius) ;From this point it's added a polar radius(radiusPolar) of differents Curves so the distance and radius point became ; float radius_dist = abs(cabs(#z - radiusHarlequin) - radiusPolar) ; float point_dist = cabs(#z - radiusHarlequin - trap_point) ;There are differents parameters and functions and there are very interesting mix and effect ;There's the possibility to use only the Harlequin set or Polar Set just using parameter ; TO SEE STANDARD POLAR CURVES : ; Set in Harlequin Parameters ; Start Harlequin Radius = 0 ; And coloring mode = closest ; Use Pixel 2 Iterations in Sam.ufm ; TO SEE STANDARD HARLEQUIN MODE ; Set in Polar Curves Parameters ; Start Polar Radius = 0 ; And coloring mode = closest ; Use Pixel 2 Iterations in Sam.ufm ;Advanced Mode : ;When advanced mode is abled, coordinate x,y will be changed in a similar way to Spherical Coordinate ;so we have x,y,z : ; x = r*sin(phi)*cos(theta) ; y = r*sin(phi)*sin(theta) ; z = r*cos(phi) ;Where theta = atan2(#z) and phi = atan(sqrt(x^2+y^2)) ;The trapped point will be trap_point = x+flip(y)+z ;In general r must be the distance from the pole instead in this version r will be the radius ;definition of the polar curves. ;There are differents changes to the angle for the advanced mode and differents operators. ;Implemented with the Morph section and Texture section from formule of Toby Marshall. ;Toby added "edge definition parameter for closest modes". ;Andrea Spinozzi(Dicembre2014-August2019) Init: trap_z = 0.0 trap_p = 0.0 index = 0.0 float distance = 0.0 float o_distance = 0.0 int iter = 0 int trap_iter = 0 bool trapped = false float min_dist = 1e30 float point_dist = 0.0 float radius_dist =0.0 int ra = 1322939 int rc = 7336919 int rm = 36282757 complex trapPolarPoint = 0.0 complex polarPoint = 0.0 float thetaHarlequin = 0 float thetaHarlequinSt = 0 float thetaPolar = 0 float thetaPolarSt = 0 float radiusPolar = 0 float radiusPolarSt = 0 float phi = 0 complex radiusHarlequin = 0.0 complex radiusHarlequinSt1 = 0.0 complex radiusHarlequinSt2 = 0.0 complex FinalPointX = 0.0 complex FinalPointY = 0.0 complex FinalPointZ = 0.0 if @no_of_iters == 0 int max_iter = #maxiter - @skip else int max_iter = @skip + @no_of_iters endif ;Toby Morph complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,0) complex z1p = (0,0) complex z1q = (0,0) complex qw = (0,0) complex er = (0,0) complex ty = (0,0) complex nuvar = (0,0) tw = @tw tw2 = @tw2 tw3 = @tw3 tw4 = @tw4 tw5 = @tw5 tw6 = @tw6 exp1 = @exp1 exp2 = @exp2 exp3 = @exp3 exp4 = @exp4 exp5 = @exp5 exp6 = @exp6 ;Toby Texture complex tz = (0,0) p = (0.0,0.0) pfb = (0.0,0.0) float x = 0 float y = 0 float xx = 0 float yy = 0 float ddd = 0 float texture_rnd = 0.0 float texture_dec = 0.0 float texture_fbm = 0.0 float texture_gna = 0.0 float pd = 0.0 int i = 0 int it = 0 float aaa = 0 float texture = 0.0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float rn = real(#random) float t2 = 0 complex trap2_z = (0,0) float texture_tr = 0.0 complex ptr = (0,0) float frfr = 0 float fifi = 0 float zzzz = 0 float r0r0 = 0 float i0i0 = 0 float r1r1 = 0 float i1i1 = 0 float azaz = 0 float bzbz = 0 float czcz = 0 float dzdz = 0 float zaza = 0 float avav = 1 float xbxb = 1 complex z_values[#maxiter+1] float za = 0 ;complex r = (0,1) ^ (@angle / 90.0) Loop: iter = iter+1 complex pixel1 = #z complex z1 = #z ;----------------------Circular Inversion--------------------------------------- if (@AbleInversion == true) c = @invcenter complex r1 = (0,1) ^ (@angle / 90.0) ;rotation vector complex z1 = (pixel1-c) * r1; apply translation and rotation z1 = real(z1) + flip(imag(z1) * @aspect); apply aspect float d = 1.0 if (@invpower == (-1,0)); standard power z1 = @invscale*z1*d / |z1|; do inversion (Kerry-optimized) else; general power z1 = @invscale*z1*d * cabs(z1)^(@invpower); do inversion endif z1 = real(z1) + flip(imag(z1) / @aspect); undo aspect pixel1 = z1 * conj(r1) + c; undo rotation and translation endif ;--------------------------------Morph------------------------------------------ if(@showm == false);To don't affect calculation if morph is setted to false z1 = z1 elseif(@showm == true) if (@tha2 == false) qw = @nufunc(z1-tw)^exp3 er = @nufunc2((z1-tw2)^exp1) ty = @nufunc3((z1-tw3)^exp2) if @change == "1" z1 = @nufunc(z1-tw)^exp1 elseif @change == "2" z1 = qw+er elseif @change == "3" z1 = qw-er elseif @change == "4" z1 = qw*er elseif @change == "5" z1 = qw/er elseif @change == "6" z1 = qw^er elseif @change == "7" if @op == "+" z1 = qw+(er+ty) elseif @op == "-" z1 = qw+(er-ty) elseif @op == "*" z1 = qw+(er*ty) elseif @op == "/" z1 = qw+(er/ty) elseif @op == "^" z1 = qw+(er^ty) endif elseif @change == "8" if @op == "+" z1 = qw-(er+ty) elseif @op == "-" z1 = qw-(er-ty) elseif @op == "*" z1 = qw-(er*ty) elseif @op == "/" z1 = qw-(er/ty) elseif @op == "^" z1 = qw-(er^ty) endif elseif @change == "9" if @op == "+" z1 = qw*(er+ty) elseif @op == "-" z1 = qw*(er-ty) elseif @op == "*" z1 = qw*(er*ty) elseif @op == "/" z1 = qw*(er/ty) elseif @op == "^" z1 = qw*(er^ty) endif elseif @change == "10" if @op == "+" z1 = qw/(er+ty) elseif @op == "-" z1 = qw/(er-ty) elseif @op == "*" z1 = qw/(er*ty) elseif @op == "/" z1 = qw/(er/ty) elseif @op == "^" z1 = qw/(er^ty) endif elseif @change == "11" if @op == "+" z1 = qw^(er+ty) elseif @op == "-" z1 = qw^(er-ty) elseif @op == "*" z1 = qw^(er*ty) elseif @op == "/" z1 = qw^(er/ty) elseif @op == "^" z1 = qw^(er^ty) endif endif else if @zchange1 == "|z|" z2 = |z1| elseif @zchange1 == "atan2(z)" z2 = atan2(z1) elseif @zchange1 == "real(z)" z2 = real(z1) elseif @zchange1 == "imag(z)" z2 = imag(z1) endif if @zchange2 == "|z|" z3 = |z1| elseif @zchange2 == "atan2(z)" z3 = atan2(z1) elseif @zchange2 == "real(z)" z3 = real(z1) elseif @zchange2 == "imag(z)" z3 = imag(z1) endif if @zchange3 == "|z|" z4 = |z1| elseif @zchange3 == "atan2(z)" z4 = atan2(z1) elseif @zchange3 == "real(z)" z4 = real(z1) elseif @zchange3 == "imag(z)" z4 = imag(z1) endif aa = @nufunc((z1-tw)+@nufunc4(z2-tw4)^exp4) bb = @nufunc((z1-tw)-@nufunc4(z2-tw4)^exp4) cc = @nufunc4((z2-tw4)^exp4-@nufunc(z1-tw)) ff = real((z3-tw5)^exp5) dd = @nufunc5(ff) jj = (z4-tw6) kk = (z1-tw2) oo = (z1-tw3) gg = @nufunc2(kk) hh = @nufunc6(jj)^exp6 pp = @nufunc3(oo) if @mmode == "z+|z|" nuvar = aa elseif @mmode == "z-|z|" nuvar = bb elseif @mmode == "|z|-z" nuvar = cc endif if @change == "1" z1 = nuvar^exp1 elseif @change == "2" if @mmode2 == "z+|z|" z1 = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1 = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1 = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1 = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1 = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1 = nuvar^exp3+@nufunc5(ff/gg)^exp1 endif elseif @change == "3" if @mmode2 == "z+|z|" z1 = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1 = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1 = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1 = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1 = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1 = nuvar^exp3-@nufunc5(ff/gg)^exp1 endif elseif @change == "4" if @mmode2 == "z+|z|" z1 = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1 = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1 = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1 = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1 = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1 = nuvar^exp3*@nufunc5(ff/gg)^exp1 endif elseif @change == "5" if @mmode2 == "z+|z|" z1 = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1 = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1 = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1 = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1 = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1 = nuvar^exp3/@nufunc5(ff/gg)^exp1 endif elseif @change == "6" if @mmode2 == "z+|z|" z1 = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1 = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1 = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1 = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1 = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1 = nuvar^exp3^@nufunc5(ff/gg)^exp1 endif elseif @change == "7" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p = nuvar^exp3+@nufunc5(ff/gg)^exp1 endif if @op == "+" z1 = z1q + z1p elseif @op == "-" z1 = z1q - z1p elseif @op == "*" z1 = z1q * z1p elseif @op == "/" z1 = z1q / z1p elseif @op == "^" z1 = z1q ^ z1p endif elseif @change == "8" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p = nuvar^exp3-@nufunc5(ff/gg)^exp1 endif if @op == "+" z1 = z1q + z1p elseif @op == "-" z1 = z1q - z1p elseif @op == "*" z1 = z1q * z1p elseif @op == "/" z1 = z1q / z1p elseif @op == "^" z1 = z1q ^ z1p endif elseif @change == "9" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p = nuvar^exp3*@nufunc5(ff/gg)^exp1 endif if @op == "+" z1 = z1q + z1p elseif @op == "-" z1 = z1q - z1p elseif @op == "*" z1 = z1q * z1p elseif @op == "/" z1 = z1q / z1p elseif @op == "^" z1 = z1q ^ z1p endif elseif @change == "10" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p = nuvar^exp3/@nufunc5(ff/gg)^exp1 endif if @op == "+" z1 = z1q + z1p elseif @op == "-" z1 = z1q - z1p elseif @op == "*" z1 = z1q * z1p elseif @op == "/" z1 = z1q / z1p elseif @op == "^" z1 = z1q ^ z1p endif elseif @change == "11" if @mmode3 == "z+|z|" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-|z|" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "|z|-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*|z|" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/|z|" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "|z|/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+|z|" z1p = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-|z|" z1p = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "|z|-z" z1p = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*|z|" z1p = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/|z|" z1p = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "|z|/z" z1p = nuvar^exp3^@nufunc5(ff/gg)^exp1 endif if @op == "+" z1 = z1q + z1p elseif @op == "-" z1 = z1q - z1p elseif @op == "*" z1 = z1q * z1p elseif @op == "/" z1 = z1q / z1p elseif @op == "^" z1 = z1q ^ z1p endif endif endif endif ;------------------Define Angles of Harlequin and Polar Curves------------------ ; theta = real(atan(y/x)) ; radius = (theta)^2 ; radius = (1-radius^2) ; distance = cabs(#z-radius) float xHarl = real(z1) float yHarl = imag(z1) x = real(z1) y = imag(z1) ;---------------------Mix Angles------------------------------------------------ if (@atanXY==0) float thetaHarlequin = @HarlequinAngle*real(atan(@fny(yHarl)/@fnx(xHarl))) elseif (@atanXY==1) float thetaHarlequin = @HarlequinAngle*real(atan(@fny(yHarl)*@fnx(xHarl))) endif float thetaPolar = atan2(@fnThetaPolar(z1))*@PolarAngle if (@angleHarlequin == 0) float thetaHarlequinSt = thetaHarlequin elseif (@angleHarlequin == 1) float thetaHarlequinSt = @mixHarlequin3*(thetaHarlequin + @mixHarlequin1) + (thetaPolar + @MixPolar1)*@MixPolar3 elseif (@angleHarlequin == 2) float thetaHarlequinSt = @mixHarlequin3*(thetaHarlequin + @mixHarlequin1) - (thetaPolar + @MixPolar1)*@MixPolar3 elseif (@angleHarlequin == 3) float thetaHarlequinSt = @mixHarlequin3*(thetaHarlequin + @mixHarlequin1) * (thetaPolar + @MixPolar1)*@MixPolar3 elseif (@angleHarlequin == 4) float thetaHarlequinSt = @mixHarlequin3*(thetaHarlequin + @mixHarlequin1) / (thetaPolar + @MixPolar1)*@MixPolar3 elseif (@angleHarlequin == 5) float thetaHarlequinSt = @mixHarlequin3*(thetaHarlequin + @mixHarlequin1) ^ (thetaPolar + @MixPolar1)*@MixPolar3 endif if (@anglePolar == 0) float thetaPolarSt = thetaPolar elseif (@anglePolar == 1) float thetaPolarSt = @MixPolar4*(thetaPolar + @MixPolar2) + (thetaHarlequin + @mixHarlequin2)*@mixHarlequin4 elseif (@anglePolar == 2) float thetaPolarSt = @MixPolar4*(thetaPolar + @MixPolar2) - (thetaHarlequin + @mixHarlequin2)*@mixHarlequin4 elseif (@anglePolar == 3) float thetaPolarSt = @MixPolar4*(thetaPolar + @MixPolar2) * (thetaHarlequin + @mixHarlequin2)*@mixHarlequin4 elseif (@anglePolar == 4) float thetaPolarSt = @MixPolar4*(thetaPolar + @MixPolar2) / (thetaHarlequin + @mixHarlequin2)*@mixHarlequin4 elseif (@anglePolar == 5) float thetaPolarSt = @MixPolar4*(thetaPolar + @MixPolar2) ^ (thetaHarlequin + @mixHarlequin2)*@mixHarlequin4 endif ;-------------------------Harlequin Set----------------------------------------- if (@selectHarlequinCurve == 0) ;T=theta^2|(1-T)^2 radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1^2+@HarlSeed2)+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 1) ;T=theta^2|(1-T)+T radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1+@HarlSeed2)+@fnHarl2(radiusHarlequinSt1+@HarlSeed3))*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 2) ;T=theta^2|(1-T)-T radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1+@HarlSeed2)-@fnHarl2(radiusHarlequinSt1+@HarlSeed3))*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 3) ;T=theta^2|(1-T)*T radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1+@HarlSeed2)*@fnHarl2(radiusHarlequinSt1+@HarlSeed3))*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 4) ;T=theta^2|(1-T)/T radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1+@HarlSeed2)/@fnHarl2(radiusHarlequinSt1+@HarlSeed3))*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 5) ;T=theta^2|(1-T)^T radiusHarlequinSt1 = (@fnAngleHarl1(thetaHarlequinSt)^2+@HarlSeed1)*@multHarl2 radiusHarlequinSt2 = (@fnHarl1(1-radiusHarlequinSt1-@HarlSeed2)^@fnHarl2(radiusHarlequinSt1-@HarlSeed3))*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1 elseif (@selectHarlequinCurve == 6) ;T=theta^2+theta^2 radiusHarlequinSt1 = (@HarlequinAngle*(@fnHarl1(thetaHarlequinSt+@HarlSeed1)^2+@fnHarl2(thetaHarlequinSt+@HarlSeed2)^2)+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt1)*@HarlequinAngle1) radiusHarlequinSt2 = radiusHarlequinSt2*@multHarl2 elseif (@selectHarlequinCurve == 7) ;T=theta^2*theta^2 radiusHarlequinSt1 = (@HarlequinAngle*(@fnHarl1(thetaHarlequinSt+@HarlSeed1)^2*@fnHarl2(thetaHarlequinSt+@HarlSeed2)^2)+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt1)*@HarlequinAngle1) radiusHarlequinSt2 = radiusHarlequinSt2*@multHarl2 elseif (@selectHarlequinCurve == 8) ;T=theta^2-theta^2 radiusHarlequinSt1 = (@HarlequinAngle*(@fnHarl1(thetaHarlequinSt+@HarlSeed1)^2-@fnHarl2(thetaHarlequinSt+@HarlSeed2)^2)+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt1)*@HarlequinAngle1)*@multHarl2 radiusHarlequinSt2 = radiusHarlequinSt2*@multHarl2 elseif (@selectHarlequinCurve == 9) ;T=atan(sqrt(theta^2)+exp(theta^2))|sinT+flip(cosT) radiusHarlequinSt1 = atan(sqrt(thetaHarlequinSt^2)+exp(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+flip(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 10) ;T=atan(sqrt(theta^2)+exp(theta^2))|sinT*flip(cosT) radiusHarlequinSt1 = atan(sqrt(thetaHarlequinSt^2)+exp(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*flip(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 11) ;T=atan(sqrt(theta^2)+exp(theta^2))|sinT+cosT radiusHarlequinSt1 = atan(sqrt(thetaHarlequinSt^2)+exp(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 12) ;T=atan(sqrt(theta^2)+exp(theta^2))|sinT*cosT radiusHarlequinSt1 = atan(sqrt(thetaHarlequinSt^2)+exp(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 13) ;T=atan(sin(theta)^2-cos(theta)^2)|sinT+cosT radiusHarlequinSt1 = atan(sin(thetaHarlequinSt)^2-cos(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 14) ;T=atan(sin(theta)^2-cos(theta)^2)|sinT*cosT radiusHarlequinSt1 = atan(sin(thetaHarlequinSt)^2-cos(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 15) ;T=atan(sin(theta)^2/cos(theta)^2)|sinT+cosT radiusHarlequinSt1 = atan(sin(thetaHarlequinSt)^2/cos(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 16) ;T=atan(sin(theta)^2/cos(theta)^2)|sinT*cosT radiusHarlequinSt1 = atan(sin(thetaHarlequinSt)^2/cos(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 17) ;T=atan(sinh(theta)^2*cosh(theta)^2)|sinT+cosT radiusHarlequinSt1 = atan(sinh(thetaHarlequinSt)^2*cosh(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 18) ;T=atan(sinh(theta)^2*cosh(theta)^2)|sinT*cosT radiusHarlequinSt1 = atan(sinh(thetaHarlequinSt)^2*cosh(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (sin(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(cos(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@selectHarlequinCurve == 19) ;T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T if (@paramOperatorBuildH1==0) if (@paramOperatorBuildH2==0) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt)^2+@fnh2(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@paramOperatorBuildH2==1) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt)^2+@fnh2(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) endif elseif (@paramOperatorBuildH1==1) if (@paramOperatorBuildH2==0) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt)^2*@fnh2(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@paramOperatorBuildH2==1) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt)^2*@fnh2(thetaHarlequinSt)^2)*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) endif endif elseif (@selectHarlequinCurve == 20) ;T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T if (@paramOperatorBuildH1==0) if (@paramOperatorBuildH2==0) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt^2)+@fnh2(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@paramOperatorBuildH2==1) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt^2)+@fnh2(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) endif elseif (@paramOperatorBuildH1==1) if (@paramOperatorBuildH2==0) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt^2)*@fnh2(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))+(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) elseif (@paramOperatorBuildH2==1) radiusHarlequinSt1 = atan(@fnh1(thetaHarlequinSt^2)*@fnh2(thetaHarlequinSt^2))*@multHarl2 radiusHarlequinSt2 = (@fnh3(@fnHarl1(radiusHarlequinSt1+@HarlSeed1))*(@fnh4(@fnHarl2(radiusHarlequinSt1+@HarlSeed2)))+@HarlSeed3)*@multHarl1 radiusHarlequinSt2 = @fnAngleHarl1(@fnAngleHarl2(radiusHarlequinSt2)*@HarlequinAngle1) endif endif endif ;---------------------------DEFINE FINAL RADIUS HARLEQUIN----------------------- radiusHarlequinSt3 = @fnRadiusHarlequin(radiusHarlequinSt2-@harlSpread)*@startHarlequin if (@op_swirlRHarlequin == true) ; Add Swirl to Harlequin--------------- radiusHarlequinSt3 = radiusHarlequinSt2+(sin(6*cos(x^2+y^2)-@swirlHarlequin*thetaHarlequinSt)) endif ;------------------------------Polar Curves Set--------------------------------- if (@selectPolarCurve == 0) ;Arachnida radiusPolarSt = @arach*sin(2*@arach1*thetaPolarSt)/sin((2*@arach1-1)*thetaPolarSt) elseif (@selectPolarCurve == 1) ;Bifolium radiusPolarSt = 4*@bif1*sin(thetaPolarSt)^2*cos(thetaPolarSt)*@bif2 elseif (@selectPolarCurve == 2) ;Butterfly radiusPolarSt = @butt1*#e^sin(thetaPolarSt)-2*cos(4*thetaPolarSt*@butt2)+sin(1/36*(2*thetaPolarSt-#pi))^5 elseif (@selectPolarCurve == 3) ;Cannabis radiusPolarSt = @canna1*(1+(9/10)*cos(thetaPolarSt*8))*(1+(1/10)*cos(thetaPolarSt*24))*((9/10)+(1/10)*cos(thetaPolarSt*200))*(1+sin(thetaPolarSt))*@canna2 elseif (@selectPolarCurve == 4) ;Cardioid radiusPolarSt = @card1*(1-cos(thetaPolarSt)^@card2) elseif (@selectPolarCurve == 5) ;Circle radiusPolarSt = @circ1 elseif (@selectPolarCurve == 6) ;Cissoid Of Diocles radiusPolarSt = 2*@ciss1*sin(thetaPolarSt)*tan(thetaPolarSt*@ciss2) elseif (@selectPolarCurve == 7) ;Cochleoid radiusPolarSt = @cocho1*sin(thetaPolarSt)/(thetaPolarSt+@cocho2) elseif (@selectPolarCurve == 8) ;Conchoid of de Sluze radiusPolarSt = @conco1+1/cos(thetaPolarSt)+@conco2*cos(thetaPolarSt)*@conco3 elseif (@selectPolarCurve == 9) ;Conchoid Of Nicomedes radiusPolarSt = @conc1+@conc2*1/cos(thetaPolarSt) elseif (@selectPolarCurve == 10) ;Cote's Spiral radiusPolarSt = @cot1/cosh(@cot2*(thetaPolarSt)+@cot3) elseif (@selectPolarCurve == 11) ;Cranioid radiusPolarSt = @cran1*sin(thetaPolarSt)+@cran2*sqrt(1-@cran3*cos(thetaPolarSt)^2)+@cran4*sqrt(1-@cran5*cos(thetaPolarSt)^2) elseif (@selectPolarCurve == 12) ;Cycloid Of Ceva radiusPolarSt = @cev1*(1+2*cos(2*thetaPolarSt*@cev2)) elseif (@selectPolarCurve == 13) ;Eight Curve radiusPolarSt = @eight1^2*(1/cos(thetaPolarSt)*@eight2)^4*cos(2*thetaPolarSt)*@eight2 elseif (@selectPolarCurve == 14) ;Epispiral radiusPolarSt = @epi1*(1/cos(@epi2*thetaPolarSt)) elseif (@selectPolarCurve == 15) ;Folium Of Descartes radiusPolarSt = (3*@foli1*(1/cos(thetaPolarSt*@foli2)*tan(thetaPolarSt*@foli2)))/(1+tan(thetaPolarSt*@foli2)^3) elseif (@selectPolarCurve == 16) ;Heart Curve radiusPolarSt = 2-2*sin(thetaPolarSt)+@heart1+sin(thetaPolarSt)*@heart2*sqrt(|cos(thetaPolarSt)|)/(sin(thetaPolarSt)+1.4)^@heart3 elseif (@selectPolarCurve == 17) ;Hippopede radiusPolarSt = cabs(sqrt(4*@hippo1*(@hippo2-@hippo1*sin(thetaPolarSt)^2))) elseif (@selectPolarCurve == 18) ;Hyperbola radiusPolarSt = (@hyp1^2*@hyp2^2)/(@hyp2^2*cos(thetaPolarSt)^2-@hyp1^2*sin(thetaPolarSt)^2) elseif (@selectPolarCurve == 19) ;Kampyle of Eudoxus radiusPolarSt = @kamp1^2/(@kamp2*cos(thetaPolarSt)^2) elseif (@selectPolarCurve == 20) ;Kappa Curve radiusPolarSt = @kappa1*cotan(thetaPolarSt*@kappa2) elseif (@selectPolarCurve == 21) ;Lemniscate Of Bernoulli radiusPolarSt = @lemni1^2*cos(2*thetaPolarSt+@lemni2)^@lemni3 elseif (@selectPolarCurve == 22) ;Limacon Of Pascal radiusPolarSt = @lima1+2*@lima2*cos(thetaPolarSt) elseif (@selectPolarCurve == 23) ;Lituus radiusPolarSt = (@litu1^2)/(thetaPolarSt*@litu2) elseif (@selectPolarCurve == 24) ;Log Spiral radiusPolarSt = @log1*#e^(@log2*thetaPolarSt) elseif (@selectPolarCurve == 25) ;Maclaurin Curve radiusPolarSt = -(1+2*cos(2*thetaPolarSt)*@mac1)*(1/cos(thetaPolarSt)*@mac2) elseif (@selectPolarCurve == 26) ;Neoid radiusPolarSt = @neo1*thetaPolarSt+@neo2 elseif (@selectPolarCurve == 27) ;Ophiuride radiusPolarSt = (@ophi1*sin(thetaPolarSt)^@ophi3-(@ophi2*cos(thetaPolarSt)^@ophi4))*tan(thetaPolarSt)*@ophi5 elseif (@selectPolarCurve == 28) ;Parabolic radiusPolarSt = -(2*@parabolic1)/(1+cos(thetaPolarSt)*@parabolic2) elseif (@selectPolarCurve == 29) ;Quadratix Of Hippias radiusPolarSt = (2*@quad1*thetaPolarSt)/(#pi*sin(thetaPolarSt)*@quad2) elseif (@selectPolarCurve == 30) ;Quadrifolium radiusPolarSt = @quadr1*sin(2*thetaPolarSt)^@quadr2 elseif (@selectPolarCurve == 31) ;Rose radiusPolarSt = @rose1*cos(@rose2*thetaPolarSt) elseif (@selectPolarCurve == 32) ;Rose Of Troy radiusPolarSt = 1+@rost1*sin(@rost2*thetaPolarSt) elseif (@selectPolarCurve == 33) ;Scarabeus radiusPolarSt = @scar1*cos(2*thetaPolarSt)-@scar2*cos(thetaPolarSt) elseif (@selectPolarCurve == 34) ;Semicubical Parabola radiusPolarSt = @semi1*(tan(thetaPolarSt)^2*(1/cos(thetaPolarSt)))/@semi2 elseif (@selectPolarCurve == 35) ;Sextic Of Cayley radiusPolarSt = 4*@sext1*cos(thetaPolarSt/3*@sext2)^3 elseif (@selectPolarCurve == 36) ;Sinusoidal radiusPolarSt = @sinuso1^@sinuso2*cos(@sinuso2*thetaPolarSt)+@sinuso3 elseif (@selectPolarCurve == 37) ;Spiral Of Archimedes radiusPolarSt = @arch1*(thetaPolarSt^1/@arch2) elseif (@selectPolarCurve == 38) ;Strophoid radiusPolarSt = @stroph1*sin(@stroph2-2*thetaPolarSt)/cos(@stroph2-thetaPolarSt) elseif (@selectPolarCurve == 39) ;Trifolium radiusPolarSt = -@trif1*cos(3*thetaPolarSt)*@trif2 endif float radiusPolar = (radiusPolarSt+@addPolar)*@startPolar if (@op_swirlRPolar == true) ; Add Swirl to Polar Curves------------ float radiusPolar = radiusPolarSt+(sin(6*cos(x^2+y^2)-@swirlPolar*thetaPolarSt)) endif ;------------------------Mixed radius------------------------------------------- if (@opMixRadius == 0) radiusFinal = radiusHarlequinSt3 elseif (@opMixRadius == 1) radiusFinal = @radiusHarlequin2*(radiusHarlequinSt3+@radiusHarlequin1) + (radiusPolar+@radiusPolar1)*@radiusPolar2 elseif (@opMixRadius == 2) radiusFinal = @radiusHarlequin2*(radiusHarlequinSt3+@radiusHarlequin1) - (radiusPolar+@radiusPolar1)*@radiusPolar2 elseif (@opMixRadius == 3) radiusFinal = @radiusHarlequin2*(radiusHarlequinSt3+@radiusHarlequin1) * (radiusPolar+@radiusPolar1)*@radiusPolar2 elseif (@opMixRadius == 4) radiusFinal = @radiusHarlequin2*(radiusHarlequinSt3+@radiusHarlequin1) / (radiusPolar+@radiusPolar1)*@radiusPolar2 elseif (@opMixRadius == 5) radiusFinal = @radiusHarlequin2*(radiusHarlequinSt3+@radiusHarlequin1) ^ (radiusPolar+@radiusPolar1)*@radiusPolar2 elseif (@opMixRadius == 6) radiusFinal = @radiusPolar2*(radiusPolar+@radiusPolar1) ^ (radiusHarlequinSt3+@radiusHarlequin1)*@radiusHarlequin2 endif ;----------Defines Final trapped Point Of Polar Curves and Advanced mode-------- if (@AdvancedMode == false) ;---------Normal Mode, normal Polar Curve---- FinalPointX = radiusPolar*@fnPointPolar1(thetaPolarSt) FinalPointY = radiusPolar*@fnPointPolar2(thetaPolarSt) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY)) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY)) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY)) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY)) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY)) endif else ;-----------------------------Advanced Mode------------------------ ;-----------------------------Define a new coordinate method-------------------- if (@opPhi == 0) float phi = atan(sqrt(x^2+y^2)*@multPhi) elseif (@opPhi == 1) float phi = atan(sqrt(x^2+y^2+2*y*x)*@multPhi) elseif (@opPhi == 2) float phi = atan(sqrt(x^2*y^2)*@multPhi) elseif (@opPhi == 3) float phi = atan(sqrt(x^2/y^2)*@multPhi) elseif (@opPhi == 4) float phi = atan(sqrt(x^2^y^2)*@multPhi) elseif (@opPhi == 5) float phi = atan(sqr(x*y)*@multPhi) elseif (@opPhi == 6) float phi = atan(sqr(x+y)*@multPhi) elseif (@opPhi == 7) float phi = atan(sqr(x-y)*@multPhi) elseif (@opPhi == 8) float phi = atan(log(x^2+y^2)*@multPhi) elseif (@opPhi == 9) float phi = atan(log(x^2*y^2)*@multPhi) elseif (@opPhi == 10) float phi = atan(log(x^2-y^2)*@multPhi) elseif (@opPhi == 11) float phi = atan(sin(x^2+y^2)*@multPhi) elseif (@opPhi == 12) float phi = atan(sin(x^2*y^2)*@multPhi) elseif (@opPhi == 13) float phi = atan(cos(x^2+y^2)*@multPhi) elseif (@opPhi == 14) float phi = atan(cos(x^2*y^2)*@multPhi) elseif (@opPhi == 15) float phi = atan(sin(x^2)*cos(y^2)*@multPhi) elseif (@opPhi == 16) float phi = atan(exp(x^2+y^2)*@multPhi) elseif (@opPhi == 17) float phi = atan(exp(x^2*y^2)*@multPhi) elseif (@opPhi == 18) float phi = atan(exp(x^2-y^2)*@multPhi) elseif (@opPhi == 19) float phi = atan(abs(x^2+y^2)*@multPhi) endif if (@coordMethodX == 0) FinalPointX = radiusPolar*@fnPhi(phi)+@fnAdvThetaX(thetaPolarSt) elseif (@coordMethodX == 1) FinalPointX = radiusPolar*@fnPhi(phi)-@fnAdvThetaX(thetaPolarSt) elseif (@coordMethodX == 2) FinalPointX = radiusPolar*@fnPhi(phi)*@fnAdvThetaX(thetaPolarSt) elseif (@coordMethodX == 3) FinalPointX = radiusPolar*@fnPhi(phi)/@fnAdvThetaX(thetaPolarSt) elseif (@coordMethodX == 4) FinalPointX = radiusPolar*@fnPhi(phi)^@fnAdvThetaX(thetaPolarSt) endif if (@coordMethodY == 0) FinalPointY = radiusPolar*@fnPhi(phi)+@fnAdvThetaY(thetaPolarSt) elseif (@coordMethodY == 1) FinalPointY = radiusPolar*@fnPhi(phi)-@fnAdvThetaY(thetaPolarSt) elseif (@coordMethodY == 2) FinalPointY = radiusPolar*@fnPhi(phi)*@fnAdvThetaY(thetaPolarSt) elseif (@coordMethodY == 3) FinalPointY = radiusPolar*@fnPhi(phi)/@fnAdvThetaY(thetaPolarSt) elseif (@coordMethodY == 4) FinalPointY = radiusPolar*@fnPhi(phi)^@fnAdvThetaY(thetaPolar1) endif FinalPointZ = radiusPolar*cos(phi) ;------------------------------Mix singles points------------------------------- if (@mixFinalPointZ == 0) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY))+@finalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY))+@finalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY))+@finalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY))+@finalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY))+@finalPointZ(FinalPointZ-@addFinalZ) endif elseif (@mixFinalPointZ == 1) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY))-@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY))-@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY))-@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY))-@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY))-@FinalPointZ(FinalPointZ-@addFinalZ) endif elseif (@mixFinalPointZ == 2) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY))*@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY))*@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY))*@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY))*@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY))*@FinalPointZ(FinalPointZ-@addFinalZ) endif elseif (@mixFinalPointZ == 3) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY))/@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY))/@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY))/@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY))/@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY))/@FinalPointZ(FinalPointZ-@addFinalZ) endif elseif (@mixFinalPointZ == 4) if (@SelectOpFinalPoint == 0) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)+@finalPointY(flip(FinalPointY-@spreadY))^@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 1) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)-@finalPointY(flip(FinalPointY-@spreadY))^@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 2) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)*@finalPointY(flip(FinalPointY-@spreadY))^@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 3) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)/@finalPointY(flip(FinalPointY-@spreadY))^@FinalPointZ(FinalPointZ-@addFinalZ) elseif (@SelectOpFinalPoint == 4) trapPolarPoint = @finalPointX(FinalPointX-@spreadX)^@finalPointY(flip(FinalPointY-@spreadY))^@FinalPointZ(FinalPointZ-@addFinalZ) endif endif endif ;----------------------------Final Distance------------------------------------- radiusHarlequin = (@fnFinalH(radiusFinal+@finHarl1)*@finHarl2)^@finHarl3 polarPoint = (@fnFinalPolar(trapPolarPoint+@finPol1)*@finPol2)^@finPol3 float radius_dist = abs(cabs(z1 - radiusHarlequin) - radiusPolar - @spread) float point_dist = cabs(z1 - radiusHarlequin + polarPoint - @spread) ;----------------------------Transfer Functions--------------------------------- float point_dist = point_dist*@presc if (@var_d == 0) float point_dist = point_dist elseif (@var_d == 1) float point_dist = log(point_dist) elseif (@var_d == 2) float point_dist = point_dist^(1/3) elseif (@var_d == 3) float point_dist = sqr(point_dist) elseif (@var_d == 4) float point_dist = sqrt(point_dist) elseif (@var_d == 5) float point_dist = point_dist^3 elseif (@var_d == 6) float point_dist = sin(point_dist) elseif (@var_d == 7) float point_dist = cos(point_dist) elseif (@var_d == 8) float point_dist = exp(point_dist) elseif (@var_d == 9) float point_dist = atan(point_dist) endif float point_dist = point_dist*@postsc ;-------------------------------Trap Mode(Mark Townsend Method)----------------- if @mode == 0 ; Closest if (iter >= @skip && iter < max_iter) \ && radius_dist < min_dist min_dist = radius_dist+@edge distance = radius_dist o_distance = point_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 1 ; First near if (iter >= @skip && iter < max_iter) \ && !trapped && radius_dist < @width trapped = true distance = radius_dist o_distance = point_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 2 ; Last near if (iter >= @skip && iter < max_iter) \ && radius_dist < @width trapped = true distance = radius_dist o_distance = point_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 3 ; First within if (iter >= @skip && iter < max_iter) \ && !trapped && cabs(z1) < |radiusHarlequin| + radiusPolar trapped = true distance = radius_dist o_distance = point_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 4 ; Last within if (iter >= @skip && iter < max_iter) \ && cabs(z1) < |radiusHarlequin| + radiusPolar trapped = true distance = radius_dist o_distance = point_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 5 ; Closest point if (iter >= @skip && iter < max_iter) \ && point_dist < min_dist min_dist = point_dist+@edge distance = point_dist o_distance = radius_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 6 ; First point if (iter >= @skip && iter < max_iter) \ && !trapped && point_dist < @width trapped = true distance = point_dist o_distance = radius_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif elseif @mode == 7 ; Last point if (iter >= @skip && iter < max_iter) \ && point_dist < @width trapped = true distance = point_dist o_distance = radius_dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = radiusHarlequin + polarPoint endif endif ;----------------Progressive Morph---------------------------------------------- if @linear=="Linear" if @incTwr tw = tw + @twistrDegree endif if @incTwi tw = tw + @twistiDegree*(0,1) endif if @incTw2r tw2 = tw2 + @twist2rDegree endif if @incTw2i tw2 = tw2 + @twist2iDegree*(0,1) endif if @incTw3r tw3 = tw3 + @twist3rDegree endif if @incTw3i tw3 = tw3 + @twist3iDegree*(0,1) endif if @incTw4r tw4 = tw4 + @twist4rDegree endif if @incTw4i tw4 = tw4 + @twist4iDegree*(0,1) endif if @incTw5r tw5 = tw5 + @twist5rDegree endif if @incTw5i tw5 = tw5 + @twist5iDegree*(0,1) endif if @incTw6r tw6 = tw6 + @twist6rDegree endif if @incTw6i tw6 = tw6 + @twist6iDegree*(0,1) endif if @incExp1r exp1 = exp1 + @exp1rDegree endif if @incExp1i exp1 = exp1 + @exp1iDegree*(0,1) endif if @incExp2r exp2 = exp2 + @exp2rDegree endif if @incExp2i exp2 = exp2 + @exp2iDegree*(0,1) endif if @incExp3r exp3 = exp3 + @exp3rDegree endif if @incExp3i exp3 = exp3 + @exp3iDegree*(0,1) endif if @incExp4r exp4 = exp4 + @exp4rDegree endif if @incExp4i exp4 = exp4 + @exp4iDegree*(0,1) endif if @incExp5r exp5 = exp5 + @exp5rDegree endif if @incExp5i exp5 = exp5 + @exp5iDegree*(0,1) endif if @incExp6r exp6 = exp6 + @exp6rDegree endif if @incExp6i exp6 = exp6 + @exp6iDegree*(0,1) endif elseif @linear=="Non-Linear 1" if @incTwr tw = tw + @twistrDegree /(@twistrDegree-@speed) endif if @incTwi tw = tw + @twistiDegree /(@twistiDegree-@speed)*(0,1) endif if @incTw2r tw2 = tw2 + @twist2rDegree /(@twist2rDegree-@speed) endif if @incTw2i tw2 = tw2 + @twist2iDegree/(@twist2iDegree-@speed)*(0,1) endif if @incTw3r tw3 = tw3 + @twist3rDegree /(@twist3rDegree-@speed) endif if @incTw3i tw3 = tw3 + @twist3iDegree /(@twist3iDegree-@speed)*(0,1) endif if @incTw4r tw4 = tw4 + @twist4rDegree /(@twist4rDegree-@speed) endif if @incTw4i tw4 = tw4 + @twist4iDegree /(@twist4iDegree-@speed)*(0,1) endif if @incTw5r tw5 = tw5 + @twist5rDegree /(@twist5rDegree-@speed) endif if @incTw5i tw5 = tw5 + @twist5iDegree/(@twist5iDegree-@speed)*(0,1) endif if @incTw6r tw6 = tw6 + @twist6rDegree /(@twist6rDegree-@speed) endif if @incTw6i tw6 = tw6 + @twist6iDegree /(@twist6iDegree-@speed)*(0,1) endif if @incExp1r exp1 = exp1 + @exp1rDegree /(@exp1rDegree-@speed) endif if @incExp1i exp1 = exp1 + @exp1iDegree/(@exp1iDegree-@speed)*(0,1) endif if @incExp2r exp2 = exp2 + @exp2rDegree /(@exp2rDegree-@speed) endif if @incExp2i exp2 = exp2 + @exp2iDegree /(@exp2iDegree-@speed)*(0,1) endif if @incExp3r exp3 = exp3 + @exp3rDegree /(@exp3rDegree-@speed) endif if @incExp3i exp3 = exp3 + @exp3iDegree /(@exp3iDegree-@speed)*(0,1) endif if @incExp4r exp4 = exp4 + @exp4rDegree /(@exp4rDegree-@speed) endif if @incExp4i exp4 = exp4 + @exp4iDegree /(@exp4iDegree-@speed)*(0,1) endif if @incExp5r exp5 = exp5 + @exp5rDegree /(@exp5rDegree-@speed) endif if @incExp5i exp5 = exp5 + @exp5iDegree /(@exp5iDegree-@speed)*(0,1) endif if @incExp6r exp6 = exp6 + @exp6rDegree /(@exp6rDegree-@speed) endif if @incExp6i exp6 = exp6 + @exp6iDegree/(@exp6iDegree-@speed)*(0,1) endif elseif @linear=="Non-Linear 2" if @incTwr tw = tw + @twistrDegree /(@twistrDegree-1i*pi*@speed) endif if @incTwi tw = tw + @twistiDegree /(@twistiDegree-1i*pi*@speed)*(0,1) endif if @incTw2r tw2 = tw2 + @twist2rDegree /(@twist2rDegree-1i*pi*@speed) endif if @incTw2i tw2 = tw2 + @twist2iDegree/(@twist2iDegree-1i*pi*@speed)*(0,1) endif if @incTw3r tw3 = tw3 + @twist3rDegree /(@twist3rDegree-1i*pi*@speed) endif if @incTw3i tw3 = tw3 + @twist3iDegree /(@twist3iDegree-1i*pi*@speed)*(0,1) endif if @incTw4r tw4 = tw4 + @twist4rDegree /(@twist4rDegree-1i*pi*@speed) endif if @incTw4i tw4 = tw4 + @twist4iDegree /(@twist4iDegree-1i*pi*@speed)*(0,1) endif if @incTw5r tw5 = tw5 + @twist5rDegree /(@twist5rDegree-1i*pi*@speed) endif if @incTw5i tw5 = tw5 + @twist5iDegree/(@twist5iDegree-1i*pi*@speed)*(0,1) endif if @incTw6r tw6 = tw6 + @twist6rDegree /(@twist6rDegree-1i*pi*@speed) endif if @incTw6i tw6 = tw6 + @twist6iDegree /(@twist6iDegree-1i*pi*@speed)*(0,1) endif if @incExp1r exp1 = exp1 + @exp1rDegree /(@exp1rDegree-1i*pi*@speed) endif if @incExp1i exp1 = exp1 + @exp1iDegree/(@exp1iDegree-1i*pi*@speed)*(0,1) endif if @incExp2r exp2 = exp2 + @exp2rDegree /(@exp2rDegree-1i*pi*@speed) endif if @incExp2i exp2 = exp2 + @exp2iDegree /(@exp2iDegree-1i*pi*@speed)*(0,1) endif if @incExp3r exp3 = exp3 + @exp3rDegree /(@exp3rDegree-1i*pi*@speed) endif if @incExp3i exp3 = exp3 + @exp3iDegree /(@exp3iDegree-1i*pi*@speed)*(0,1) endif if @incExp4r exp4 = exp4 + @exp4rDegree /(@exp4rDegree-1i*pi*@speed) endif if @incExp4i exp4 = exp4 + @exp4iDegree /(@exp4iDegree-1i*pi*@speed)*(0,1) endif if @incExp5r exp5 = exp5 + @exp5rDegree /(@exp5rDegree-1i*pi*@speed) endif if @incExp5i exp5 = exp5 + @exp5iDegree /(@exp5iDegree-1i*pi*@speed)*(0,1) endif if @incExp6r exp6 = exp6 + @exp6rDegree /(@exp6rDegree-1i*pi*@speed) endif if @incExp6i exp6 = exp6 + @exp6iDegree/(@exp6iDegree-1i*pi*@speed)*(0,1) endif elseif @linear=="Non-Linear 3" if @incTwr tw = tw + @twistrDegree /(@twistrDegree-pi*@speed) endif if @incTwi tw = tw + @twistiDegree /(@twistiDegree-pi*@speed)*(0,1) endif if @incTw2r tw2 = tw2 + @twist2rDegree /(@twist2rDegree-pi*@speed) endif if @incTw2i tw2 = tw2 + @twist2iDegree/(@twist2iDegree-pi*@speed)*(0,1) endif if @incTw3r tw3 = tw3 + @twist3rDegree /(@twist3rDegree-pi*@speed) endif if @incTw3i tw3 = tw3 + @twist3iDegree /(@twist3iDegree-pi*@speed)*(0,1) endif if @incTw4r tw4 = tw4 + @twist4rDegree /(@twist4rDegree-pi*@speed) endif if @incTw4i tw4 = tw4 + @twist4iDegree /(@twist4iDegree-pi*@speed)*(0,1) endif if @incTw5r tw5 = tw5 + @twist5rDegree /(@twist5rDegree-pi*@speed) endif if @incTw5i tw5 = tw5 + @twist5iDegree/(@twist5iDegree-pi*@speed)*(0,1) endif if @incTw6r tw6 = tw6 + @twist6rDegree /(@twist6rDegree-pi*@speed) endif if @incTw6i tw6 = tw6 + @twist6iDegree /(@twist6iDegree-pi*@speed)*(0,1) endif if @incExp1r exp1 = exp1 + @exp1rDegree /(@exp1rDegree-pi*@speed) endif if @incExp1i exp1 = exp1 + @exp1iDegree/(@exp1iDegree-pi*@speed)*(0,1) endif if @incExp2r exp2 = exp2 + @exp2rDegree /(@exp2rDegree-pi*@speed) endif if @incExp2i exp2 = exp2 + @exp2iDegree /(@exp2iDegree-pi*@speed)*(0,1) endif if @incExp3r exp3 = exp3 + @exp3rDegree /(@exp3rDegree-pi*@speed) endif if @incExp3i exp3 = exp3 + @exp3iDegree /(@exp3iDegree-pi*@speed)*(0,1) endif if @incExp4r exp4 = exp4 + @exp4rDegree /(@exp4rDegree-pi*@speed) endif if @incExp4i exp4 = exp4 + @exp4iDegree /(@exp4iDegree-pi*@speed)*(0,1) endif if @incExp5r exp5 = exp5 + @exp5rDegree /(@exp5rDegree-pi*@speed) endif if @incExp5i exp5 = exp5 + @exp5iDegree /(@exp5iDegree-pi*@speed)*(0,1) endif if @incExp6r exp6 = exp6 + @exp6rDegree /(@exp6rDegree-pi*@speed) endif if @incExp6i exp6 = exp6 + @exp6iDegree/(@exp6iDegree-pi*@speed)*(0,1) endif endif Final: ;---------------------Textures-------------------------------------------------- if tx > 0 if @ztyp=="#z" tz = ((#z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Morph z" tz = ((z1-@txia1)*@txib1)^@txic1 elseif @ztyp=="Trap z" tz = ((trap_z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Trap #z" tz = ((trap2_z-@txia1)*@txib1)^@txic1 elseif @ztyp=="Dist" tz = ((point_dist-@txia1)*@txib1)^@txic1 endif if @tt==0 tz = @fntx2(@fntx1(tz))^@exad1 elseif @tt==1 tz = @fntx1(real(tz))^@exad1+@fntx2(imag(tz))^@exad2 elseif @tt==2 tz = @fntx1(real(tz))^@exad1-@fntx2(imag(tz))^@exad2 elseif @tt==3 tz = @fntx1(real(tz))^@exad1*@fntx2(imag(tz))^@exad2 elseif @tt==4 tz = @fntx1(imag(tz))^@exad1-@fntx2(real(tz))^@exad2 elseif @tt==5 tz = @fntx2(@fntx1(x))^@exad1 elseif @tt==6 tz = @fntx2(@fntx1(y))^@exad1 elseif @tt==7 tz = @fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @tt==8 tz = @fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @tt==9 tz = @fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @tt==10 tz = @fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @tt==11 tz = @fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @tt==12 tz = @fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @tt==13 tz = @fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @tt==14 tz = @fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @tt==15 tz = @fntx1(x)^@exad1+@fntx2(tz)^@exad2 elseif @tt==16 tz = @fntx1(x)^@exad1-@fntx2(tz)^@exad2 elseif @tt==17 tz = @fntx2(tz)^@exad2-@fntx1(x)^@exad1 elseif @tt==18 tz = @fntx1(x)^@exad1*@fntx2(tz)^@exad2 elseif @tt==19 tz = @fntx1(x)^@exad1/@fntx2(tz)^@exad2 elseif @tt==20 tz = @fntx2(tz)^@exad2/@fntx1(x)^@exad1 elseif @tt==21 tz = @fntx1(y)^@exad1+@fntx2(tz)^@exad2 elseif @tt==22 tz = @fntx1(y)^@exad1-@fntx2(tz)^@exad2 elseif @tt==23 tz = @fntx2(tz)^@exad2-@fntx1(y)^@exad1 elseif @tt==24 tz = @fntx1(y)^@exad1*@fntx2(tz)^@exad2 elseif @tt==25 tz = @fntx1(y)^@exad1/@fntx2(tz)^@exad2 elseif @tt==26 tz = @fntx2(tz)^@exad2/@fntx1(y)^@exad1 endif float zr = real(tz)%(@tv/10)/@ts*10 float zi = imag(tz)%(@tv/10)/@ts*10 float rz = floor(zr) float iz = floor(zi) if @tc > 0 float a1 = (rz + iz - 2)/ct float a2 = (rz + iz + 2)/ct else float a1 = (rz + iz - 2)%ct float a2 = (rz + iz + 2)%ct endif float a3 = a1 float a4 = a2 i = 0 float ez = 0 float h = 1 repeat h = h / 2 float fr = rz + h float fi = iz + h float za = (a1 + a2 + a3 + a4) / 4 ez = ez + za if (zr > fr) rz = fr if (zi > fi) iz = fi a1 = ez else a2 = ez endif else if (zi > fi) iz = fi a3 = ez else a4 = ez endif endif it = it + 1 until it >= 20 endif t2 = abs((za-real(@fntx3(za)))) if @add_sgn==false t2 = (za-real(@fntx3(za))) endif ;------------------------------------------------------------------------------- ;Random complex hasard = #random texture_rnd = 10 * @rnd2 * (real(hasard)+ imag(hasard)) ; fBm if (@fbmtxt != 0) r1 = (0,1) ^ (@fbmangle / 90.0) r2 = (0,1) ^ (@fbmastep / 90.0) if @ztyp4=="#z" tz = ((#z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Morph z" tz = ((z1-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Trap z" tz = ((trap_z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Trap #z" tz = ((trap2_z-@txia4)*@txib4)^@txic4 elseif @ztyp4=="Dist" tz = ((point_dist-@txia4)*@txib4)^@txic4 endif if @fbminit==0 pfb = (@fntx9(@fntx8(tz))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==1 pfb = (@fntx8(real(tz))^@exad8+@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==2 pfb = (@fntx8(real(tz))^@exad8-@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==3 pfb = (@fntx8(real(tz))^@exad8*@fntx9(imag(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==4 pfb = (@fntx8(imag(tz))^@exad8-@fntx9(real(tz))^@exad9)* @fbmscale *r1 + \ @fbmoffset elseif @fbminit==5 pfb = (@fntx9(@fntx8(x))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==6 pfb = (@fntx9(@fntx8(y))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==7 pfb = (@fntx8(x)^@exad8+@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==8 pfb = (@fntx8(x)^@exad8-@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==9 pfb = (@fntx9(y)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==10 pfb = (@fntx8(x)^@exad8*@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==11 pfb = (@fntx8(x)^@exad8/@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==12 pfb = (@fntx9(y)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==13 pfb = (@fntx8(x)^@exad8^@fntx9(y)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit==14 pfb = (@fntx9(y)^@exad9^@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit==15 pfb = (@fntx8(x)^@exad8+@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==16 pfb = (@fntx8(x)^@exad8-@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==17 pfb = (@fntx9(tz)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==18 pfb = (@fntx8(x)^@exad8*@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==19 pfb = (@fntx8(x)^@exad8/@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==20 pfb = (@fntx9(tz)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==21 pfb = (@fntx8(y)^@exad8+@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==22 pfb = (@fntx8(y)^@exad8-@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==23 pfb = (@fntx9(tz)^@exad9-@fntx8(y)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==24 pfb = (@fntx8(y)^@exad8*@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==25 pfb = (@fntx8(y)^@exad8/@fntx9(tz)^@exad9)* @fbmscale * r1 +@fbmoffset elseif @fbminit==26 pfb = (@fntx9(tz)^@exad9/@fntx8(y)^@exad8)* @fbmscale * r1 +@fbmoffset elseif @fbminit==27 pfb = (@fntx9(@fntx8(pixel))^@exad8)* @fbmscale * r1 + @fbmoffset endif float summ = 0.0 float freq = 1.0 int i = @fbmoct while (i > 0) ; determine integer coordinate for corners of square ; surrounding p float bx0 = real(@fbmrfn2(@fbmrfn1(pfb))) % 256 float by0 = imag(@fbmifn2(@fbmifn1(pfb))) % 256 if (bx0 < 0) bx0 = bx0 + 256 endif if (by0 < 0) by0 = by0 + 256 endif float bx1 = (bx0 + @hc) % 256 float by1 = (by0 + @hd) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @ha float ry1 = ry0 - @hb float b00 = (bx0^@fbmpower % 65536 + by0)^@fbmpower % 65536 float b10 = (bx1^@fbmpower % 65536 + by0)^@fbmpower % 65536 float b01 = (bx0^@fbmpower % 65536 + by1)^@fbmpower % 65536 float b11 = (bx1^@fbmpower % 65536 + by1)^@fbmpower % 65536 float g_b00_0 = (b00)^@fbmpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@fbmpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@fbmpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@fbmpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@fbmpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@fbmpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@fbmpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@fbmpower*0.25 % 512 - 256 float ddd = 0.0; ddd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0=g_b00_0 * ddd g_b00_1=g_b00_1 * ddd ddd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * ddd g_b10_1 = g_b10_1 * ddd ddd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * ddd g_b01_1 = g_b01_1 * ddd ddd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * ddd g_b11_1 = g_b11_1 * ddd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float aaa = u1 + sx*(v1-u1) float b = u2 + sx*(v2-u2) summ = summ + (aaa + sy*(b-aaa))*freq freq = freq * @fbmstep pfb = pfb * r2 / @fbmstep i = i - 1 endwhile texture_fbm=10 * @fbmtxt * summ endif if @fbm_limit !=0 texture_fbm = texture_fbm % @fbm_limit endif if @fbm_sgn == true texture_fbm = abs(texture_fbm) endif ;------------------------------------------------------------------------------- ;decimal if @dectxt > 0 if @ztyp2 == "#z" tz = ((#z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Morph z" tz = ((z1-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Trap z" tz = ((trap_z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Trap #z" tz = ((trap2_z-@txia2)*@txib2)^@txic2 elseif @ztyp2=="Dist" tz = ((point_dist-@txia2)*@txib2)^@txic2 endif if @dec_init==0 pd = real(@fntx5(@fntx4(tz))^@exad4) elseif @dec_init==1 pd = real(@fntx4(real(tz))^@exad4+@fntx5(imag(tz))^@exad5) elseif @dec_init==2 pd = real(@fntx4(real(tz))^@exad4-@fntx5(imag(tz))^@exad5) elseif @dec_init==3 pd = real(@fntx4(real(tz))^@exad4*@fntx5(imag(tz))^@exad5) elseif @dec_init==4 pd = real(@fntx4(imag(tz))^@exad4-@fntx5(real(tz))^@exad5) elseif @dec_init==5 pd = real(@fntx5(@fntx4(x))^@exad4) elseif @dec_init==6 pd = real(@fntx5(@fntx4(y))^@exad4) elseif @dec_init==7 pd = real(@fntx4(x)^@exad4+@fntx5(y)^@exad5) elseif @dec_init==8 pd = real(@fntx4(x)^@exad4-@fntx5(y)^@exad5) elseif @dec_init==9 pd = real(@fntx5(y)^@exad4-@fntx4(x)^@exad5) elseif @dec_init==10 pd = real(@fntx4(x)^@exad4*@fntx5(y)^@exad5) elseif @dec_init==11 pd = real(@fntx4(x)^@exad4/@fntx5(y)^@exad5) elseif @dec_init==12 pd = real(@fntx5(y)^@exad4/@fntx4(x)^@exad5) elseif @dec_init==13 pd = real(@fntx4(x)^@exad4^@fntx5(y)^@exad5) elseif @dec_init==14 pd = real(@fntx5(y)^@exad4^@fntx4(x)^@exad5) elseif @dec_init==15 pd = real(@fntx4(x)^@exad4+@fntx5(tz)^@exad5) elseif @dec_init==16 pd = real(@fntx4(x)^@exad4-@fntx5(tz)^@exad5) elseif @dec_init==17 pd = real(@fntx5(tz)^@exad4-@fntx4(x)^@exad5) elseif @dec_init==18 pd = real(@fntx4(x)^@exad4*@fntx5(tz)^@exad5) elseif @dec_init==19 pd = real(@fntx4(x)^@exad4/@fntx5(tz)^@exad5) elseif @dec_init==20 pd = real(@fntx5(tz)^@exad4/@fntx4(x)^@exad5) elseif @dec_init==21 pd = real(@fntx4(y)^@exad4+@fntx5(tz)^@exad5) elseif @dec_init==22 pd = real(@fntx4(y)^@exad4-@fntx5(tz)^@exad5) elseif @dec_init==23 pd = real(@fntx5(tz)^@exad4-@fntx4(y)^@exad5) elseif @dec_init==24 pd = real(@fntx4(y)^@exad4*@fntx5(tz)^@exad5) elseif @dec_init==25 pd = real(@fntx4(y)^@exad4/@fntx5(tz)^@exad5) elseif @dec_init==26 pd = real(@fntx5(tz)^@exad4/@fntx4(y)^@exad5) endif if @dec_type==0 pd = pd-ceil(pd*@dec_scale)/@dec_scale elseif @dec_type==1 pd = pd-floor(pd*@dec_scale)/@dec_scale elseif @dec_type==2 pd = pd-trunc(pd*@dec_scale)/@dec_scale elseif @dec_type==3 pd = pd-round(pd*@dec_scale)/@dec_scale elseif @dec_type==4 pd = pd-real(@fndec(pd*@dec_scale))/@dec_scale elseif @dec_type==5 pd = pd-round(pd*@dec_scale)/@dec_scale-ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==6 pd = pd-round(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==7 pd = pd+round(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==8 pd = pd-round(pd*@dec_scale)/@dec_scale-trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==9 pd = pd-round(pd*@dec_scale)/@dec_scale*trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==10 pd = pd+round(pd*@dec_scale)/@dec_scale*trunc(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==11 pd = pd-trunc(pd*@dec_scale)/@dec_scale-floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==12 pd = pd-trunc(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==13 pd = pd+trunc(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==14 pd = pd-trunc(pd*@dec_scale)/@dec_scale-ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==15 pd = pd-trunc(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==16 pd = pd+trunc(pd*@dec_scale)/@dec_scale*ceil(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==17 pd = pd-ceil(pd*@dec_scale)/@dec_scale-floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==18 pd = pd-ceil(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale2)/@dec_scale2 elseif @dec_type==19 pd = pd+ceil(pd*@dec_scale)/@dec_scale*floor(pd*@dec_scale)/@dec_scale2 endif if @dec_size != 0 pd = pd/@dec_size endif texture_dec = @dectxt*pd if @dec_limit != 0 texture_dec = texture_dec%@dec_limit endif if @dec_sgn == true texture_dec = abs(texture_dec) endif endif texture_dec = 10 * texture_dec * @decamt ;------------------------------------------------------------------------------- ;Popgnarl if (@gnarl_amt != 0) if @ztyp3 == "#z" tz = ((#z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Morph z" tz = ((z1-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Trap z" tz = ((trap_z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Trap #z" tz = ((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp3=="Dist" tz = ((point_dist-@txia3)*@txib3)^@txic3 endif if @gnarl_init==0 p = @fntx7(@fntx6(tz))^@exad6 elseif @gnarl_init==1 p = @fntx6(real(tz))^@exad6+@fntx7(imag(tz))^@exad7 elseif @gnarl_init==2 p = @fntx6(real(tz))^@exad6-@fntx7(imag(tz))^@exad7 elseif @gnarl_init==3 p = @fntx6(real(tz))^@exad6*@fntx7(imag(tz))^@exad7 elseif @gnarl_init==4 p = @fntx6(imag(tz))^@exad6-@fntx7(real(tz))^@exad7 elseif @gnarl_init==5 p = @fntx7(@fntx6(x))^@exad6 elseif @gnarl_init==6 p = @fntx7(@fntx6(y))^@exad6 elseif @gnarl_init==7 p = @fntx6(x)^@exad6+@fntx7(y)^@exad7 elseif @gnarl_init==8 p = @fntx6(x)^@exad6-@fntx7(y)^@exad7 elseif @gnarl_init==9 p = @fntx7(y)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init==10 p = @fntx6(x)^@exad6*@fntx7(y)^@exad7 elseif @gnarl_init==11 p = @fntx6(x)^@exad6/@fntx7(y)^@exad7 elseif @gnarl_init==12 p = @fntx7(y)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init==13 p = @fntx6(x)^@exad6^@fntx7(y)^@exad7 elseif @gnarl_init==14 p = @fntx7(y)^@exad6^@fntx6(x)^@exad7 elseif @gnarl_init==15 p = @fntx6(x)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init==16 p = @fntx6(x)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init==17 p = @fntx7(tz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init==18 p = @fntx6(x)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init==19 p = @fntx6(x)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init==20 p = @fntx7(tz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init==21 p = @fntx6(y)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init==22 p = @fntx6(y)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init==23 p = @fntx7(tz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init==24 p = @fntx6(y)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init==25 p = @fntx6(y)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init==26 p = @fntx7(tz)^@exad6/@fntx6(y)^@exad7 elseif @gnarl_init==27 p = @fntx7(@fntx6(pixel))^@exad6 endif if @gnarl_scaling==0 p = p-ceil(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==1 p = p-floor(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==2 p = p-trunc(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==3 p = p-round(p*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling==4 p = p-real(@fngnarl(p*@gnarl_scale))/@gnarl_scale elseif @gnarl_scaling==5 p = p-round(p*@gnarl_scale)/@gnarl_scale-ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==6 p = p-round(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==7 p = p+round(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==8 p = p-round(p*@gnarl_scale)/@gnarl_scale-trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==9 p = p-round(p*@gnarl_scale)/@gnarl_scale*trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==10 p = p+round(p*@gnarl_scale)/@gnarl_scale*trunc(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==11 p = p-trunc(p*@gnarl_scale)/@gnarl_scale-floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==12 p = p-trunc(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==13 p = p+trunc(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==14 p = p-trunc(p*@gnarl_scale)/@gnarl_scale-ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==15 p = p-trunc(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==16 p = p+trunc(p*@gnarl_scale)/@gnarl_scale*ceil(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==17 p = p-ceil(p*@gnarl_scale)/@gnarl_scale-floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==18 p = p-ceil(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale2)/@gnarl_scale2 elseif @gnarl_scaling==19 p = p+ceil(p*@gnarl_scale)/@gnarl_scale*floor(p*@gnarl_scale)/@gnarl_scale2 endif if @gnarl_size != 0 p = p/@gnarl_size endif xx = real(p) yy = imag(p) float xOld = 0 int iter3 = @gnarl_octaves while (iter3 > 0) iter3 = iter3-1 xOld = xx if @gnarl_form==0 xx = xx - sin(yy + sin(yy)) yy = yy - sin(xOld + sin(xOld)) elseif @gnarl_form==1 xx = xx - sin(yy + log(yy + cos(yy))) yy = yy - sin(xOld + log(xOld + cos(xOld))) elseif @gnarl_form==2 xx = xx - sin(yy + cos(yy)) yy = yy - sin(xOld + cos(xOld)) elseif @gnarl_form==3 xx = xx - sin(yy + log(yy + tan(yy))) yy = yy - sin(xOld + log(xOld + tan(xOld))) elseif @gnarl_form==4 xx = xx - sin(yy + log(yy + sin(yy))) yy = yy - sin(xOld + log(xOld + sin(xOld))) endif endwhile if (@gnarl_type==0) texture_gna = real(@fng(xx)) elseif (@gnarl_type==1) texture_gna = real(@fng(yy)) elseif (@gnarl_type==2) texture_gna = real(@fng(xx+yy)) elseif (@gnarl_type==3) texture_gna = real(@fng(xx*yy)) elseif (@gnarl_type==4) texture_gna = real(@fng(xx-yy)) elseif (@gnarl_type==5) texture_gna = real(@fng(xx/yy)) elseif (@gnarl_type==6) texture_gna = real(@fng(yy/xx)) elseif (@gnarl_type==7) texture_gna = real(@fng(xx^yy)) elseif (@gnarl_type==8) texture_gna = real(@fng(yy^xx)) elseif (@gnarl_type==9) texture_gna = real(@fng(1/xx)) elseif (@gnarl_type==10) texture_gna = real(@fng(1/yy)) elseif (@gnarl_type==11) texture_gna = atan2(xx+1i*yy)/(2*#pi) if (texture_gna < 0) texture_gna = texture_gna + 1 endif elseif (@gnarl_type==12) texture_gna = |xx+1i*yy| elseif (@gnarl_type==13) texture_gna = (xx+yy+|xx+1i*yy|)/3 elseif (@gnarl_type==14) texture_gna = (xx*yy*|xx+1i*yy|)^(1/3) endif if @gnarl_limit != 0 texture_gna = 10 * (texture_gna%@gnarl_limit) * @gnarl_amt endif endif ;------------------------------------------------------------------------------- ;geometrix if (@trtxt !=0) if @ztyp5=="#z" tz = ((#z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Morph z" tz = ((z1-@trxia)*@trxib)^@trxic elseif @ztyp5=="Trap z" tz = ((trap_z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Trap #z" tz = ((trap2_z-@trxia)*@trxib)^@trxic elseif @ztyp5=="Dist" tz = ((point_dist-@trxia)*@trxib)^@trxic endif if @trinit==0 ptr = (@fntx11(@fntx10(tz))^@exad10) elseif @trinit==1 ptr = (@fntx10(real(tz))^@exad10+@fntx11(imag(tz))^@exad11) elseif @trinit==2 ptr = (@fntx10(real(tz))^@exad10-@fntx11(imag(tz))^@exad11) elseif @trinit==3 ptr = (@fntx10(real(tz))^@exad10*@fntx11(imag(tz))^@exad11) elseif @trinit==4 ptr = (@fntx10(imag(tz))^@exad10-@fntx11(real(tz))^@exad11) elseif @trinit==5 ptr = (@fntx11(@fntx10(x))^@exad10) elseif @trinit==6 ptr = (@fntx11(@fntx10(y))^@exad10) elseif @trinit==7 ptr = (@fntx10(x)^@exad10+@fntx11(y)^@exad11) elseif @trinit==8 ptr = (@fntx10(x)^@exad10-@fntx11(y)^@exad11) elseif @trinit==9 ptr = (@fntx11(y)^@exad11-@fntx10(x)^@exad10) elseif @trinit==10 ptr = (@fntx10(x)^@exad10*@fntx11(y)^@exad11) elseif @trinit==11 ptr = (@fntx10(x)^@exad10/@fntx11(y)^@exad11) elseif @trinit==12 ptr = (@fntx11(y)^@exad11/@fntx10(x)^@exad10) elseif @trinit==13 ptr = (@fntx10(x)^@exad10^@fntx11(y)^@exad11) elseif @trinit==14 ptr = (@fntx11(y)^@exad11^@fntx10(x)^@exad10) elseif @trinit==15 ptr = (@fntx10(x)^@exad10+@fntx11(tz)^@exad11) elseif @trinit==16 ptr = (@fntx10(x)^@exad10-@fntx11(tz)^@exad11) elseif @trinit==17 ptr = (@fntx11(tz)^@exad11-@fntx10(x)^@exad10) elseif @trinit==18 ptr = (@fntx10(x)^@exad10*@fntx11(tz)^@exad11) elseif @trinit==19 ptr = (@fntx10(x)^@exad10/@fntx11(tz)^@exad11) elseif @trinit==20 ptr = (@fntx11(tz)^@exad11/@fntx10(x)^@exad10) elseif @trinit==21 ptr = (@fntx10(y)^@exad10+@fntx11(tz)^@exad11) elseif @trinit==22 ptr = (@fntx10(y)^@exad10-@fntx11(tz)^@exad11) elseif @trinit==23 ptr = (@fntx11(tz)^@exad11-@fntx10(y)^@exad10) elseif @trinit==24 ptr = (@fntx10(y)^@exad10*@fntx11(tz)^@exad11) elseif @trinit==25 ptr = (@fntx10(y)^@exad10/@fntx11(tz)^@exad11) elseif @trinit==26 ptr = (@fntx11(tz)^@exad11/@fntx10(y)^@exad10) endif endif complex tz = z_values[#numiter-1] complex tz = ptr float zrzr = real(@fnzr(ptr))*@scc float zizi = imag(@fnzi(ptr))*@scc float rzrz = floor(zrzr) float iziz = floor(zizi) r0r0 = rzrz - 1 i0i0 = iziz - 1 r1r1 = rzrz + 1 i1i1 = iziz + 1 azaz = cabs(@fn1tx(r0r0) + @fn2tx(i0i0)) azaz = cabs(@fn3tx(azaz)) azaz = (azaz % @shad1 * 2) bzbz = cabs(@fn1tx(r1r1) + @fn2tx(i0i0)) bzbz = cabs(@fn3tx(bzbz)) bzbz = (bzbz % @shad2 * 2) czcz = cabs(@fn1tx(r1r1) + @fn2tx(i1i1)) czcz = cabs(@fn3tx(czcz)) czcz = (czcz % @shad3 * 2) dzdz = cabs(@fn1tx(r0r0) + @fn2tx(i1i1)) dzdz = cabs(@fn3tx(dzdz)) dzdz = (dzdz % @shad4 * 2) i = 1 repeat avav = avav / (@trp1 * 2) xbxb = xbxb / (@trp2 * 2) frfr = rzrz + avav fifi = iziz + avav zaza = (azaz + bzbz + czcz + dzdz) / (@trp3 * 4) zzzz = zzzz * xbxb + zaza if (zrzr > frfr) if (zizi > fifi) rzrz = frfr iziz = fifi azaz = zzzz else rzrz = frfr dzdz = zzzz endif else if (zizi > fifi) iziz = fifi bzbz = zzzz else czcz = zzzz endif endif i = i + 1 until i >= @freq texture_tr = (zaza-trunc(zaza*2)^@exp)*@trtxt if @geo_limit != 0 texture_tr = ((zaza-trunc(zaza)^@exp*2)% @geo_limit)*@trtxt endif if @geo_sgn == true texture_tr = abs(texture_tr) endif texture = (texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10000 ;--------------Coloring Mode(Mark Townsend Method)------------------------------ if @mode == 0 || @mode == 5 && @masked && min_dist > @mask #solid = true endif if (@mode == 1 || @mode == 2 || @mode == 3 || \ @mode == 4 || @mode == 6 || @mode == 7) && \ !trapped && @solid #solid = true else if @color_mode==0 ;Distance index = distance elseif @color_mode==1 ;Distance 2 index = o_distance elseif @color_mode==2 ;Iterations index = 0.01*trap_iter elseif @color_mode==3 ;Modulated Iterations index = (trap_iter%@mod_iter)/@mod_iter elseif @color_mode==4 ;Random Iterations index = (((ra*(trap_iter+@rnd)+rc)%rm) % @mod_iter) / @mod_iter elseif @color_mode==5 ;Magnitude index = cabs(trap_z) elseif @color_mode==6 ;Real index = abs(real(trap_z)) elseif @color_mode==7 ;Image index = abs(imag(trap_z)) elseif @color_mode==8 ;Angle float angle = atan2(trap_z) if angle < 0 angle = angle+2*#pi endif angle = 1/(2*#pi)*angle index = angle elseif @color_mode==9 ;Trap Magnitude index = cabs(trap_p) elseif @color_mode==10 ;Angle to Trap float angle = atan2(trap_z - trap_p) if angle < 0 angle = angle+2*#pi endif angle = 1/(2*#pi)*angle index = angle endif endif #index = real(@indfn(index^@shad+(texture)))+(tx*@txamt/10)/100+ \ t2*(tx*@txamt/10)/100+rn*@r*(tx*@txamt/10)/100 Default: Title = "As-Harlequin" ;---------------------Coloring Proprierties------------------------------------- Heading caption = "Coloring" Endheading param mode caption = "Mode" enum = "Closest""First near""Last near""First within""Last within" \ "Closest point""First point""Last point" default = 5 endparam param color_mode caption = "Coloring" enum = "Distance""Distance 2""Iterations""Modulated Iterations""Random Iterations" \ "Magnitude""Real""Imag""Angle""Trap magnitude""Angle to trap" default = 0 endparam param mod_iter caption = "No. of Colors" default = 8.0 min = 0.0 visible = (@color_mode==3)||(@color_mode==4) endparam param rnd caption = "Random Seed" default = 0.0 visible = (@color_mode==4) endparam param width caption = "Width" default = 1.0 hint = "This controls the width of the elements. It's not \ used with all of the trap modes." visible = (@mode==1)||(@mode==2)||(@mode==6)||(@mode==7) endparam param skip caption = "Iterations to skip" hint = "This is the number of iterations to skip before watching \ the orbit." default = 0 min = 0 endparam param no_of_iters caption = "No. of iterations" hint = "This is the number of iterations to monitor the orbit." default = 0 min = 0 endparam float param edge caption = "Edge Definition" default = 0 hint = "This truncates the elements. It's not used with\ all trap modes." visible = (@mode==0)||(@mode==5) endparam param solid caption = "Solid background" default = true hint = "If this is checked orbits that aren't trapped \ are mapped solid. It has no effect in the 'Closest' \ trap modes." visible = @mode!=0 && @mode!=5 endparam float param shad caption = "Shading" default = 1 endparam param masked caption = "Masked" default = false visible = @mode==0 || @mode==5 endparam param mask caption = "Mask Threshold" default = 1.0 min = 0.0 visible = @mode==0 || @mode==5 && @masked==true endparam func indfn caption = "Final Index Function" default = ident() hint = "Changes the 'shading' of the elements." endfunc Heading caption = "Transfer Distance" Endheading param var_d caption = "Transfer Distance" enum = "Normal""Log""CubeRoot""Sqr""Sqrt""Cube""Sin""Cos""Exp""Atan" default = 0 endparam param presc caption = "Pre Scale" default = 1.0 endparam param postsc caption = "Post Scale" default = 1.0 endparam Heading caption = "Inversion Section" Endheading param AbleInversion caption = "Able Inversion Section" default = false endparam param angle caption = "Rotation" default = 0.0 visible = (@AbleInversion == true) endparam param aspect caption = "Aspect Ratio" default = 1.0 min = 0.000000001 visible = (@AbleInversion == true) endparam param invscale caption = "Inversion Scale" default = 1.0 hint = "Scale of the inversion. This performs a similar function\ to changing the magnitude of the fractal zoom." visible = (@AbleInversion == true) endparam param invcenter caption = "Center of Inversion" default = (0.0,0.0) visible = (@AbleInversion == true) endparam param invpower caption = "Exponent" default = (0.0,0.0) hint = "Gives the inversion exponent. (-1,0) gives the classic \ 1/z inversion type." visible = (@AbleInversion == true) endparam ;------------------------------General Mix-------------------------------------- Heading caption = "Mixed Parameters" Endheading param angleHarlequin caption = "Select Harlequin Angle" enum = "Normal""Harlequin + Polar""Harlequin - Polar""Harlequin * Polar""Harlequin / Polar""Harlequin ^ Polar" default = 0 endparam param anglePolar caption = "Select Polar Angle" enum = "Normal""Polar + Harlequin""Polar - Harlequin""Polar * Harlequin""Polar / Harlequin""Polar ^ Harlequin" default = 0 endparam param opMixRadius caption = "Final Mix Harlequin Radius" enum = "Normal Harlequin""Harlequin + Polar""Harlequin - Polar""Harlequin * Polar""Harlequin / Polar""Harlequin ^ Polar""Polar^Harlequin" default = 0 endparam param mixPolar1 caption = "Angle Polar 1" default = 0.0 visible = (@angleHarlequin != 0) endparam param mixHarlequin1 caption = "Angle Harlequin 1" default = 0.0 visible = (@angleHarlequin != 0) endparam param mixPolar2 caption = "Angle Polar 2" default = 0.0 visible = (@anglePolar != 0) endparam param mixHarlequin2 caption = "Angle Harlequin 2" default = 0.0 visible = (@anglePolar != 0) endparam param mixPolar3 caption = "Angle Polar 3" default = 1.0 visible = (@angleHarlequin != 0) endparam param mixHarlequin3 caption = "Angle Harlequin 3" default = 1.0 visible = (@angleHarlequin != 0) endparam param mixPolar4 caption = "Angle Polar 4" default = 1.0 visible = (@anglePolar != 0) endparam param mixHarlequin4 caption = "Angle Harlequin 4" default = 1.0 visible = (@anglePolar != 0) endparam param radiusHarlequin1 caption = "Radius Harlequin 1" default = (0.0,0.0) visible = (@opMixRadius != 0) endparam param radiusPolar1 caption = "Radius Polar 1" default = (0.0,0.0) visible = (@opMixRadius != 0) endparam param radiusHarlequin2 caption = "Radius Harlequin 2" default = (1.0,0.0) visible = (@opMixRadius != 0) endparam param radiusPolar2 caption = "Radius Polar 2" default = (1.0,0.0) visible = (@opMixRadius != 0) endparam ;------------------------------Harlequin---------------------------------------- Heading caption = "Harlequin Parameters" enabled = @startHarlequin != 0 Endheading param startHarlequin caption = "Start Harlequin Radius" default = (1.0,0.0) endparam param harlSpread caption = "Spread Harlequin Radius" default = (0.0,0.0) endparam param atanXY caption = "Select XY Operator" enum = "X/Y""X*Y" default = 0 endparam param selectHarlequinCurve caption = "Select Harlequin Variation theta=atan(real(y/x))" ;enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19""Build Your Own" enum="T=theta^2|(1-T)^2""T=theta^2|(1-T)+T""T=theta^2|(1-T)-T""T=theta^2|(1-T)*T""T=theta^2|(1-T)/T""T=theta^2|(1-T)^T"\ "T=theta^2+theta^2""T=theta^2*theta^2""T=theta^2-theta^2""T=atan(sqrt(theta)^2+exp(theta)^2|sinT+flip(cosT)"\ "T=atan(sqrt(theta)^2+exp(theta)^2|sinT*flip(cosT)""T=atan(sqrt(theta)^2+exp(theta)^2|sinT+cosT"\ "T=atan(sqrt(theta^2)+exp(theta^2)|sinT*cosT""T=atan(sin(theta)^2-cos(theta)^2)|sinT+cosT"\ "T=atan(sin(theta)^2-cos(theta)^2)|sinT*cosT""T=atan(sin(theta)^2/cos(theta)^2)|sinT+cosT"\ "T=atan(sin(theta)^2/cos(theta)^2)|sinT*cosT""T=atan(sinh(theta)^2*cosh(theta)^2)|sinT+cosT"\ "T=atan(sinh(theta)^2*cosh(theta)^2)|sinT*cosT""Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)"\ "Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)" default = 0 endparam Heading caption="Build Your Own Harlequin" visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") Endheading param paramOperatorBuildH1 caption = "Select Operator Radius 1" enum = "fn1+fn2""fn1*fn2" default = 0 visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endparam param paramOperatorBuildH2 caption = "Select Operator Radius 2" enum = "fn3+fn4""fn3*fn4" default = 0 visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endparam func fnh1 caption = "Function Radius 1" default = ident() visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endfunc func fnh2 caption = "Function Radius 2" default = ident() visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endfunc func fnh3 caption = "Function Radius 3" default = ident() visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endfunc func fnh4 caption = "Function Radius 4" default = ident() visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") endfunc Heading caption="********End Build**********" visible=(@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta)^2+fn2(theta)^2)|fn3T+fn4T)") || (@selectHarlequinCurve=="Build Your Own(T=atan(fn1(theta^2)+fn2(theta^2))|fn3T+fn4T)") Endheading param HarlequinAngle caption = "Multiply Angle" default = 2.0 endparam param HarlequinAngle1 caption = "Multiply" default = 1.0 endparam param HarlSeed1 caption = "Harlequin Seed 1" default = (0.0,0.0) endparam param HarlSeed2 caption = "Harlequin Seed 2" default = (0.0,0.0) endparam param HarlSeed3 caption = "Harlequin Seed 3" default = (0.0,0.0) endparam param multHarl1 caption = "Harlequin Mult.1" default = 1.0 endparam param multHarl2 caption = "Harlequin Mult.2" default = 1.0 endparam Heading caption = "Functions Harlequin" Endheading func fnx caption = "Function X Angle Harlequin" default = ident() endfunc func fny caption = "Function Y Angle Harlequin" default = ident() endfunc func fnHarl1 caption = "Function Harlequin 1" default = exp() endfunc func fnHarl2 caption = "Function Harlequin 2" default = ident() endfunc func fnAngleHarl1 caption = "Function Harlequin 3" default = ident() endfunc func fnAngleHarl2 caption = "Function Harlequin 4" default = ident() endfunc func fnRadiusHarlequin caption = "Function Harlequin Radius" default = ident() endfunc param op_swirlRHarlequin caption = "Apply Swirl Harlequin" default = false endparam param swirlHarlequin caption = "Swirl Harlequin" default = 0.0 visible = (@op_swirlRHarlequin==true) endparam ;------------------------------Polar Curves------------------------------------- Heading caption = "Polar Curves Parameters" Endheading Heading caption = "Polar Curves" Endheading param startPolar caption = "Start Polar Radius" default = 1.0 endparam param addPolar caption = "Add Polar Radius" default = 0.0 endparam param PolarAngle caption = "Multiply Angle" default = 1.0 endparam param selectPolarCurve caption = "Select Trap" enum = "Arachnida"\ "Bifolium"\ "Butterfly"\ "Cannabis Curve"\ "Cardioid"\ "Circle"\ "Cissoid Of Diocles"\ "Cochleoid Curve"\ "Conchoid Of De Sluze"\ "Conchoid Of Nicomedes"\ "Cotes' Spiral"\ "Cranioid"\ "Cycloid of Ceva"\ "Eight Curve"\ "Epispiral"\ "Folium of Descartes"\ "Heart Curve"\ "Hippopede"\ "Hyperbola"\ "Kampyle of Eudoxus"\ "Kappa Curve"\ "Lemniscate of Bernoulli"\ "Limacon of Pascal"\ "Lituus"\ "Log Spiral"\ "Maclaurin Curve"\ "Neoid"\ "Ophiuride"\ "Parabolic"\ "Quadratix of Hippias"\ "Quadrifolium"\ "Rose"\ "Rose of Troy"\ "Scarabeus"\ "Semicubical Parabola"\ "Sextic of Cayley"\ "Sinusoidal"\ "Spiral of Archimedes"\ "Strophoid"\ "Trifolium" default = 4 endparam param selectOpFinalPoint caption = "Select Operator Final" enum = "x+y""x-y""x*y""x/y""x^y" default = 0 endparam Heading caption = "Arachnida" visible = (@selectPolarCurve == 0) Endheading param arach caption = "Arachnida Param.1" default = 1.0 visible = (@selectPolarCurve == 0) endparam param arach1 caption = "Arachnida Param.2" default = 2.0 visible = (@selectPolarCurve == 0) endparam Heading caption = "Bifolium" visible = (@selectPolarCurve == 1) Endheading param bif1 caption = "Bifolium Param.1" default = 1.0 visible = (@selectPolarCurve == 1) endparam param bif2 caption = "Bifolium Param.2" default = 1.0 visible = (@selectPolarCurve == 1) endparam Heading caption = "Butterfly" visible = (@selectPolarCurve == 2) Endheading param butt1 caption = "Butterfly Param.1" default = 1.0 visible = (@selectPolarCurve == 2) endparam param butt2 caption = "Butterfly Param.2" default = 1.0 visible = (@selectPolarCurve == 2) endparam Heading caption = "Cannabis Curve" visible = (@selectPolarCurve == 3) Endheading param canna1 caption = "Cannabis Param.1" default = 0.2 visible = (@selectPolarCurve == 3) endparam param canna2 caption = "Cannabis Param.2" default = 1.0 visible = (@selectPolarCurve == 3) endparam Heading caption = "Cardioid" visible = (@selectPolarCurve == 4) Endheading param card1 caption = "Cardioid Param.1" default = 1.0 visible = (@selectPolarCurve == 4) endparam param card2 caption = "Cardioid Param.2" default = 1.0 visible = (@selectPolarCurve == 4) endparam Heading caption = "Circle" visible = (@selectPolarCurve == 5) Endheading param circ1 caption = "Radius" default = 1.0 visible = (@selectPolarCurve == 5) endparam Heading caption = "Cissoid of Diocles" visible = (@selectPolarCurve == 6) Endheading param ciss1 caption = "Cissoid Param.1" default = 1.0 visible = (@selectPolarCurve == 6) endparam param ciss2 caption = "Cissoid Param.2" default = 1.0 visible = (@selectPolarCurve == 6) endparam Heading caption = "Cochleoid Curve" visible = (@selectPolarCurve == 7) Endheading param cocho1 caption = "Cochleoid Param.1" default = 1.0 visible = (@selectPolarCurve == 7) endparam param cocho2 caption = "Cochleoid Param.2" default = 1.0 visible = (@selectPolarCurve == 7) endparam Heading caption = "Conchoid of de Sluze" visible = (@selectPolarCurve == 8) Endheading param conco1 caption = "De Sluze Param.1" default = 1.0 visible = (@selectPolarCurve == 8) endparam param conco2 caption = "De Sluze Param.2" default = 1.0 visible = (@selectPolarCurve == 8) endparam param conco3 caption = "De Sluze Param.2" default = 1.0 visible = (@selectPolarCurve == 8) endparam Heading caption = "Conchoid of Nicomedes" visible = (@selectPolarCurve == 9) Endheading param conc1 caption = "Conchoid Param.1" default = 1.0 visible = (@selectPolarCurve == 9) endparam param conc2 caption = "Conchoid Param.2" default = 1.0 visible = (@selectPolarCurve == 9) endparam Heading caption = "Cotes' Spiral" visible = (@selectPolarCurve == 10) Endheading param cot1 caption = "Cotes Param.1" default = 1.0 visible = (@selectPolarCurve == 10) endparam param cot2 caption = "Cotes Param.2" default = 1.0 visible = (@selectPolarCurve == 10) endparam param cot3 caption = "Cotes Param.3" default = 0.0 visible = (@selectPolarCurve == 10) endparam Heading caption = "Cranioid" visible = (@selectPolarCurve == 11) Endheading param cran1 caption = "Cranioid Param.1" default = 1.0 visible = (@selectPolarCurve == 11) endparam param cran2 caption = "Cranioid Param.2" default = 1.0 visible = (@selectPolarCurve == 11) endparam param cran3 caption = "Cranioid Param.3" default = 1.0 visible = (@selectPolarCurve == 11) endparam param cran4 caption = "Cranioid Param.4" default = 1.0 visible = (@selectPolarCurve == 11) endparam param cran5 caption = "Cranioid Param.5" default = 1.0 visible = (@selectPolarCurve == 11) endparam Heading caption = "Cycloid of Ceva" visible = (@selectPolarCurve == 12) Endheading param cev1 caption = "Cycloid Param.1" default = 1.0 visible = (@selectPolarCurve == 12) endparam param cev2 caption = "Cycloid Param.2" default = 1.0 visible = (@selectPolarCurve == 12) endparam Heading caption = "Eight Curve" visible = (@selectPolarCurve == 13) Endheading param eight1 caption = "Eight Param.1" default = 1.0 visible = (@selectPolarCurve == 13) endparam param eight2 caption = "Eight Param.2" default = 1.0 visible = (@selectPolarCurve == 13) endparam Heading caption = "Epispiral" visible = (@selectPolarCurve == 14) Endheading param epi1 caption = "Epispiral Param.1" default = 1.0 visible = (@selectPolarCurve == 14) endparam param epi2 caption = "Epispiral Param.2" default = 2.0 visible = (@selectPolarCurve == 14) endparam Heading caption = "Folium of Descartes" visible = (@selectPolarCurve == 15) Endheading param foli1 caption = "Folium Param.1" default = 1.0 visible = (@selectPolarCurve == 15) endparam param foli2 caption = "Folium Param.2" default = 1.0 visible = (@selectPolarCurve == 15) endparam Heading caption = "Heart Curve" visible = (@selectPolarCurve == 16) Endheading param heart1 caption = "Heart Param.1" default = 1.0 visible = (@selectPolarCurve == 16) endparam param heart2 caption = "Heart Param.2" default = 1.0 visible = (@selectPolarCurve == 16) endparam param heart3 caption = "Heart Param.3" default = 1.0 visible = (@selectPolarCurve == 16) endparam Heading caption = "Hippopede" visible = (@selectPolarCurve == 17) Endheading param hippo1 caption = "Hippopede Param.1" default = 1.0 visible = (@selectPolarCurve == 17) endparam param hippo2 caption = "Hippopede Param.2" default = 1.0 visible = (@selectPolarCurve == 17) endparam Heading caption = "Hyperbola" visible = (@selectPolarCurve == 18) Endheading param hyp1 caption = "Hyperbola Param.1" default = 1.0 visible = (@selectPolarCurve == 18) endparam param hyp2 caption = "Hyperbola Param.2" default = 1.0 visible = (@selectPolarCurve == 18) endparam Heading caption = "Kampyle of Eudoxus" visible = (@selectPolarCurve == 19) Endheading param kamp1 caption = "Kampyle Param.1" default = 1.0 visible = (@selectPolarCurve == 19) endparam param kamp2 caption = "Kampyle Param.2" default = 1.0 visible = (@selectPolarCurve == 19) endparam Heading caption = "Kappa Curve" visible = (@selectPolarCurve == 20) Endheading param kappa1 caption = "Kappa Param.1" default = 1.0 visible = (@selectPolarCurve == 20) endparam param kappa2 caption = "Kappa Param.2" default = 1.0 visible = (@selectPolarCurve == 20) endparam Heading caption = "Lemniscate of Bernoulli" visible = (@selectPolarCurve == 21) Endheading param lemni1 caption = "Lemniscate Param.1" default = 1.0 visible = (@selectPolarCurve == 21) endparam param lemni2 caption = "Lemniscate Param.2" default = 0.0 visible = (@selectPolarCurve == 21) endparam param lemni3 caption = "Lemniscate Param.3" default = 1.0 visible = (@selectPolarCurve == 21) endparam Heading caption = "Limacon of Pascal" visible = (@selectPolarCurve == 22) Endheading param lima1 caption = "Limacon Param.1" default = 1.0 visible = (@selectPolarCurve == 22) endparam param lima2 caption = "Limacon Param.2" default = 1.0 visible = (@selectPolarCurve == 22) endparam Heading caption = "Lituus" visible = (@selectPolarCurve == 23) Endheading param litu1 caption = "Lituus Param.1" default = 1.0 visible = (@selectPolarCurve == 23) endparam param litu2 caption = "Lituus Param.2" default = 1.0 visible = (@selectPolarCurve == 23) endparam Heading caption = "Log Spiral" visible = (@selectPolarCurve == 24) Endheading param log1 caption = "Log Param.1" default = 1.0 visible = (@selectPolarCurve == 24) endparam param log2 caption = "Log Param.2" default = 1.0 visible = (@selectPolarCurve == 24) endparam Heading caption = "Maclaurin Curve" visible = (@selectPolarCurve == 25) Endheading param mac1 caption = "Maclaurin Param.1" default = 1.0 visible = (@selectPolarCurve == 25) endparam param mac2 caption = "Maclaurin Param.2" default = 1.0 visible = (@selectPolarCurve == 25) endparam Heading caption = "Neoid" visible = (@selectPolarCurve == 26) Endheading float param neo1 caption = "Neoid Param.1" default = 0.1 min = 0.1 visible = (@selectPolarCurve == 26) endparam float param neo2 caption = "Neoid Param.2" default = 1 visible = (@selectPolarCurve == 26) endparam Heading caption = "Ophiuride" visible = (@selectPolarCurve == 27) Endheading param ophi1 caption = "Ophiuride Param.1" default = 1.0 visible = (@selectPolarCurve == 27) endparam param ophi2 caption = "Ophiuride Param.2" default = 1.0 visible = (@selectPolarCurve == 27) endparam param ophi3 caption = "Ophiuride Param.3" default = 1.0 visible = (@selectPolarCurve == 27) endparam param ophi4 caption = "Ophiuride Param.4" default = 1.0 visible = (@selectPolarCurve == 27) endparam param ophi5 caption = "Ophiuride Param.5" default = 1.0 visible = (@selectPolarCurve == 27) endparam Heading caption = "Parabolic" visible = (@selectPolarCurve == 28) Endheading param parabolic1 caption = "Parabolic Param.1" default = 1.0 visible = (@selectPolarCurve == 28) endparam param parabolic2 caption = "Parabolic Param.2" default = 1.0 visible = (@selectPolarCurve == 28) endparam Heading caption = "Quadratix of Hippias" visible = (@selectPolarCurve == 29) Endheading param quad1 caption = "Quadratix Param.1" default = 1.0 visible = (@selectPolarCurve == 29) endparam param quad2 caption = "Quadratix Param.2" default = 1.0 visible = (@selectPolarCurve == 29) endparam Heading caption = "Quadrifolium" visible = (@selectPolarCurve == 30) Endheading param quadr1 caption = "Quadrifolium Param.1" default = 1.0 visible = (@selectPolarCurve == 30) endparam param quadr2 caption = "Quadrifolium Param.2" default = 2.0 visible = (@selectPolarCurve == 30) endparam Heading caption = "Rose" visible = (@selectPolarCurve == 31) Endheading param rose1 caption = "Rose Param.1" default = 1.0 visible = (@selectPolarCurve == 31) endparam param rose2 caption = "Rose Param.2" default = 4.0 visible = (@selectPolarCurve == 31) endparam Heading caption = "Rose of Troy" visible = (@selectPolarCurve == 32) Endheading param rost1 caption = "Troy Param.1" default = 1.0 visible = (@selectPolarCurve == 32) endparam param rost2 caption = "Troy Param.2" default = 3.0 visible = (@selectPolarCurve == 32) endparam Heading caption = "Scarabeus" visible = (@selectPolarCurve == 33) Endheading param scar1 caption = "Scarabeus Param.1" default = 2.0 visible = (@selectPolarCurve == 33) endparam param scar2 caption = "Scarabeus Param.2" default = 3.0 visible = (@selectPolarCurve == 33) endparam Heading caption = "Semicubical Parabola" visible = (@selectPolarCurve == 34) Endheading param semi1 caption = "Semicubical Param.1" default = 1.0 visible = (@selectPolarCurve == 34) endparam param semi2 caption = "Semicubical Param.2" default = 1.0 visible = (@selectPolarCurve == 34) endparam Heading caption = "Sextic of Cayley" visible = (@selectPolarCurve == 35) Endheading param sext1 caption = "Sextic Param.1" default = 1.0 visible = (@selectPolarCurve == 35) endparam param sext2 caption = "Sextic Param.2" default = 1.0 visible = (@selectPolarCurve == 35) endparam Heading caption = "Sinusoidal" visible = (@selectPolarCurve == 36) Endheading param sinuso1 caption = "Sinusoidal Param.1" default = 1.0 visible = (@selectPolarCurve == 36) endparam param sinuso2 caption = "Sinusoidal Param.2" default = 1.0 visible = (@selectPolarCurve == 36) endparam param sinuso3 caption = "Sinusoidal Param.3" default = 0.0 visible = (@selectPolarCurve == 36) endparam Heading caption = "Spiral of Archimedes" visible = (@selectPolarCurve == 37) Endheading param arch1 caption = "Spiral Param.1" default = 1.0 visible = (@selectPolarCurve == 37) endparam param arch2 caption = "Spiral Param.2" default = 1.0 visible = (@selectPolarCurve == 37) endparam Heading caption = "Strophoid" visible = (@selectPolarCurve == 38) Endheading param stroph1 caption = "Strophoid Param.1" default = 1.0 visible = (@selectPolarCurve == 38) endparam param stroph2 caption = "Strophoid Param.2" default = 1.0 visible = (@selectPolarCurve == 38) endparam Heading caption = "Trifolium" visible = (@selectPolarCurve == 39) Endheading param trif1 caption = "Trifolium Param.1" default = 1.0 visible = (@selectPolarCurve == 39) endparam param trif2 caption = "Trifolium Param.2" default = 1.0 visible = (@selectPolarCurve == 39) endparam Heading caption = "Function Polar" Endheading func fnThetaPolar caption = "Function Angle Polar" default = ident() endfunc func fnPointPolar1 caption = "Function Theta Polar X" default = sin() endfunc func fnPointPolar2 caption = "Function Theta Polar Y" default = cos() endfunc func finalPointX caption = "Function Final Point X" default = ident() endfunc func finalPointY caption = "Function Final Point Y" default = ident() endfunc param op_swirlRPolar caption = "Apply Swirl Polar" default = false endparam param swirlPolar caption = "Swirl Polar" default = 0.0 visible = (@op_swirlRPolar==true) endparam Heading caption = "Advanced Mode" Endheading param advancedMode caption = "Advanced Mode" default = false endparam param @opPhi caption = "Angle Phi" enum = "Method 1""Method 2""Method 3""Method 4""Method 5""Method 6""Method 7" \ "Method 8""Method 9""Method 10""Method 11""Method 12""Method 13" \ "Method 14""Method 15""Method 16""Method 17""Method 18""Method 19" \ "Method 20" default = 0 visible = (@advancedMode == true) endparam param @multPhi caption = "Multiply Phi" default = 1.0 visible = (@advancedMode == true) endparam param @coordMethodX caption = "Coordinate X" enum = "+""-""*""/""^" default = 2 visible = (@advancedMode == true) endparam param @coordMethodY caption = "Coordinate Y" enum = "+""-""*""/""^" default = 2 visible = (@advancedMode == true) endparam param @mixFinalPointZ caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = (@advancedMode == true) endparam param @addFinalZ caption = "Add spread" default = (0.0,0.0) visible = (@advancedMode == true) endparam func fnPhi caption = "Function angle Phi" default = sin() visible = (@advancedMode == true) endfunc func fnAdvThetaX caption = "Function angle Theta X" default = cos() visible = (@advancedMode == true) endfunc func fnAdvThetaY caption = "Function angle Theta Y" default = sin() visible = (@advancedMode == true) endfunc func FinalPointZ caption = "Function Final Z Advanced" default = ident() visible = (@advancedMode == true) endfunc Heading caption = "Final Parameters" Endheading param @spread caption = "Spread" default = 0.0 endparam Heading caption = "Final Radius Harlequin" Endheading param finHarl1 caption = "Final Harlequin" default = (0.0,0.0) endparam param finHarl2 caption = "Final Mult. Harlequin" default = (1.0,0.0) endparam param finHarl3 caption = "Final Exp. Harlequin" default = (1.0,0.0) endparam func fnFinalH caption = "Function Final Harlequin" default = ident() endfunc Heading caption = "Final Trap Point Polar" Endheading param spreadX caption = "Spread X" default = (0.0,0.0) endparam param spreadY caption = "Spread Y" default = (0.0,0.0) endparam param finPol1 caption = "Final Polar" default = (0.0,0.0) endparam param finPol2 caption = "Final Mult. Polar" default = (1.0,0.0) endparam param finPol3 caption = "Final Exp. Polar" default = (1.0,0.0) endparam func fnFinalPolar caption = "Function Final Polar Trapped" default = ident() endfunc ;----------------------------------Morph---------------------------------------- Heading caption = "Morph Parameters" visible = (@change==0 && @exp1==(1,0) && @exp2==(1,0) \ && @exp3==(1,0) && @tw==(0,0) && @tw2==(0,0) && @tw3==\ (0,0) && @tha2==false && @showm==false) Endheading Heading caption = "Morph Parameters [active]" visible = (@change !=0 || @exp1 !=(1,0) || @exp2 !=(1,0) || \ @exp3 !=(1,0) || @tw !=(0,0) || @tw2 !=(0,0) || @tw3 !=(0,0)\ || @tha2==true || @showm==true) Endheading param showm caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param tha2 caption = "Morph -> Morph II" default = false visible = @showm endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11""12" default = 0 visible = @showm endparam param mmode caption = "Z1 Mode" enum = "z+|z|""z-|z|""|z|-z" default = 0 hint = "Defines relationship of z1 to z in 1st z block" visible = @showm && @tha2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @showm && @tha2 endparam param mmode2 caption = "Z2 Mode" enum = "z+|z|""z-|z|""|z|-z""z*|z|""z/|z|""|z|/z" default = 0 hint = "Defines relationship of z2 to z in 2nd z block" visible = @showm && @tha2 && @change > 0 endparam param zchange2 caption = "Z2 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z2 variable " visible = @showm && @tha2 && @change > 0 endparam param mmode3 caption = "Z3 Mode" enum = "z+|z|""z-|z|""|z|-z""z*|z|""z/|z|""|z|/z" default = 0 hint = "Defines relationship of z3 to z in 3rd z block" visible = @showm && @tha2 && @change > 5 endparam param zchange3 caption = "Z3 type" enum = "|z|""atan2(z)""real(z)""imag(z)" hint = "Determines the character of z3 variable " default = 0 visible = @showm && @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @showm endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @showm && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @showm && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 && @showm endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @showm && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @showm && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @showm endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @showm && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @showm && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 && @showm endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @showm && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @showm && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @showm && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @showm endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @showm && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @showm && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 && @showm endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @showm && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @showm && @change > 5 endfunc ;---------------------------------Progressive Morph----------------------------- Heading caption = "Progressive Morph Params" visible = @showm Endheading bool param progress caption = "Progressive Parameters" default = false visible = @showm endparam int param linear caption = "Progression Type" enum = "Linear""Non-Linear 1""Non-Linear 2""Non-Linear 3" default = 0 visible = @progress && @showm endparam float param speed caption = "Non-Linear Amount" default = 1 visible = @progress && @showm endparam bool param incExp1r caption = "> Bias 1 (re)" default = false visible = @progress && @showm endparam float param exp1rDegree caption = "Increment by" default = 0 visible = @progress && @incExp1r && @showm endparam bool param incExp1i caption = "> Bias 1 (im)" default = false visible = @progress && @showm endparam float param exp1iDegree caption = "Increment by" default = 0 visible = @progress && @incExp1i && @showm endparam bool param incExp3r caption = "> Bias 2 (re)" default = false visible = @progress && @change > 0 && @showm endparam float param exp3rDegree caption = "Increment by" default = 0 visible = @progress && @incExp3r && @showm endparam bool param incExp3i caption = "> Bias 2 (im)" default = false visible = @progress && @change > 0 && @showm endparam float param exp3iDegree caption = "Increment by" default = 0 visible = @progress && @incExp3i && @showm endparam bool param incExp2r caption = "> Bias 3 (re)" default = false visible = @progress && @change > 5 && @showm endparam float param exp2rDegree caption = "Increment by" default = 0 visible = @progress && @incExp2r && @showm endparam bool param incExp2i caption = "> Bias 3 (im)" default = false visible = @progress && @change > 5 && @showm endparam float param exp2iDegree caption = "Increment by" default = 0 visible = @progress && @incExp2i && @showm endparam bool param incExp4r caption = "> Bias Z1 (re)" default = false visible = @progress && @tha2 && @showm endparam float param exp4rDegree caption = "Increment by" default = 0 visible = @progress && @incExp4r && @showm endparam bool param incExp4i caption = "> Bias Z1 (im)" default = false visible = @progress && @tha2 && @showm endparam float param exp4iDegree caption = "Increment by" default = 0 visible = @progress && @incExp4i && @showm endparam bool param incExp5r caption = "> Bias Z2 (re)" default = false visible = @progress && @tha2 && @change > 0 && @showm endparam float param exp5rDegree caption = "Increment by" default = 0 visible = @progress && @incExp5r && @showm endparam bool param incExp5i caption = "> Bias Z2 (im)" default = false visible = @progress && @tha2 && @change > 0 && @showm endparam float param exp5iDegree caption = "Increment by" default = 0 visible = @progress && @incExp5i && @showm endparam bool param incExp6r caption = "> Bias Z3 (re)" default = false visible = @progress && @tha2 && @change > 5 && @showm endparam float param exp6rDegree caption = "Increment by" default = 0 visible = @progress && @incExp6r && @showm endparam bool param incExp6i caption = "> Bias Z3 (im)" default = false visible = @progress && @tha2 && @change > 5 && @showm endparam float param exp6iDegree caption = "Increment by" default = 0 visible = @progress && @incExp6i && @showm endparam bool param incTwr caption = "> Twist 1 (re)" default = false visible = @progress && @showm endparam float param twistrDegree caption = "Increment by" default = 0 visible = @progress && @incTwr && @showm endparam bool param incTwi caption = "> Twist 1 (im)" default = false visible = @progress && @showm endparam float param twistiDegree caption = "Increment by" default = 0 visible = @progress && @incTwi && @showm endparam bool param incTw2r caption = "> Twist 2 (re)" default = false visible = @progress && @change > 0 && @showm endparam float param twist2rDegree caption = "Increment by" default = 0 visible = @progress && @incTw2r && @showm endparam bool param incTw2i caption = "> Twist 2 (im)" default = false visible = @progress && @change > 0 && @showm endparam float param twist2iDegree caption = "Increment by" default = 0 visible = @progress && @incTw2i && @showm endparam bool param incTw3r caption = "> Twist 3 (re)" default = false visible = @progress && @change > 5 && @showm endparam float param twist3rDegree caption = "Increment by" default = 0 visible = @progress && @incTw3r && @showm endparam bool param incTw3i caption = "> Twist 3 (im)" default = false visible = @progress && @change > 5 && @showm endparam float param twist3iDegree caption = "Increment by" default = 0 visible = @progress && @incTw3i && @showm endparam bool param incTw4r caption = "> Twist Z1 (re)" default = false visible = @progress && @tha2 && @showm endparam float param twist4rDegree caption = "Increment by" default = 0 visible = @progress && @incTw4r && @showm endparam bool param incTw4i caption = "> Twist Z1 (im)" default = false visible = @progress && @tha2 && @showm endparam float param twist4iDegree caption = "Increment by" default = 0 visible = @progress && @incTw4i && @showm endparam bool param incTw5r caption = "> Twist Z2 (re)" default = false visible = @progress && @tha2 && @change > 0 && @showm endparam float param twist5rDegree caption = "Increment by" default = 0 visible = @progress && @incTw5r && @showm endparam bool param incTw5i caption = "> Twist Z2 (im)" default = false visible = @progress && @tha2 && @change > 0 && @showm endparam float param twist5iDegree caption = "Increment by" default = 0 visible = @progress && @incTw5i && @showm endparam bool param incTw6r caption = "> Twist Z3 (re)" default = false visible = @progress && @tha2 && @change > 5 && @showm endparam float param twist6rDegree caption = "Increment by" default = 0 visible = @progress && @incTw6r && @showm endparam bool param incTw6i caption = "> Twist Z3 (im)" default = false visible = @progress && @tha2 && @change > 5 && @showm endparam float param twist6iDegree caption = "Increment by" default = 0 visible = @progress && @incTw6i && @showm endparam ;---------------------------------Texture Parameters---------------------------- Heading caption = "Texture Parameters" visible = (@rnd2 == 0 && @fbmtxt == 0 && @decamt == 0 && @tp == 0 && @gnarl_amt == 0) Endheading Heading caption = "Texture Parameters [active]" visible = (@rnd2 != 0 || @fbmtxt != 0 || @decamt != 0 || @tp != 0 || @gnarl_amt != 0) Endheading param advt caption = "Texture Parameters" default = false endparam float param txamt caption = "Overall Tx Percent" default = 100.0 hint = "Controls the amount of \ Random, fBm, Decimal, Popgnarl and Additional \ texture applied cumulatively." visible = @advt endparam float param rnd2 caption = "Random Tx Amount" default = 0.0 hint = "Adds Random texture" visible = @advt endparam Heading caption = "fBm" visible = @advt && @fbmtxt == 0 Endheading Heading caption = "fBm [active]" visible = @advt && @fbmtxt != 0 Endheading param advfbm caption = "fBm Texturing" default = false visible = @advt endparam float param fbmtxt caption = "fBm Tx Amount" default = 0.0 visible = @advt && @advfbm endparam param fbminit caption = "fBm Initialization" enum = "z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y""pixel" hint = "Determines which variable(s) initialize(s) the texture" default = 0 visible = @advt && @advfbm endparam param ztyp4 caption = "Choose z type" enum = "#z""Morph z""Trap z""Trap #z""Dist" default = 2 hint = "Determines which kind of 'z' variable is used in \ 'fBm Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam func fntx8 caption = "Init Function 1" default = ident() hint = "Modifies the 1st variable defined in \ 'fBm Initialization'" visible = @advt && @advfbm endfunc func fntx9 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'fBm Initialization'" visible = @advt && @advfbm endfunc func fbmrfn1 caption = "fBm Function 1" default = ident() hint = "Try changing this to achieve different fBm \ 'cloud' distribution and look" visible = @advt && @advfbm endfunc func fbmifn1 caption = "fBm Function 2" default = ident() hint = "Try changing this to achieve different fBm \ 'cloud' distribution and look" visible = @advt && @advfbm endfunc func fbmrfn2 caption = "Pattern Function 1" default = floor() hint = "Changing this often radically alters the look of the \ texture. With many functions--if they look 'grainy'--\ you will need to make the value of the 'Frequency' (real) \ param much smaller--on the order of .0000001. Experiment!" visible = @advt && @advfbm endfunc func fbmifn2 caption = "Pattern Function 2" default = floor() hint = "Changing this often radically alters the look of the \ texture. With many functions--if they look 'grainy'--\ you will need to make the value of the 'Frequency' (real) \ param much smaller--on the order of .0000001. Experiment!" visible = @advt && @advfbm endfunc float param ha caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param hb caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param hc caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param hd caption = "Distribution 4" default = 1 visible = @advt && @advfbm endparam complex param txia4 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txib4 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txic4 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param exad8 caption = "Frequency 1" default = (1.0,0.0) hint = "Changes the pattern frequency by acting on the 1st (or only) \ variable defined in 'fBm Initialization'" visible = @advt && @advfbm endparam complex param exad9 caption = "Frequency 2" default = (1.0,0.0) hint = "Changes the pattern frequency by acting on the 2nd variable \ (when present) defined in 'fBm Initialization'" visible = @advt && @advfbm && !(@fbminit==0 ||@fbminit==5 || @fbminit==6 ||\ @fbminit==21) endparam float param fbmscale caption = "fBm Scale" default = 1.0 visible = @advt && @advfbm endparam complex param fbmoffset caption = "fBm Offset" default = (0,0) visible = @advt && @advfbm endparam float param fbmangle caption = "fBm Rotation" default = 0.0 visible = @advt && @advfbm endparam float param fbmstep caption = "fBm Scale Step" default = 0.5 visible = @advt && @advfbm endparam float param fbmastep caption = "fBm Rotation Step" default = 37.0 visible = @advt && @advfbm endparam param fbmoct caption = "fBm Octaves" default = 7 min = 1 visible = @advt && @advfbm endparam float param fbmpower caption = "fBm Exponent" default = 2.0 visible = @advt && @advfbm endparam float param fbm_limit caption = "fBm Limit" default = 0.0 visible = @advt && @advfbm endparam bool param fbm_sgn caption = "Soften Texture" default = true visible = @advt && @advfbm endparam Heading caption = "Decimal" visible = @advt && @decamt==0 Endheading Heading caption = "Decimal [active]" visible = @advt && @decamt !=0 Endheading param advd caption = "Decimal Texturing" default = false visible = @advt endparam float param decamt caption = "Decimal Tx Amount" default = 0.0 visible = @advt && @advd endparam param dec_init caption = "Decimal Initialisation" enum = "z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" default = 0 hint = "Determines which variable(s) initialize(s) the texture" visible = @advt && @advd endparam param ztyp2 caption = "Init z type" enum = "#z""Morph z""Trap z""Trap #z""Dist" default = 2 hint = "Determines which kind of 'z' variable is used in \ 'Decimal Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam func fntx4 caption = "Init Function 1" default = ident() hint = "Modifies the 1st variable defined in \ 'Decimal Initialization'" visible = @advt && @advd endfunc func fntx5 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Decimal Initialization'" visible = @advt && @advd endfunc param dec_type caption = "Decimal Type" enum = "Ceil" "Floor" "Trunc" "Round""All Functions" \ "-Round-Ceil""-Round*Ceil""+Round*Ceil""-Round-Trunc" \ "-Round*Trunc""+Round*Trunc""-Trunc-Floor""-Trunc*Floor" \ "+Trunc*Floor""-Trunc-Ceil""-Trunc*Ceil""+Trunc*Ceil" \ "-Ceil-Floor""-Ceil*Floor""+Ceil*Floor" visible = @advt && @advd endparam func fndec caption = "Type Function" default = atanh () hint = "Active when 'Decimal Type'='All Functions'" visible = @advt && @advd && @dec_type==4 endfunc complex param txia2 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txib2 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txic2 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam float param dec_scale caption = "Scale 1st Variable" default = 1.0 hint = "Changes the value of the 1st (or only) variable \ defined in 'Decimal Type'" visible = @advt && @advd endparam float param dec_scale2 caption = "Scale 2nd Variable" default = 1.0 hint = "Changes the value of the 2nd variable \ (when present) defined in 'Decimal Type'" visible = @advt && @advd && @dec_type > 4 endparam float param dectxt caption = "Decimal Depth" default = 1.0 hint = "Changes the amount and to some extent \ the pattern of the texture." visible = @advt && @advd endparam float param dec_limit caption = "Decimal Limit" default = 2.0 hint = "Limits the texture depth" min = 0.0 visible = @advt && @advd endparam complex param exad4 caption = "Frequency 1" default = (1.0,0.0) hint = "Changes the frequency of the texture elements \ based on the 1st (or only) variable present defined in \ 'Decimal Initialization'" visible = @advt && @advd endparam complex param exad5 caption = "Frequency 2" default = (1.0,0.0) hint = "Changes the frequency of the texture elements \ based on the 2nd variable (when present) defined in \ 'Decimal Initialization'" visible = @advt && @advd && !(@dec_init==0 ||@dec_init==5 || @dec_init==6) endparam float param dec_size caption = "Decimal Size" default = 1.0 visible = @advt && @advd endparam param dec_sgn caption = "Apply Decimal Sign?" default = true visible = @advt && @advd endparam Heading caption = "Popgnarl" visible = @advt && @gnarl_amt==0 Endheading Heading caption = "Popgnarl [active]" visible = @advt && @gnarl_amt !=0 Endheading param advpg caption = "Popgnarl Texturing" default = false visible = @advt endparam float param gnarl_amt caption = "Popgnarl Amount" default = 0.0 min = 0.0 visible = @advt && @advpg endparam param gnarl_init caption = "Popgnarl Init" enum = "z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y""pixel" default = 0 hint = "Determines which variable(s) initialize(s) the texture" visible = @advt && @advpg endparam param ztyp3 caption = "Choose z type" enum = "#z""Morph z""Trap z""Trap #z""Dist" default = 2 hint = "Determines which kind of 'z' variable is used in \ 'Popgnarl Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam func fntx6 caption = "Init Function 1" default = ident() hint = "Modifies the 1st variable defined in \ 'Popgnarl Initialization'" visible = @advt && @advpg endfunc func fntx7 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Popgnarl Initialization'" visible = @advt && @advpg endfunc complex param txia3 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txib3 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txic3 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param exad6 caption = "Frequency 1" default = (1.0,0.0) hint = "Changes the frequency of the texture by altering the value \ of the 1st (or only) variable defined in 'Popgnarl Initilaization'" visible = @advt && @advpg endparam complex param exad7 caption = "Frequency 2" default = (1.0,0.0) hint = "Changes the frequency of the texture by altering the value \ of the 2nd variable (when present) defined in 'Popgnarl Initilaization'" visible = @advt && @advpg && !(@gnarl_init==0 || @gnarl_init==5 || \ @gnarl_init==6 || @gnarl_init==21) endparam param gnarl_type caption= "Popgnarl Mode" enum ="real" "imag" "real+imag" "real*imag" "real-imag" \ "real/imag" "imag/real" "real^imag" "imag^real" \ "1/real" "1/imag" "angle" "magnitude" "arith. mean" \ "geom. mean" visible = @advt && @advpg endparam func fng caption = "Mode Function" default = abs() hint = "Acts on the variables in 'Popgnarl Mode'" visible = @advt && @advpg && @gnarl_type < 11 endfunc param gnarl_scaling caption = "Popgnarl Scaling" enum = "Ceil" "Floor" "Trunc" "Round""All Functions" \ "-Round-Ceil""-Round*Ceil""+Round*Ceil""-Round-Trunc" \ "-Round*Trunc""+Round*Trunc""-Trunc-Floor""-Trunc*Floor" \ "+Trunc*Floor""-Trunc-Ceil""-Trunc*Ceil""+Trunc*Ceil" \ "-Ceil-Floor""-Ceil*Floor""+Ceil*Floor" visible = @advt && @advpg endparam func fngnarl caption = "Scaling Function" default = atanh () visible = @advt && @advpg && @gnarl_scaling==4 endfunc float param gnarl_scale caption = "Scale 1st Variable" default = 1.0 hint = "Changes the value of the 1st (or only) variable \ defined in 'Popgnarl Scaling'" visible = @advt && @advpg endparam float param gnarl_scale2 caption = "Scale 2nd Variable" default = 1.0 hint = "Changes the value of the 2nd variable \ (when present)defined in 'Popgnarl Scaling'" visible = @advt && @advpg && @gnarl_scaling > 4 endparam param gnarl_form caption = "Popgnarl Formula" enum = "gnarl" "popcorn" "popsicle" "tannous" "narlog" visible = @advt && @advpg endparam float param gnarl_limit caption = "Popgnarl Limit" default = 1.0 hint = "Limits the texture depth" min = 0.0 visible = @advt && @advpg endparam float param gnarl_size caption = "Popgnarl Size" default = 1.0 visible = @advt && @advpg endparam int param gnarl_octaves caption = "Popgnarl Octaves" default = 5 min = 1 visible = @advt && @advpg endparam Heading caption = "Geometrix" visible = @advt && @trtxt==0 Endheading Heading caption = "Geometrix [active]" visible = @advt && @trtxt !=0 Endheading param advtr caption = "Geometrix Texturing" default = false visible = @advt endparam float param trtxt caption = "Geometrix Tx Amt" default = 0.0 visible = @advt && @advtr endparam param trinit caption = "Geometrix Init" enum = "z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" hint = "Determines which variable(s) initialize(s) the texture" default = 0 visible = @advt && @advtr endparam param ztyp5 caption = "Choose z type" enum = "#z""Morph z""Trap z""Trap #z""Dist" default = 2 hint = "Determines which kind of 'z' variable is used in \ 'Geometrix Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant. 'Dist' needs a high value and may require adjustment \ of the gradient. It tends to produce border and shading effects rather \ than textures per se." visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam func fntx10 caption = "Init Function 1" default = ident() hint = "Modifies the 1st variable defined in \ 'Geometrix Initialization'" visible = @advt && @advtr endfunc func fntx11 caption ="Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Geometrix Initialization'" visible = @advt && @advtr endfunc complex param trxia caption = "Pattern 1" default = (0.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxib caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxic caption = "Pattern 3" default = (1.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param exad10 caption = "Frequency 1" default = (1.0,0.0) hint = "Changes the pattern frequency by acting on the 1st (or only) \ variable defined in 'Geometrix Initialization'" visible = @advt && @advtr endparam complex param exad11 caption = "Frequency 2" default = (1.0,0.0) hint = "Changes the pattern frequency by acting on the 2nd variable \ (when present) defined in 'Geometrix Initialization'" visible = @advt && @advtr && !(@trinit==0 ||@trinit==5 || @trinit==6 ||\ @trinit==21) endparam float param exp caption = "Contrast" default = 0.6 visible = @advt && @advtr hint = "Higher values intensify the contrast between texture sections. If \ you find burned-out areas of texture try lowering this value" endparam float param scc caption = "Density" default = 1.0 hint = "Higher values create finer detail in the texture" visible = @advt && @advtr endparam float param trp1 caption = "Scale" default = 1 visible = @advt && @advtr hint = "Densest texture is at '1'. Try other values and increase the \ 'Density' value to achieve different texture patterns" endparam float param freq caption = "Definition 1" default = 10 visible = @advt && @advtr hint = "Works interactively with other 'Definition' params. Higher values \ yield more texture definition and/or complexity" endparam float param trp2 caption = "Definition 2" default = .7 hint = "Works interactively with other 'Definition' params. Lower values \ yield more texture definition" visible = @advt && @advtr endparam float param trp3 caption = "Definition 3" default = .7 hint = "Works interactively with other 'Definition' params. Higher values \ yield more texture definition" visible = @advt && @advtr endparam float param shad1 caption = "Shading 1" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt && @advtr endparam float param shad2 caption = "Shading 2" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt && @advtr endparam float param shad3 caption = "Shading 3" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt && @advtr endparam float param shad4 caption = "Shading 4" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt && @advtr endparam func fnzr caption = "Z function 1" default = ident() visible = @advt && @advtr endfunc func fnzi caption = "Z function 2" default = ident() visible = @advt && @advtr endfunc func fn1tx caption = "Real function" default = sqrt() visible = @advt && @advtr endfunc func fn2tx caption = "Imag function" default = ident() visible = @advt && @advtr endfunc func fn3tx caption = "Overall function" default = asin() visible = @advt && @advtr endfunc float param geo_limit caption = "Geometrix Limit" default = 0.0 hint = "Low values limit texture contrast. Zero is 'off'" visible = @advt && @advtr endparam bool param geo_sgn caption = "Soften Texture" default = false visible = @advt && @advtr endparam Heading caption = "Additional Texture" visible = @advt && @tp==0 Endheading Heading caption = "Additional Texture [active]" visible = @advt && @tp !=0 Endheading param advatx caption = "Additional Texturing" default = false visible = @advt endparam float param tp caption = "Add'l Tx Amount" hint = "'Blends' in texture" default = 0.0 visible = @advt && @advatx endparam param tt caption = "Add'l Tx Initialization" enum = "z""real+imag(z)""real-imag(z)""real*imag(z)""imag-real(z)" \ "x""y""x+y""x-y""y-x""x/y""x*y""y/x""x^y""y^x""x+z""x-z""z-x""x*z" \ "x/z""z/x""y+z""y-z""z-y""y*z""y/z""z/y" default = 0 hint = "Determines which variable(s) initialize(s) the texture" visible = @advt && @advatx endparam param ztyp caption = "Choose z type" enum = "#z""Morph z""Trap z""Trap #z""Dist" default = 2 hint = "Determines which kind of 'z' variable is used in \ 'Add'l Tx Initialization' (when z is present). Textures created \ with 'Trap z' conform to the element shapes and change with changes \ in the Morph values, 'Trap #z' textures conform to the element shapes \ but do change. 'Morph z' textures do not conform to element shapes and \ change with Morph values and '#z' textures do not conform and remain \ invariant, as do 'Dist' textures." visible = @advt && @advatx && (@tt < 5 || @tt > 14) endparam func fntx1 caption = "Init Function 1" default = ident() hint = "Modifies the 1st variable defined in \ 'Add'l Tx Initialization'" visible = @advt && @advatx endfunc func fntx2 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in\ 'Add'l Tx Initialization'" visible = @advt && @advatx endfunc func fntx3 caption = "Add'l Tx Function" default = trunc() visible = @advt && @advatx endfunc complex param txia1 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param txib1 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param txic1 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && @advatx && (@tt < 5 || @tt > 14) endparam complex param exad1 caption = "Frequency 1" default = (1.0,0.0) hint = "Determines the frequency of the pattern by acting on \ the 1st (or only) variable defined by 'Add'l Tx Initialization'" visible = @advt && @advatx endparam complex param exad2 caption = "Frequency 2" default = (1.0,0.0) hint = "Determines the frequency of the pattern by acting on \ the 2nd variable (when present) defined by 'Add'l Tx Initialization'" visible = @advt && @advatx && !(@tt==0 ||@tt==5 || @tt==6) endparam float param tv caption = "Scale 1" hint = "This and the next parameter work together \ to determine the scale of the texture" default = 10.0 visible = @advt && @advatx endparam float param ts caption = "Scale 2" default = 2.0 visible = @advt && @advatx endparam float param tc caption = "Density" hint = "Works similarly to 'Color Density'. Positive \ numbers use division. Negative numbers use modulus, \ producing a slightly different effect." default = 5.0 visible = @advt && @advatx endparam float param r caption = "Randomness" default = 0.0 visible=@advt && @advatx endparam bool param add_sgn caption = "Soften Texture" default = true visible = @advt && @advatx endparam param version caption = "Version" default = 1.0 visible = false endparam }