ldm-ThingamajigsII { ; Dennis Magar, September 28, 2001 ; A reworking of "Thingamajigs" with many added "Morph" ; parameters. The original "Thingamajigs" shapes can ; be reproduced by unchecking the "Morph -> Morph II" ; checkbox under "Morph Parameters". ; ; When "Morph II" is activated by default only ; "Morph function Z1" is active; you must set ; "Morph function Z2" & Z3 to some function other ; than "zero" to activate them when they appear ; as the appropriate Morph choice is selected. ; ; When "Morph II" is active there is also the possibility ; of choosing the variable type for Z1-Z3 in any of the ; three positions where that secondary Z expression appears, ; via the "Z1[2,3]Type" parameters. ; ; This version by Toby Marshall, 12 Apr. 2008 ; Multitudinous thanks to Dennis Magar for ; allowing me to publish it :-) ; version 1.4 ; version 1.5, added "Extra Textures". Thanks to ; Michèle Dessureault, Damien M. Jones and Andreas ; Lober for allowing their code to be used. ; version 1.6 ,added "Geometrix" texturing based on ; code by Dennis Magar. ; version 1.61, optimized the Morph code and added ; the "Morph -> Morph II" checkbox-- also a few ; extra enhancements to the fBm, Geometrix ; and Additional textures. ; version 1.7, added lots of params and functions that ; relate to how X and Y are determined and processed. ; Also added some params and a function that change ; how the gradient is mapped in the coloring modes. ; version 1.71, added some new bells and whistles to ; the fBm texture section. Check the hints... ; version 1.8, added 'First' and 'Last' trapping modes ; and a 'Width' parameter to vary the element widths. ; version 1.9, added "Average" and "Sum" trapping modes ; and an "Edge Definition" parameter. ; version 2.0, added "limited iterations"; many thanks ; to Damien M. Jones for letting me use this code ; of his. ; version 2.1, added a pattern repeat param to the ; limited iter code, adapted from Ron Barnett. ; version 2.2, added more limited iter code. ; version 2.3, rationalized and standardized ; limited iter code. ; init: int i = 0 int ti = 0 int sn = 1 if @m % 2 == 1 sn = -1 endif float vsa = sn*@sa/10 float vsb = @sb/10 float rsy = (real(@syc)-1) float isy = imag(@syc) float zz = 0 float md = 0 float dist = 1e20 if @disType == 3 || @disType == 4 || @disType == 5 dist = 0 endif float dave = 0 float dsum = 0 float distance = 0 float rn = abs(real(#random)*@r) float tmp = 0 float t2 = 0 float scv = 0 complex avz = (0,0) complex tz = (0,0) complex z = (0,0) float ta = @v1 float trl = trunc(@is) if trl == 0 trl = 1e20 endif float ico = @sk float icd = abs(ico)-trunc(abs(ico)) float icm = 0 if ico <= 0 icm = trunc(abs(ico)) ico = ico + 1e7 endif ico = ico - 1 float td = @tl w = 0 ww = 0 float dis = (@is - trunc(@is))*10 if dis == 0 dis = 1 endif float x = 0 float y = 0 float tst2 = 0 float tst4 = 0 complex fc = (0,0) float ang = 0 float a2 = 0 float g1 = 0 complex gc = (0,0) bool sol = false float a = 0 complex z1 = (0,0) 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) float t3 = 0 float tx = abs(@tpp) float a2a = 0 complex tzz = (0,0) float ct = abs(@tcc*1000) float tmp = 0 float rnn = real(#random) float texture = 0 complex p = (0,0) complex pfb = (0,0) float xx =0 float yy =0 float ddd = 0 float texture_rnd = 0 float texture_dec = 0 float texture_fbm = 0 float texture_gna = 0 float texture_tr = 0 float pd = 0 complex tz2 = (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 float za = 0 complex z_values[#maxiter+1] complex zzt = (0,0) complex xb = (0,0) complex nuvar = 0 bool trapped = false int ii = 0 bool trapped = false bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z 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 zc = @fn8(z1) float s1 = cabs(z1) if @follow == true if i >= @skip && i < @max if @ver < 2.3 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if(@trapalliterations == false || trapping) if (@m > 3 && @m < 12) || @m > 16 || @fl == 4 \ || @fl == 6 || @fl > 8 || @tt == 5 || @tt == 6 gc = @fn3(@fn1(@fn2(z1))) a2 = atan2(gc) g1 = cabs(gc) endif if @fl == 4 || @fl > 8 || @m == 20 \ || (@m > 7 && @m < 12) fc = @fn3(@fn1(real(z1))+@fn2(imag(z1))) tst4 = abs((cabs(fc)-g1)/s1) endif if @m == 17 || @m == 22 tst2 = abs((a2-s1)/g1) tst4 = abs((cabs(fc)-g1)/s1) endif float zr = real(zc) float zi = imag(zc) if @pc == true float d = sqrt(sqr(zr)+sqr(zi)) if @pcf == true a = atan2(zc) else if zr == 0 a = 0 else a = atan2(zi/zr) endif endif if a < 0 a = a + 2 * #pi endif zr = d zi = a endif if @fl == 3 || @fl == 7 || @tf == true \ || @m == 16 || @r < 0 ang = atan(zi/(zr+1e-20)) endif int ii = i if @is < 0 ii = -ii endif if (@fl == 0) ;a zz = abs(cabs(@fn3(abs(@fn1(zr)) \ +(@fn3(abs(@fn2(zi)))))+@vc)) elseif (@fl == 1) ;b zz = cabs(@fn8(@fn3(@fn1(real(z1))) \ +@vc+@fn3(flip(@fn2(imag(z1)))))) elseif (@fl == 2) ;c zz = abs(cabs(@fn3(@vc+abs(@fn1(zr)) \ + recip(@fn3(abs(@fn2(zi)))))))^.33 elseif (@fl == 3) ;d zz = real(@fn3(abs(@fn1(zr)) \ /(@fn3(abs(@fn2(zi)))))+@vc)*i*ang elseif (@fl == 4) ;e zz = abs(cabs(@fn8(fc+gc)/zc+@vc)) elseif (@fl == 5) ;f zz = abs(cabs(recip(@fn3(zc+@vc)))) elseif (@fl == 6) ;g zz = cabs(@fn3(@fn1(abs((g1-zr) \ /(g1-zi))+@vc))) elseif (@fl == 7) ;h zz =(cabs(@fn8(atan(@fn3(abs(@fn1(zr)+@vc) \ /(@fn3(abs(@fn2(zi^2))))))))*ang) elseif (@fl == 8) ;i zz = real(@fn3(abs(@fn1(zr) \ -@fn2(zi)+@vc)))^.33 elseif (@fl == 9) ;j zz = cabs(@fn8(abs(fc-gc+@vc)))^.33 elseif (@fl == 10) ;k zz = cabs(@fn8(@fn3(abs(@fn1(g1) \ +@vc - @fn2(a2))))) elseif (@fl == 11) ;l zz = abs(cabs(@fn8(fc-gc)/fc+@vc)) elseif (@fl == 12) ;m zz = cabs(@fn8(acos(@fn3(abs(@fn1(zr) \ +@vc - @fn2(g1)))))) endif if @m == 19 || @cm == 7 if (zz > md) && ii < trl md = zz endif endif if @disType == "Closest" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "First" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = zz * dis+ @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Last" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl && !trapped md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Average" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if @avgflv == true if @mode_change == 0 dsum = zz + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = zz +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = zz + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = cabs(log(dave)) endif endif if zz < @threshold && ii < trl ti = i+1 dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Sum" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Sum Outline" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif endif endif endif elseif @follow == false if @ver < 2.3 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if(@trapalliterations == false || trapping) if i >= @skip && i < @max if (@m > 3 && @m < 12) || @m > 16 || @fl == 4 \ || @fl == 6 || @fl > 8 || @tt == 5 || @tt == 6 gc = @fn3(@fn1(@fn2(z1))) a2 = atan2(gc) g1 = cabs(gc) endif if @fl == 4 || @fl > 8 || @m == 20 \ || (@m > 7 && @m < 12) fc = @fn3(@fn1(real(z1))+@fn2(imag(z1))) tst4 = abs((cabs(fc)-g1)/s1) endif if @m == 17 || @m == 22 tst2 = abs((a2-s1)/g1) tst4 = abs((cabs(fc)-g1)/s1) endif float zr = real(zc) float zi = imag(zc) if @pc == true float d = sqrt(sqr(zr)+sqr(zi)) if @pcf == true a = atan2(zc) else if zr == 0 a = 0 else a = atan2(zi/zr) endif endif if a < 0 a = a + 2 * #pi endif zr = d zi = a endif if @fl == 3 || @fl == 7 || @tf == true \ || @m == 16 || @r < 0 ang = atan(zi/(zr+1e-20)) endif int ii = i if @is < 0 ii = -ii endif if (@fl == 0) ;a zz = abs(cabs(@fn3(abs(@fn1(zr)) \ +(@fn3(abs(@fn2(zi)))))+@vc)) elseif (@fl == 1) ;b zz = cabs(@fn8(@fn3(@fn1(real(z1))) \ +@vc+@fn3(flip(@fn2(imag(z1)))))) elseif (@fl == 2) ;c zz = abs(cabs(@fn3(@vc+abs(@fn1(zr)) \ + recip(@fn3(abs(@fn2(zi)))))))^.33 elseif (@fl == 3) ;d zz = real(@fn3(abs(@fn1(zr)) \ /(@fn3(abs(@fn2(zi)))))+@vc)*i*ang elseif (@fl == 4) ;e zz = abs(cabs(@fn8(fc+gc)/zc+@vc)) elseif (@fl == 5) ;f zz = abs(cabs(recip(@fn3(zc+@vc)))) elseif (@fl == 6) ;g zz = cabs(@fn3(@fn1(abs((g1-zr) \ /(g1-zi))+@vc))) elseif (@fl == 7) ;h zz =(cabs(@fn8(atan(@fn3(abs(@fn1(zr)+@vc) \ /(@fn3(abs(@fn2(zi^2))))))))*ang) elseif (@fl == 8) ;i zz = real(@fn3(abs(@fn1(zr) \ -@fn2(zi)+@vc)))^.33 elseif (@fl == 9) ;j zz = cabs(@fn8(abs(fc-gc+@vc)))^.33 elseif (@fl == 10) ;k zz = cabs(@fn8(@fn3(abs(@fn1(g1) \ +@vc - @fn2(a2))))) elseif (@fl == 11) ;l zz = abs(cabs(@fn8(fc-gc)/fc+@vc)) elseif (@fl == 12) ;m zz = cabs(@fn8(acos(@fn3(abs(@fn1(zr) \ +@vc - @fn2(g1)))))) endif if @m == 19 || @cm == 7 if (zz > md) && ii < trl md = zz endif endif if @disType == "Closest" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "First" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = zz * dis+ @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Last" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl && !trapped md = zz ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl && !trapped ti = i dist = zz * dis + @edge/3 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Average" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if @avgflv == true if @mode_change == 0 dsum = zz + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = zz +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = zz + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = cabs(log(dave)) endif endif if zz < @threshold && ii < trl ti = i+1 dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = dave * dis + @edge/3 distance = dave tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Sum" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + zz tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif elseif @disType == "Sum Outline" if @m < 14 || @m > 22 ;1-E, O,P if @m < 2 y = zr elseif @m == 2 || @m == 3 y = zi elseif @m == 4 || @m == 5 y = g1^2 elseif @m == 6 || @m == 7 y = (a2-s1)/(g1*2) elseif @m == 12 || @m == 13 y = real(@tc)/2 elseif @m == 23 || @m == 24 y = s1 else y = g1-tst4 endif ;***************************** if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if isy > 0 if @wfl == false y = y*(y - isy)/(y + isy) else y = (y - isy)/(y + isy) endif elseif isy < 0 if @wfl == false y = y * (isy+1) else y = y + isy endif endif if rsy < -1 y = y + (rsy + 1)/2 endif if @sb < 0 y = y % vsb endif tmp = @ni*(real(@fn1(y+sn*@fn2(y)*-rsy))) if @sb > 0 tmp = tmp % vsb endif x = zz - tmp + vsa ;***************************** if @opxy == "X+Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "X-Y" xb = (@fn9((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3)) elseif @opxy == "Y-X" xb = (@fn9(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3) endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zzt = cabs(@ztypeFn2(zq-xb)) else zzt = cabs(@ztypeFn2(xb+zq)) endif if @m == 10 || @m == 11 xb = -xb endif if @so == true zz = cabs(atan(zzt)) elseif @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 zz = cabs(zzt) else zz = cabs(zzt)^.1 endif if zz < @threshold && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 14) ;F if zz < dist || zz < 1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 15) ;G if zz < dist && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 16) ;H if zz < ang && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 17) ;I if zz < tst2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 18) ;J if zz > g1 && dist > g1 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 19) ;K if zz < md && ii < trl md = zz ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 20) ;L if zz < tst4^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 21) ;M if zz > s1^2 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif elseif (@m == 22) ;N if tst2 > tst4 && ii < trl ti = i dist = distance * dis + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z avz = avz + z1 trapped = true endif endif endif endif endif endif i = i + 1 z_values[i] = #z final: if trapped if @cm == 0 && (@m < 14 || @m > 22) && @msk == 0 && @so == false dist = dist ^ .1 endif if @im == false && dist > @msk && !(@msk == 0) #solid = true sol = true endif if @im == true && dist <= @msk && !(@msk == 0) #solid = true sol = true endif if (ti > ico || ti < icm) && @co == true || sol == true #solid = true else tmp = dist scv = abs(@sc)*200 float caz = cabs(avz) / i if (@cm == 1) tmp = real(@colorFn((ti-@tz1)*@tz2)^@tz3) * .1 elseif (@cm == 2) tmp = real(@colorFn((ti-@tz1)*@tz2)^@tz3)%@mc*.8 elseif (@cm == 3) tmp = cabs(@colorFn((tz-@tz1)*@tz2)^@tz3) elseif (@cm == 4) tmp = abs(real(@colorFn((tz-@tz1)*@tz2)^@tz3)) elseif (@cm == 5) tmp = abs(imag(@colorFn((tz-@tz1)*@tz2)^@tz3)) elseif (@cm == 6) tmp = abs(atan2(@colorFn((tz-@tz1)*@tz2)^@tz3)/pi) elseif (@cm == 7) tmp = acosh(real(@colorFn((md-@tz1)*@tz2)^@tz3))/4 elseif (@cm == 8) tmp = real(@colorFn((caz-@tz1)*@tz2)^@tz3)*1.5 elseif (@cm == 9) tmp = real(@colorFn((ti-@tz1)*@tz2)^@tz3)%imag(@tc) elseif (@cm == 10) tmp = dist endif ; -------------------------------------------------------- if @tt > 6 && !(@v1 == 0) float pw = 1 float of = 1 if @r < 0 pw = @st else of = @st endif if @tt == 9 if @r < 0 z = @fn5(@fn7(tz+@tc)) else z = @fn7(tz+@tc) endif endif if @tt == 10 z = @fn7(atanh(zc+@tc)) ta = ta * .5 endif if @tt == 11 z = @fn7(atanh(z1+@tc)) ta = ta * .5 endif if @tt == 7 z = @fn7(tz+@tc) td = 100 scv = scv * 2 ta = ta * .2 pw = pw / 10 endif if @tt == 8 z = @fn7(avz+@tc) td = 100 scv = scv * 1.5 ta = ta * .2 pw = pw / 10 endif if @r < 0 float zr = abs(real(z)/scv) else float zr = cabs(@fn5(abs(real(z))/scv)) endif if @tf == false if @r < 0 float zi = imag(z)/scv else float zi = cabs(@fn5(imag(z)))/scv endif else if @r < 0 float zi = ang/scv else float zi = cabs(@fn5(ang))/scv endif endif float rz = floor(zr) float iz = floor(zi) float az = cabs(@fn3(@fn1(rz-1) + @fn2(iz-1))) float bz = cabs(@fn3(@fn1(rz-1) + @fn2(iz+1))) float cz = cabs(@fn3(@fn1(rz+1) + @fn2(iz-1))) float dz = cabs(@fn3(@fn1(rz+1) + @fn2(iz+1))) int i = 1 zz = 0 float h = 1 repeat h = h / 2 float fr = rz + h float fi = iz + h zz = (az + bz + cz + dz + of - 1) / 4 if (zr > fr) if (zi > fi) rz = fr iz = fi az = cabs(@fn6(zz))*td/25*@ff else rz = fr cz = cabs(@fn6(zz))*td/25 endif else if (zi > fi) iz = fi bz = cabs(@fn6(zz))*td/25 else dz = cabs(@fn6(zz))*td/25 endif endif i = i + 1 until i >= 20 if ti > ico || ti < icm t2 = 0 else t2 = ((zz-trunc(zz))+rn*i)^pw*ta*10 endif endif ; --------------------------------------------------------- if (@tt == 0) if @r < 0 t2 = cabs(@fn7(rn)) else t2 = ti*icd+rn endif endif if @tt > 0 && @tt < 7 && !(@v1 == 0) px = real(#pixel)-real(#center) \ +flip(imag(#pixel)-imag(#center)) xb = abs(@vc - tz)^.05 bx = 0 scl = abs(@sc) if @tt == 1 ; Patterns 1 bx = @fn6(tz)-xb*(@ff-1) elseif @tt == 2 ; Patterns 2 if @r < 0 scl = scl * 8 bx = @fn6(exp(px))-xb*(@ff-1) else scl = scl * 2 bx = @fn6(px)-xb*(@ff-1) endif elseif @tt == 3 ; Fuzz 1 if @r < 0 bx = @fn6(#pixel) else scl = scl * 10 bx = -abs(@fn6(acosh(sin(abs(#pixel*@ff*2.5))))) endif elseif @tt == 4 ; Fuzz 2 xb = abs(@fn6(acos(@vc - avz)))^.05 scl = scl * 10 bx = -xb-abs(acosh(sin(px)*@ff)) elseif @tt == 5 ; Fuzzy Patterns 1 scl = scl * 15 if @r < 0 scl = abs(@sc) bx = g1 + flip(a2);sailing else xb = abs(@fn6(@vc - tz))^.05 bx = -abs(acosh(sin(abs(xb))*@ff)) endif elseif @tt == 6 ; Fuzzy Patterns 2 xb = abs(@fn6(@vc - gc))^.05 scl = scl * 8 bx = -xb*@ff endif if ti > ico || ti < icm bx = (ti + flip(-ti))*icd endif w = acosh(bx*10^8)*scl if @tf == true ww = @fn5(w - round(w)) else ww = @fn5(acosh(w - round(w))) endif t2 = cabs(@fn7((ww+@tc+rn))^@st)*td t2 = (t2 - trunc(t2))*@v1 endif if tx > 0 if @ztyp == "#z" tzz = ((#z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Morph z" tzz = ((z1-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap z" tzz = ((tz-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap #z" tzz = ((tz2-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist" tzz = ((dist-@txia1)*@txib1)^@txic1 endif if @ttt == 0 tzz = @fntx2(@fntx1(tzz))^@exad1 elseif @ttt == 1 tzz = @fntx1(real(tzz))^@exad1+@fntx2(imag(tzz))^@exad2 elseif @ttt == 2 tzz = @fntx1(real(tzz))^@exad1-@fntx2(imag(tzz))^@exad2 elseif @ttt == 3 tzz = @fntx1(real(tzz))^@exad1*@fntx2(imag(tzz))^@exad2 elseif @ttt == 4 tzz = @fntx1(imag(tzz))^@exad1-@fntx2(real(tzz))^@exad2 elseif @ttt == 5 tzz = @fntx2(@fntx1(x))^@exad1 elseif @ttt == 6 tzz = @fntx2(@fntx1(y))^@exad1 elseif @ttt == 7 tzz = @fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @ttt == 8 tzz = @fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @ttt == 9 tzz = @fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @ttt == 10 tzz = @fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @tt == 11 tzz = @fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @ttt == 12 tzz = @fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @ttt == 13 tzz = @fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @ttt == 14 tzz = @fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @ttt == 15 tzz = @fntx1(x)^@exad1+@fntx2(tzz)^@exad2 elseif @ttt == 16 tzz = @fntx1(x)^@exad1-@fntx2(tzz)^@exad2 elseif @ttt == 17 tzz = @fntx2(tzz)^@exad2-@fntx1(x)^@exad1 elseif @ttt == 18 tzz = @fntx1(x)^@exad1*@fntx2(tzz)^@exad2 elseif @ttt == 19 tzz = @fntx1(x)^@exad1/@fntx2(tzz)^@exad2 elseif @ttt == 20 tzz = @fntx2(tzz)^@exad2/@fntx1(x)^@exad1 elseif @ttt == 21 tzz = @fntx1(y)^@exad1+@fntx2(tzz)^@exad2 elseif @ttt == 22 tzz = @fntx1(y)^@exad1-@fntx2(tzz)^@exad2 elseif @ttt == 23 tzz = @fntx2(tzz)^@exad2-@fntx1(y)^@exad1 elseif @ttt == 24 tzz = @fntx1(y)^@exad1*@fntx2(tzz)^@exad2 elseif @ttt == 25 tzz = @fntx1(y)^@exad1/@fntx2(tzz)^@exad2 elseif @ttt == 26 tzz = @fntx2(tzz)^@exad2/@fntx1(y)^@exad1 endif float zrr = real(tzz)%(@tv/10)/@ts*10 float zii = imag(tzz)%(@tv/10)/@ts*10 float rzz = floor(zrr) float izz = floor(zii) if @tcc > 0 float a1a = (rzz + izz - 2)/ct float a2a = (rzz + izz + 2)/ct else float a1a = (rzz + izz - 2)%ct float a2a = (rzz + izz + 2)%ct endif float a3a = a1a float a4a = a2a i = 0 float ez = 0 float ho = 1 repeat ho = ho / 2 float frr = rzz + ho float fii = izz + ho float za = (a1a + a2a + a3a + a4a) / 4 ez = ez + za if (zrr > frr) rzz = frr if (zii > fii) izz = fii a1a = ez else a2a = ez endif else if (zii > fii) izz = fii a3a = ez else a4a = ez endif endif i = i + 1 until i >= 20 t3 = abs((za-real(@fntx3(za)))) if @add_sgn == false t3 = (za-real(@fntx3(za))) endif endif ;Random complex hasard = #random texture_rnd = 10 * @rnd * (real(hasard)+ imag(hasard)) ; fBm if (@fbmtxt != 0) r1 = (0,1) ^ (@fbmangle / 90.0) r2 = (0,1) ^ (@fbmastep / 90.0) if @ztyp4 == "#z" tzz = ((#z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Morph z" tzz = ((z1-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap z" tzz = ((tz-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap #z" tzz = ((tz2-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist" tzz = ((dist-@txia4)*@txib4)^@txic4 endif if @fbminit == 0 pfb = (@fntx9(@fntx8(tzz))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 1 pfb = (@fntx8(real(tzz))^@exad8+@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 2 pfb = (@fntx8(real(tzz))^@exad8-@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 3 pfb = (@fntx8(real(tzz))^@exad8*@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 4 pfb = (@fntx8(imag(tzz))^@exad8-@fntx9(real(tzz))^@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(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 16 pfb = (@fntx8(x)^@exad8-@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 17 pfb = (@fntx9(tzz)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 18 pfb = (@fntx8(x)^@exad8*@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 19 pfb = (@fntx8(x)^@exad8/@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 20 pfb = (@fntx9(tzz)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 21 pfb = (@fntx8(y)^@exad8+@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 22 pfb = (@fntx8(y)^@exad8-@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 23 pfb = (@fntx9(tzz)^@exad9-@fntx8(y)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 24 pfb = (@fntx8(y)^@exad8*@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 25 pfb = (@fntx8(y)^@exad8/@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 26 pfb = (@fntx9(tzz)^@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 + @c) % 256 float by1 = (by0 + @d) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @a float ry1 = ry0 - @b 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 if @fbm_limit !=0 texture_fbm= texture_fbm % @fbm_limit endif if @fbm_sgn == true texture_fbm = abs(texture_fbm) endif endif ;decimal if @dectxt > 0 if @ztyp2 == "#z" tzz = ((#z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Morph z" tzz = ((z1-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap z" tzz = ((tz-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap #z" tzz = ((tz2-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist" tzz = ((dist-@txia2)*@txib2)^@txic2 endif if @dec_init == 0 pd = real(@fntx5(@fntx4(tzz))^@exad4) elseif @dec_init == 1 pd = real(@fntx4(real(tzz))^@exad4+@fntx5(imag(tzz))^@exad5) elseif @dec_init == 2 pd = real(@fntx4(real(tzz))^@exad4-@fntx5(imag(tzz))^@exad5) elseif @dec_init == 3 pd = real(@fntx4(real(tzz))^@exad4*@fntx5(imag(tzz))^@exad5) elseif @dec_init == 4 pd = real(@fntx4(imag(tzz))^@exad4-@fntx5(real(tzz))^@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(tzz)^@exad5) elseif @dec_init == 16 pd = real(@fntx4(x)^@exad4-@fntx5(tzz)^@exad5) elseif @dec_init == 17 pd = real(@fntx5(tzz)^@exad4-@fntx4(x)^@exad5) elseif @dec_init == 18 pd = real(@fntx4(x)^@exad4*@fntx5(tzz)^@exad5) elseif @dec_init == 19 pd = real(@fntx4(x)^@exad4/@fntx5(tzz)^@exad5) elseif @dec_init == 20 pd = real(@fntx5(tzz)^@exad4/@fntx4(x)^@exad5) elseif @dec_init == 21 pd = real(@fntx4(y)^@exad4+@fntx5(tzz)^@exad5) elseif @dec_init == 22 pd = real(@fntx4(y)^@exad4-@fntx5(tzz)^@exad5) elseif @dec_init == 23 pd = real(@fntx5(tzz)^@exad4-@fntx4(y)^@exad5) elseif @dec_init == 24 pd = real(@fntx4(y)^@exad4*@fntx5(tzz)^@exad5) elseif @dec_init == 25 pd = real(@fntx4(y)^@exad4/@fntx5(tzz)^@exad5) elseif @dec_init == 26 pd = real(@fntx5(tzz)^@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 if (@gnarl_amt != 0) if @ztyp3 == "#z" tzz = ((#z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Morph z" tzz = ((z1-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap z" tzz = ((tz-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap #z" tzz = ((tz2-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist" tzz = ((dist-@txia3)*@txib3)^@txic3 endif if @gnarl_init == 0 p = @fntx7(@fntx6(tzz))^@exad6 elseif @gnarl_init == 1 p = @fntx6(real(tzz))^@exad6+@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 2 p = @fntx6(real(tzz))^@exad6-@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 3 p = @fntx6(real(tzz))^@exad6*@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 4 p = @fntx6(imag(tzz))^@exad6-@fntx7(real(tzz))^@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(tzz)^@exad7 elseif @gnarl_init == 16 p = @fntx6(x)^@exad6-@fntx7(tzz)^@exad7 elseif @gnarl_init == 17 p = @fntx7(tzz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 18 p = @fntx6(x)^@exad6*@fntx7(tzz)^@exad7 elseif @gnarl_init == 19 p = @fntx6(x)^@exad6/@fntx7(tzz)^@exad7 elseif @gnarl_init == 20 p = @fntx7(tzz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 21 p = @fntx6(y)^@exad6+@fntx7(tzz)^@exad7 elseif @gnarl_init == 22 p = @fntx6(y)^@exad6-@fntx7(tzz)^@exad7 elseif @gnarl_init == 23 p = @fntx7(tzz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init == 24 p = @fntx6(y)^@exad6*@fntx7(tzz)^@exad7 elseif @gnarl_init == 25 p = @fntx6(y)^@exad6/@fntx7(tzz)^@exad7 elseif @gnarl_init == 26 p = @fntx7(tzz)^@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" tzz = ((#z-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Morph z" tzz = ((z1-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Trap z" tzz = ((tz-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Trap #z" tzz = ((tz2-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Dist" tzz = ((dist-@trxia)*@trxib)^@trxic endif if @trinit == 0 ptr = (@fntx11(@fntx10(tzz))^@exad10) elseif @trinit == 1 ptr = (@fntx10(real(tzz))^@exad10+@fntx11(imag(tzz))^@exad11) elseif @trinit == 2 ptr = (@fntx10(real(tzz))^@exad10-@fntx11(imag(tzz))^@exad11) elseif @trinit == 3 ptr = (@fntx10(real(tzz))^@exad10*@fntx11(imag(tzz))^@exad11) elseif @trinit == 4 ptr = (@fntx10(imag(tzz))^@exad10-@fntx11(real(tzz))^@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(tzz)^@exad11) elseif @trinit == 16 ptr = (@fntx10(x)^@exad10-@fntx11(tzz)^@exad11) elseif @trinit == 17 ptr = (@fntx11(tzz)^@exad11-@fntx10(x)^@exad10) elseif @trinit == 18 ptr = (@fntx10(x)^@exad10*@fntx11(tzz)^@exad11) elseif @trinit == 19 ptr = (@fntx10(x)^@exad10/@fntx11(tzz)^@exad11) elseif @trinit == 20 ptr = (@fntx11(tzz)^@exad11/@fntx10(x)^@exad10) elseif @trinit == 21 ptr = (@fntx10(y)^@exad10+@fntx11(tzz)^@exad11) elseif @trinit == 22 ptr = (@fntx10(y)^@exad10-@fntx11(tzz)^@exad11) elseif @trinit == 23 ptr = (@fntx11(tzz)^@exad11-@fntx10(y)^@exad10) elseif @trinit == 24 ptr = (@fntx10(y)^@exad10*@fntx11(tzz)^@exad11) elseif @trinit == 25 ptr = (@fntx10(y)^@exad10/@fntx11(tzz)^@exad11) elseif @trinit == 26 ptr = (@fntx11(tzz)^@exad11/@fntx10(y)^@exad10) endif endif complex z = z_values[#numiter-1] complex z = 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)^@exp*2)*@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 #index = cabs(sqr(@fn4(tmp))) + t2 + texture + (tx*@txamt/100)/10 + t3*\ (tx*@txamt/100)/10 + rnn*.1*@rr*(tx*@txamt/100)/10 endif else #solid = true endif default: title = "Thingamajigs II" param ver caption = "Version" default = 2.3 visible = false endparam param m caption = "Trap Mode" enum = "1" "2" "3" "4" "5" "6" "7" "8" \ "9" "A" "B" "C" "D" "E" "F" "G" \ "H" "I" "J" "K" "L" "M" "N" "O" "P" default = 0 endparam param fl caption = "'Flavor'" enum = "A" "B" "C" "D" "E" "F" "G" "H" \ "I" "J" "K" "L" "M" default = 0 endparam param pc caption = "Polar Coordinates" hint = "Rectangular Coordinates is the default." default = false endparam param pcf caption = "Polar Coord Fix" hint = "Thanks to Mark Hammond for bringing \ this to my attention." default = false visible = @pc == true endparam int param disType caption = "Trapping Type" enum = "Closest""First""Last""Average""Sum""Sum Outline" default = 0 endparam float param threshold caption = "Element Width" default = 1.0 hint = "Determines the width of the trapped elements \ using any trapping type except 'Closest'" visible = @disType != 0 endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @disType == 3 endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @disType == 3 endparam param cm caption = "Coloring Mode" enum = "Min Distance*" "Iteration" "Modulated Iter" \ "Magnitude" "Real" "Imaginary" "Angle" \ "Maximum Distance" "Average" "Test" "Min Distance" hint = "Changes the method of coloring. \ * Uses more efficient calculation than the \ original 'Min Distance'." default = 0 endparam param mc caption = "Mod. Iter Modulus" hint = "The modulus value for Modulated \ Iter coloring." default = 8.0 visible = @cm == 2 endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 10 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @cm > 0 && @cm < 10 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 10 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 10 endparam float param edge caption = "Edge Definiton" default = 0 hint = "Increasing this value gives the elements an edge \ similar to 'First' trapping type, decreasing it gives \ an effect similar to 'Last' trapping type. You will \ have to adjust your gradient" endparam param vc caption = "Fractal Offset" hint = "Changes the appearance of the fractal. \ Try values from -1.5 to 1.5." default = (0,0) endparam heading caption = "Texture" endheading param tt caption = "Texture Mode" enum = "Off" "Patterns 1-#z" "Patterns 2-#pixel" "Fuzz 1" \ "Fuzz 2" "Fuzzy Patterns 1" "Fuzzy Patterns 2" \ "Blocks 1" "Blocks 2" "Triangles 1" "Triangles 2" \ "Triangles 3" default = 0 endparam param tc caption = "Texture Offset" hint = "Changes the appearance of the texture. \ When 'Change Tx Style' is enabled, 0,0 \ here produces circular Patterns." default = (1,1) visible = !(@tt == 0) || @m == 12 || @m == 13 endparam float param v1 caption = "Texture Amount" default = 0.1 visible = !(@tt == 0) endparam param sc caption = "Texture Scale" hint = "Larger values decrease the scale of Patterns, \ and increase the scale of Triangles." default = 5.0 visible = !(@tt == 0) endparam param tl caption = "Texture Density" hint = "Works similarly to 'Color Density', but is \ applied only to textures." default = 5.0 visible = !(@tt == 0) endparam param st caption = "Texture Modifier" hint = "Try values of 0.1 to 5" default = 1.0 visible = !(@tt == 0) endparam param ff caption = "Fuzz Factor" hint = "Values above 1 give a less well-defined \ edge to Patterns. For Triangles, changes \ the 'Intensity'." default = 1.0 visible = !(@tt == 0) endparam param tf caption = "Change Tx Style" default = false visible = !(@tt == 0) endparam heading caption = "" endheading param sk caption = "Iteration Cutoff" hint = "No texture is drawn after positive integer \ values, or before negative integer values. \ Any Decimal portion 'blends' in iteration \ coloring." default = 0.0 visible = !(@tt == 0) endparam param co caption = "Solid Color @ IC" hint = "Turns on Solid Color at the 'Iteration \ Cutoff'." default = false visible = !(@sk == 0) endparam param sa caption = "Expand+|-Contract" hint = "Used with Trap Modes 1 through E. \ Useful Range is around -10 to 10" default = 0.0 visible = (@m < 14 || @m > 22) endparam param syc caption = "Warp Factor" hint = "Used with Trap Modes 1 through E. \ Useful Range is around -1.5 to 1.5 \ Try 'Eyedropper' at low magnifications." default = (0,0) visible = (@m < 14 || @m > 22) endparam param wfl caption = "Warp Set 2" hint = "Changes the way the Warp Factor works." default = false visible = !(@syc == (0,0)) && (@m < 14 || @m > 22) endparam param sb caption = "'Ripple' Control" hint = "Used with Trap Modes 1 through D. \ A few Trap Modes are unaffected by this \ parameter. Useful Range is -50 to 50" default = 0.0 visible = (@m < 14 || @m > 22) endparam param ni caption = "Multiplier" hint = "Used with Trap Modes 1 through E. \ Useful Range is about 1 to 9." default = 3.0 visible = (@m < 14 || @m > 22) endparam param is caption = "Iters to Skip" hint = "Trapping is discontinued after this \ (non-zero) number of iterations." default = 0.0 visible = @ver <= 1.3 endparam int param skip caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ starts. Can be used in conjunction with the next param \ to display any number of consecutive iters at any position." visible = @ver > 1.3 endparam int param max caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." visible = @ver > 1.3 endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam $ifdef VER40 heading text = "____________________________________________________________" visible = @trapalliterations == true endheading $endif param so caption = "Soften Color" hint = "Two different approaches to coloring \ Trap Modes 1-E." default = false visible = (@m < 14 || @m > 22) endparam param r caption = "Randomness" default = 0.0 endparam heading caption = "Masking" endheading param msk caption = "Mask Threshold" hint = "All values of trapped z1 that are less than \ this parameter are drawn in the Solid Color. \ For many formulas, the effective range \ is narrow - from 0.8 to 1.0 , but can be \ from .01 to about 2." default = 0.0 endparam param im caption = "Reverse Mask" hint = "Reverses the areas drawn in the Solid Color \ with those areas drawn normally." default = false visible = !(@msk == 0) endparam heading caption = "Functions" endheading func fn8 caption = "Initial function" default = abs() endfunc func fn1 caption = "Real function" default = ident() endfunc func fn2 caption = "Imag function" default = abs() endfunc func fn3 caption = "Overall function" default = abs() endfunc func fn9 caption = "Trap Mode 1-E Fn" default = sqr() visible = (@m < 14 || @m > 22) endfunc func fn7 caption = "Texture Fn 1" default = abs() visible = !(@tt == 0) endfunc func fn5 caption = "Texture Fn 2" default = ident() visible = !(@tt == 0) endfunc func fn6 caption = "Texture Fn 3" default = ident() visible = !(@tt == 0) endfunc func fn4 caption = "Final #Index Fn" default = asin() endfunc ;********************************************************** heading caption = "More Shaping Parameters" endheading bool param newStuff caption = "More Shaping Parameters" default = true endparam bool param type caption = "Accent" default = false hint = "Changes the shape of the elements" visible = @newStuff endparam int param ztype caption = "Mix Species" enum = "Normal""Modulus(z)""Atan2(z)""Real(z)""Imag(z)" default = 0 visible = @newStuff endparam func ztypeFn caption = "Mix Function 1" default = ident() hint = "Changes the shape of the elements" visible = @newStuff endfunc func ztypeFn2 caption = "Mix Function 2" default = ident() hint = "Changes the shape of the elements" visible = @newStuff endfunc complex param zamt1 caption = "Mix Offset" default = (0,0) visible = @newStuff endparam complex param zamt2 caption = "Mix Strength" default = (1,0) visible = @newStuff endparam complex param zamt3 caption = "Mix Power" default = (1,0) visible = @newStuff endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @newStuff endparam int param opxy caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "Changes the way X and Y combine to form Z" visible = @varType != "Modulus" && @newStuff endparam func varFn caption = "X/Y Function" default = ident() visible = @newStuff endfunc complex param xb1 caption = "X/Y Offset" default = (0,0) visible = @newStuff endparam complex param xb2 caption = "X/Y Strength" default = (1,0) visible = @newStuff endparam complex param xb3 caption = "X/Y Power" default = (1,0) visible = @newStuff endparam func nufnx caption = "X Function" default = ident () visible = @newStuff endfunc func nufny caption = "Y Function" default = ident () visible = @newStuff endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false visible = @newStuff endparam complex param px1 caption = "X Offset" default = (0,0) visible = @newStuff endparam complex param py1 caption = "Y Offset" default = (0,0) visible = @newStuff endparam complex param px2 caption = "X Strength" default = (1,0) visible = @newStuff endparam complex param py2 caption = "Y Strength" default = (1,0) visible = @newStuff endparam complex param px3 caption = "X Power" default = (1,0) visible = @newStuff endparam complex param py3 caption = "Y Power" default = (1,0) visible = @newStuff endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 hint = "These an extra set of X and Y values to the definition of Z whose \ strength and associated functions can be varied according to the \ parameters below" visible = @newStuff endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @newStuff endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam ; Morph Parameters-------------------------------------------------- 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 adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param tha2 caption = "Morph -> Morph II" default = true visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @adv && @change > 5 endfunc heading caption = "Extra Textures" visible = (@rnd == 0 && @fbmtxt == 0 && @decamt == 0 && @tpp == 0 && @gnarl_amt == 0) endheading heading caption = "Extra Textures [active]" visible = (@rnd != 0 || @fbmtxt != 0 || @decamt != 0 || @tpp != 0 || @gnarl_amt != 0) endheading param advt caption = "Extra Texture Params" default = true 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 rnd 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 = true 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. '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 && @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 a caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param b caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param c caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param d caption = "Distribution 4" default = 1 visible = @advt && @advfbm endparam complex param txia4 caption = "Pattern 1" default = (0.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txib4 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txic4 caption = "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. '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 && @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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txib2 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txic2 caption = "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. '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 && @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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txib3 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txic3 caption = "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 = true visible = @advt endparam float param trtxt caption = "Geometrix Tx Amt" default = 0.0 visible = @advt && @advtr endparam float param exp caption = "Contrast" default = 1 visible = @advt && @advtr hint = "Higher values intensify the contrast between texture sections. If \ you have burned-out texture areas try lowering this value" 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 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. Lower 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 && @tpp == 0 endheading heading caption = "Additional Texture [active]" visible = @advt && @tpp != 0 endheading param advatx caption = "Additional Texturing" default = false visible = @advt endparam float param tpp caption = "Add'l Tx Amount" hint = "'Blends' in texture" default = 0.0 visible = @advt && @advatx endparam param ttt 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. '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 && @advatx && (@ttt < 5 || @ttt > 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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 14) endparam complex param txib1 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 14) endparam complex param txic1 caption = "Pattern 3" default = (1.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 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 && !(@ttt == 0 ||@ttt == 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 tcc 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 rr caption = "Randomness" default = 0.0 visible = @advt && @advatx endparam bool param add_sgn caption = "Soften Texture" default = true visible = @advt && @advatx endparam }*************************************************************** ldm-DoodadsII { ; Dennis Magar, September 16, 2002 ; A reworking of "Doodads" with many added "Morph" ; parameters. The original "Doodads" shapes can ; be reproduced by unchecking the box "Morph -> ; "Morph II" under the heading "Morph Parameters". ; ; When "Morph II" is activated by default only ; "Morph function Z1" is active; you must set ; "Morph function Z2" & 3 to some function other than ; "zero" to activate them when they appear as the ; appropriate Morph choice is selected. ; ; When "Morph II" is active there is also the possibility ; of choosing the variable type for Z1-Z3 in any of the ; three positions where that secondary Z expression appears, ; via the "Z1[2,3]Type" parameters. ; ; Morph Progressive Parameters: The values of these params ; increment at every iteration, either linearly or in a ; few non-linear ways. Checking the bool param box for ; a given param activates that param, revealing a field ; in which you can enter the amount that you want that param ; to change by at every iteration. If you choose one of the ; non-linear methods that value will be altered at each ; iteration by the "non-linear amount" chosen in one of several ; ways. ; ; If you uncheck the associated bool box the param becomes ; inactive; this gives you an easy way to check the effect without ; losing the value. When any progressive param is active the heading ; changes to reflect this. ; ; Since the effect of the change is cumulative, building at each ; iteration, a little goes a long way. Small values are usually ; most effective. ; ; Toby Marshall, 12 Apr. 2008 ; Multitudinous thanks to Dennis Magar for ; allowing me to publish it :-) ; version 1.61, "Skip Iter" params modified. ; version 1.7, some params added. ; version 1.8, converted oldz, added one "Triangle Mode" ; choice. ; version 1.9, added "Extra Textures". Thanks to ; Michèle Dessureault, Damien M. Jones and Andreas ; Lober for allowing their code to be used. ; version 2.0, added a new texture "Geometrix", ; based on code by Dennis Magar. ; version 2.01, optimized some code. Also moved the Morph ; functions under the Morph parameter heading instead ; of under "Functions". ; version 2.1, added some new shaping parameters. ; version 2.11, reorganized interface a bit ; version 2.2, added lots of params and functions that ; relate to how X and Y are determined and processed. ; Also added some params and a function that change ; how the gradient is mapped in the coloring modes. ; version 2.3, corrected one parameter--compatibility OK. ; version 2.31, added four functions to the fBm texture. ; Check the hints. ; version 2.32, added a couple more gizmos to fBm texturing. ; version 2.33, added "Trap Type" and "Element Width" params. ; Thanks to Damien M. Jones and Mark Townsend for this idea. ; version 2.34, added progressive Morph params. ; version 2.35, added "edge definition" param and three new ; trapping modes. ; version 2.36, added "limited iterations"; many thanks to ; Damien M. Jones for allowing me to use this code of his. ; version 2.37, added pattern repeat param to limited iters, ; adapted from Ron Barnett. ; version 2.38, rationalized and standardized limited ; iter code init: float zr = 0 float zi = 0 float zz = 0 float a2 = 0 float za = 0 float t2 = 1 int ti = 0 int i = 0 float dist = 1e20 if @traptype == "Farthest" dist = 0 endif float x = 0 float y = 0 float texFin = 0 float s1 = 0 float g1 = 0 float rn = abs(@r*real(#random)) float ff = 0 complex tz = (0,0) complex gc = (0,0) complex pt1 = (0,0) int i = 0 bool sol = false int sn = 1 if @m % 2 == 1 sn = -1 endif float vsa = sn*@sa/10 float vsb = abs(@sb/10) float ico = @sk float icd = abs(ico)-trunc(abs(ico)) float icm = 0 if ico <= 0 icm = trunc(abs(ico)) ico = ico + 1e7 endif ico = ico - 1 float fmr = real(@fm) float fmi = imag(@fm) float zr1 = 0 float zi1 = 0 complex fc = (0,0) 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) complex z_values[#maxiter + 1] z_values[0] = #z float rnn = real(#random) float t3 = 0 float tx = abs(@tpp) complex tzz = (0,0) float ct = abs(@tcc*1000) float tmp = 0 float texture=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 complex tz2 = (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 float zaa = 0 complex xb = (0,0) bool trapped = false tw = @tw tw2= @tw2 tw3 = @tw3 tw4 = @tw4 tw5 = @tw5 tw6 = @tw6 exp1 = @exp1 exp2 = @exp2 exp3 = @exp3 exp4 = @exp4 exp5 = @exp5 exp6 = @exp6 float dave = 0 float dsum = 0 float distance = 0 bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z 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 zc = @fn4(z1) zr = real(zc) zi = imag(zc) if @ver == 1.5 if i >= real(@skip) && i <= imag(@skip) if (@m > 3 && @m < 26) || @mr == 5 || @mr == 8 \ || @mr == 9 || @mr == 12 || @ptt == 5 || @ptt == 9 gc = @fn3(@fn1(@fn2(z1))) g1 = cabs(gc) endif if @m == 7 || @mr == 5 a2 = atan2(gc) endif if @m == 8 || @m == 9 || @m == 12 || @m == 13 \ || @m > 19 || @mr == 9 || @mr == 11 s1 = cabs(zc) endif if @m == 12 || @m == 13 || @m == 22 || @m == 23 \ || @m == 26 || @m == 27 || @mr == 10 || @mr == 12 ff = cabs(@fn3(@fn1(real(z1))+@fn2(imag(z1)))) endif if @m >27 fc = @fn3(@fn1(real(z1))+flip(@fn2(imag(z1)))) endif if @mr < 5 zr1 = real(@fn1(zr*fmr)) zi1 = real(@fn2(zi*fmi)) endif if @mrf == true zr1 = abs(zr1) zi1 = abs(zi1) endif if @mr == 0 ;a zz = real(@fn3(zr1*zi1)) elseif @mr == 1 ;b zz = real(@fn3(zr1+zi1)) elseif @mr == 2 ;c zz = real(@fn3(zr1/zi1)) elseif @mr == 3 ;d zz = real(@fn3(zi1^zr1)) elseif @mr == 4 ;e zz = real(@fn3(zr1^zi1)) elseif @mr == 5 ;f zz = real(@fn4(@fn3(abs(@fn1(g1*fmr)-@fn2(a2*fmi))))) elseif @mr == 6 ;g if @mrf == false zz = real(atan(@fn3(@fn1(zr*fmr)) \ /(@fn3(@fn2(zi^2*fmi))))) else zz = real(atan(@fn3(abs(@fn1(zr*fmr)) \ /(@fn3(abs(@fn2(zi^2*fmi))))))) endif elseif @mr == 7 ;h zz = cabs(recip(@fn3(@fn2(@fn1(zc*fmr*2))))) elseif @mr == 8 ;i zz = real(@fn3(@fn1(abs((g1-zr)*fmr/(g1-zi)*fmi))))^.1 elseif @mr == 9 ;j float temp = abs((g1-zr)*fmr/(g1+1e-20)) zz = real(@fn3(abs(@fn1(temp)-@fn2(s1*fmi)))) elseif @mr == 10 ;k zz = cabs(@fn4(ff*fmr-gc*fmi))^2 elseif @mr == 11 ;l zz = cabs(@fn4(s1-1)*fmr/(s1+1)*fmi) elseif @mr == 12 ;m zz = cabs(@fn4(g1)*fmr/(ff)*fmi) endif if @m < 2 ;1,2 y = zr elseif @m == 2 || @m == 3 ;3,4 if @tb < 0 y = zr-zi else y = zr*3-zi endif elseif @m == 4 ;5 y = abs(g1^3/(zr-g1)) elseif @m == 5 ;6 y = zr/2+g1 elseif @m == 6 ;7 y = g1^3 elseif @m == 7 ;8 y = g1^2/a2 elseif @m == 8 || @m == 9 ;9,A y = zr*s1/zi elseif @m == 10 || @m == 11 ;B,C y = g1^2 elseif @m == 12 || @m == 13 ;D,E y = g1-abs((ff-g1)/s1) elseif @m == 14 || @m == 15 ;F,G y = g1-zr/g1 elseif @m == 16 || @m == 17 ;H,I y = g1-abs(zr/g1) elseif @m == 18 || @m == 19 ;J,K y = g1 elseif @m == 20 || @m == 21 ;L,M y = s1*.1/g1^2 elseif @m == 22 || @m == 23 ;N,O y = g1^2-abs((ff-g1)/s1) elseif @m == 24 || @m == 25 ;P,Q y = g1^2-s1 elseif @m == 26 || @m == 27 ;R,S y = ff else ;T,U y = imag(fc) endif y = real(@fn9(y - @tad/10)) if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if @sb > 0 y = y % vsb endif if @m % 2 == 0 x = zz - @mul*(real(abs(@fn1(y - abs(@fn2(y)))))) else if @mc < 0 x = zz - @mul*(real(@fn1(y + @fn2(y))))/2 else x = zz - @mul*y endif endif if @sb < 0 x = x % vsb endif x = x + vsa if @nuflav == true if @nuflav2 == true if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(@nufny((flip(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif else if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @nuflav2 == true if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(@nufny((flip(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif else if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif complex zq = (0,0) if @ver > 2.2 if @ztype == "Normal" zq = @ztypeFn(z1) elseif @ztype == "Modulus(z)" zq = @ztypeFn(|z1|) elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1)) elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1)) elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1)) endif else if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif endif if @type == false zz = cabs(@ztypeFn2(((zq-@zamt1)*@zamt2)^@zamt3)- xb) else zz = cabs(xb + @ztypeFn2(((zq-@zamt1)*@zamt2)^@zamt3)) endif if zz < dist ti = i dist = zz tz = z1 tz2 = #z endif endif else if (@m > 3 && @m < 26) || @mr == 5 || @mr == 8 \ || @mr == 9 || @mr == 12 || @ptt == 5 || @ptt == 9 gc = @fn3(@fn1(@fn2(z1))) g1 = cabs(gc) endif if @m == 7 || @mr == 5 a2 = atan2(gc) endif if @m == 8 || @m == 9 || @m == 12 || @m == 13 \ || @m > 19 || @mr == 9 || @mr == 11 s1 = cabs(zc) endif if @m == 12 || @m == 13 || @m == 22 || @m == 23 \ || @m == 26 || @m == 27 || @mr == 10 || @mr == 12 ff = cabs(@fn3(@fn1(real(z1))+@fn2(imag(z1)))) endif if @m >27 fc = @fn3(@fn1(real(z1))+flip(@fn2(imag(z1)))) endif if @mr < 5 zr1 = real(@fn1(zr*fmr)) zi1 = real(@fn2(zi*fmi)) endif if @mrf == true zr1 = abs(zr1) zi1 = abs(zi1) endif if @mr == 0 ;a zz = real(@fn3(zr1*zi1)) elseif @mr == 1 ;b zz = real(@fn3(zr1+zi1)) elseif @mr == 2 ;c zz = real(@fn3(zr1/zi1)) elseif @mr == 3 ;d zz = real(@fn3(zi1^zr1)) elseif @mr == 4 ;e zz = real(@fn3(zr1^zi1)) elseif @mr == 5 ;f zz = real(@fn4(@fn3(abs(@fn1(g1*fmr)-@fn2(a2*fmi))))) elseif @mr == 6 ;g if @mrf == false zz = real(atan(@fn3(@fn1(zr*fmr)) \ /(@fn3(@fn2(zi^2*fmi))))) else zz = real(atan(@fn3(abs(@fn1(zr*fmr)) \ /(@fn3(abs(@fn2(zi^2*fmi))))))) endif elseif @mr == 7 ;h zz = cabs(recip(@fn3(@fn2(@fn1(zc*fmr*2))))) elseif @mr == 8 ;i zz = real(@fn3(@fn1(abs((g1-zr)*fmr/(g1-zi)*fmi))))^.1 elseif @mr == 9 ;j float temp = abs((g1-zr)*fmr/(g1+1e-20)) zz = real(@fn3(abs(@fn1(temp)-@fn2(s1*fmi)))) elseif @mr == 10 ;k zz = cabs(@fn4(ff*fmr-gc*fmi))^2 elseif @mr == 11 ;l zz = cabs(@fn4(s1-1)*fmr/(s1+1)*fmi) elseif @mr == 12 ;m zz = cabs(@fn4(g1)*fmr/(ff)*fmi) endif if @m < 2 ;1,2 y = zr elseif @m == 2 || @m == 3 ;3,4 if @tb < 0 y = zr-zi else y = zr*3-zi endif elseif @m == 4 ;5 y = abs(g1^3/(zr-g1)) elseif @m == 5 ;6 y = zr/2+g1 elseif @m == 6 ;7 y = g1^3 elseif @m == 7 ;8 y = g1^2/a2 elseif @m == 8 || @m == 9 ;9,A y = zr*s1/zi elseif @m == 10 || @m == 11 ;B,C y = g1^2 elseif @m == 12 || @m == 13 ;D,E y = g1-abs((ff-g1)/s1) elseif @m == 14 || @m == 15 ;F,G y = g1-zr/g1 elseif @m == 16 || @m == 17 ;H,I y = g1-abs(zr/g1) elseif @m == 18 || @m == 19 ;J,K y = g1 elseif @m == 20 || @m == 21 ;L,M y = s1*.1/g1^2 elseif @m == 22 || @m == 23 ;N,O y = g1^2-abs((ff-g1)/s1) elseif @m == 24 || @m == 25 ;P,Q y = g1^2-s1 elseif @m == 26 || @m == 27 ;R,S y = ff else ;T,U y = imag(fc) endif y = real(@fn9(y - @tad/10)) if @sa < 0 && sn == -1 y = y * (-@sa+5)/5 vsa = sn*@sa/20 endif if @sb > 0 y = y % vsb endif if @m % 2 == 0 x = zz - @mul*(real(abs(@fn1(y - abs(@fn2(y)))))) else if @mc < 0 x = zz - @mul*(real(@fn1(y + @fn2(y))))/2 else x = zz - @mul*y endif endif if @sb < 0 x = x % vsb endif x = x + vsa if @nuflav == true if @nuflav2 == true if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(@nufny((flip(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif else if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @nuflav2 == true if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ @nufny(flip(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(@nufny((flip(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif else if @opxy == "X+Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 + \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" xb = (@fn8((@nufnx(x-@px1)*@px2)^@px3 - \ flip(@nufny(y-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" xb = (@fn8(flip((@nufny(y-@py1)*@py2)^@py3) - \ @nufnx(x-@px1)*@px2)^@px3)^@pwr endif endif if @varType == "Normal" xb = @varFn((xb-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" xb = @varFn((|xb|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" xb = @varFn(atan2(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Real" xb = @varFn(real(xb-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" xb = @varFn(imag(xb-@xb1)*@xb2)^@xb3 endif if @opadd == "None" xb = xb elseif @opadd == "+(X+Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" xb = xb + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" xb = xb - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" xb = xb + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" xb = xb - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @type == false zz = cabs(@ztypeFn2(((zq-@zamt1)*@zamt2)^@zamt3)- xb) else zz = cabs(xb + @ztypeFn2(((zq-@zamt1)*@zamt2)^@zamt3)) endif if @avgflv == true if @mode_change == 0 dsum = zz + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = zz +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = zz + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(zz +(dsum))) elseif @mode_change == 2 dsum = cabs(log(zz +(dsum))) elseif @mode_change == 3 dsum = |log(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(zz +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(zz +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(zz +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(zz +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(zz +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(zz +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(zz +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(zz +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(zz +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(zz +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(zz +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(zz +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(zz +(dsum))) dave = cabs(log(dave)) endif endif if @follow == true if i >= @skip1 && i < @skip2 if @ver < 2.38 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @traptype == "Closest" if zz < dist ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "First" if zz < @threshold ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Last" if zz < @threshold && !trapped ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Average" if zz < @threshold ti = i dist = dave + @edge/3 distance = dave tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Farthest" if zz > dist && zz < @threshold ti = i dist = zz + @edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Sum" if zz < @threshold ti = i dist = distance + @edge/3 distance = distance + zz tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Sum Outline" if zz < @threshold ti = i dist = distance + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z trapped = true endif endif endif endif elseif @follow == false if @ver < 2.38 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if i >= @skip1 && i < @skip2 if @traptype == "Closest" if zz < dist ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "First" if zz < @threshold ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Last" if zz < @threshold && !trapped ti = i dist = zz+@edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Average" if zz < @threshold ti = i dist = dave + @edge/3 distance = dave tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Farthest" if zz > dist && zz < @threshold ti = i dist = zz + @edge/3 tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Sum" if zz < @threshold ti = i dist = distance + @edge/3 distance = distance + zz tz = z1 tz2 = #z trapped = true endif elseif @traptype == "Sum Outline" if zz < @threshold ti = i dist = distance + @edge/3 distance = distance + dist + .1 tz = z1 tz2 = #z trapped = true endif endif endif endif endif endif i = i + 1 if @tm == 11 z_values[i] = z1 else z_values[i] = #z endif 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: if trapped if @im == false && dist > @msk && !(@msk == 0) #solid = true sol = true endif if @im == true && dist <= @msk && !(@msk == 0) #solid = true sol = true endif if @ta > 0 && @tm > 0 && ti >= icm && ti <= ico && @co == true #solid = true sol = true endif if @pta > 0 && @ptt > 0 && (ti > ico || ti < icm) && @co == true #solid = true sol = true endif if sol == false dist = dist ^ .1 complex pt3 = (0,0) ;********************************************** if @cm == 1 || @cm == 8 \ || (!(@ta == 0) && !(@tm == 0))\ || (!(@pta == 0) && @ptt > 8) \ || ((@ptt == 0) && @cm == 9) float rz = 0 float iz = 0 float fr = 0 float fi = 0 float a1 = 0 float a3 = 0 float a4 = 0 float h = 1 float ez = 0 float rsc = real(@nsc) if @ur == false float isc = imag(@nsc) else float isc = rsc endif if @r < 0 pt1 = abs(@fn7(tz))^(@tp*.05) else pt1 = abs(@fn7(tz^(@tp*.05))) endif pt2 = (0,0) pt2 = -pt1-abs(acosh(pt2)) w = acosh(pt2*10^(8))*10 pt3 = (acosh(w - round(w))) if !(@cm == 8) if @tm == 0 if @pct == false zr = real(@fn5(pt3)/rsc) zi = imag(@fn6(w)/isc) else zr = cabs(@fn5(pt3)/rsc*.5) zi = cabs(@fn6(pt3)/isc*2) endif elseif @tm == 1 if @pct == false zr = cabs(@fn5(dist)/rsc) zi = cabs(@fn6(w)/isc*2) else zr = real(@fn5(pt3)/rsc) zi = imag(@fn6(tz)/isc) endif elseif @tm == 2 if @pct == false zr = cabs(@fn5(dist)/rsc) zi = imag(@fn6(w)/isc) else zr = real(@fn5(tz)/rsc) zi = imag(@fn6(pt3)/isc) endif elseif @tm == 3 if @pct == false zr = cabs(@fn5(dist)/rsc) zi = real(@fn6(pt3)/isc) else zr = cabs(@fn5(dist)/rsc) zi = cabs(@fn6(pt3)/isc) endif elseif @tm == 4 if @pct == false zr = real(@fn5(pt2)/rsc*.5) zi = imag(@fn6(w)/isc) else zr = cabs(@fn5(pt2)/rsc*.5) zi = imag(@fn6(w)/isc) endif elseif @tm == 5 if @pct == false zr = real(@fn5(tz)/rsc) zi = imag(@fn6(w)/isc) else zr = imag(@fn5(tz)/rsc) zi = real(@fn6(w)/isc) endif elseif @tm == 6 if @pct == false zr = real(@fn5(tz)/rsc) zi = cabs(@fn6(pt3)/isc) else zr = cabs(@fn5(pt1)/rsc) zi = cabs(@fn6(w)/isc) endif elseif @tm == 7 if @pct == false zr = real(@fn5(pt3)/rsc/10) zi = imag(@fn6(pt2)/isc*.5) else zr = cabs(@fn5(pt3)/rsc/50) zi = imag(@fn6(pt2)/isc*1.3) endif elseif @tm == 8 ww = @fn7(pt2*100) if @pct == false zr = imag(@fn5(pt2)/rsc*10) zi = imag(@fn6(ww)/isc*5) else zr = cabs(@fn5(dist)/rsc) zi = imag(@fn6(ww)/isc) endif elseif @tm == 9 if @pct == false zr = cabs(@fn5(dist)/rsc*5) zi = real(@fn6(tz)/isc*5) else zr = cabs(@fn5(dist)/rsc*5) zi = imag(@fn6(tz)/isc*5) endif elseif @tm == 10 complex z_values_ti_1 if ti > 0 z_values_ti_1 = z_values[ti - 1] else z_values_ti_1 = (0, 0) endif if @pct == false zr = real(@fn5((z_values[ti]-z_values_ti_1)/rsc)) zi = imag(@fn6((z_values[ti]+z_values_ti_1)/isc*10)) else zr = real(@fn5(tz)/rsc) zi = imag(@fn6(tz)/isc) endif elseif @tm == 11 if ti > 0 z_values_ti_1 = z_values[ti - 1] else z_values_ti_1 = (0, 0) endif if @pct == false zr = real(@fn5((z_values[ti]-z_values_ti_1)/rsc)) zi = imag(@fn6((z_values[ti]+z_values_ti_1)/isc*10)) else zr = real(@fn5(tz)/rsc) zi = imag(@fn6(tz)/isc) endif endif zr = zr + rn/10 zi = zi - rn/10 rz = floor(zr) iz = floor(zi) a1 = cabs(@fn3(@fn1(rz-1) + @fn2(iz-1))) a1 = (a1 % (2^@f))/2^(@f-1) * (@tb%2) a2 = cabs(@fn3(@fn1(rz-1) + @fn2(iz+1))) a2 = (a2 % (2^@f))/2^(@f-1) * trunc(@tb%4/2) a3 = cabs(@fn3(@fn1(rz+1) + @fn2(iz-1))) a3 = (a3 % (2^@f))/2^(@f-1) * trunc(@tb%8/4) a4 = cabs(@fn3(@fn1(rz+1) + @fn2(iz+1))) a4 = (a4 % (2^@f))/2^(@f-1) * trunc(@tb%16/8) i = 1 repeat h = h / 2 fr = rz + h fi = iz + h za = (a1 + a2 + a3 + a4) / 4 ez = ez * h + 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 i = i + 1 until i >= abs(@step) if ti >= icm && ti > ico || ti < icm || @sk == 0 za = (za-trunc(za))^@v2 else za = 0 endif endif endif ; --------------------------------------------------------- ; ********************************************************* if !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) float df = 1 pt3 = @pto float scale = abs(@psc)*.2 if @ptt == 1 ; Patterns 1 pt1 = abs(@fn7(tz))^(@tp*.5) scale = scale * 15 if @pff < 5 pt3 = -abs(@fn6(acosh(pt1)*(@pff+.0001))) else pt3 = -abs(@fn6(acosh(pt1*@pff))) endif elseif @ptt == 2 ; Patterns 2 pt1 = abs(@pto-sqr(@fn7(tz^(@tp*.5)))/cabs(@pto+(.0001,.0001))) scale = scale * 20 pt3 = -abs(@fn6(acosh(pt1)*(@pff+.0001))) elseif @ptt == 3 ; Patterns 3 scale=scale*15, pt1 = abs(@fn7(tz))^(@tp*.5) pt3 = -pt1*(@pff+.0001)-abs(acosh(@fn6(pt3+2))) elseif @ptt == 4 ; Patterns 4 scale=scale*20, pt1 = abs(@fn7(tz))^(@tp*.5) pt3 = -pt1*(@pff-.25)-abs(acos(@fn6(pt1))) elseif @ptt == 5 ; Patterns 5 #z pt1 = abs(@fn7(@pto-gc))^(@tp*.05) scale = scale * 25 pt3 = -abs(@fn6(pt1))*(@pff+.0001) elseif @ptt == 6 ; Patterns 6 #pixel PixDis = real(#pixel)-real(#center) \ +flip(imag(#pixel)-imag(#center)) pt1 = abs(@fn7(tz))^(@tp*.05) scale = scale * 7.5 pt3 = @fn6(PixDis)-pt1*(@pff-1) elseif @ptt == 7 ; Fuzz 1 pt1 = abs(@fn7(tz))^(@tp*.05) scale = scale * 50 pt3 = -abs(@fn6(acosh(sin(#pixel*(@pff+1)))))-pt1 elseif @ptt == 8 ; Fuzz 2 PixDis = real(#pixel)-real(#center) \ +flip(imag(#pixel)-imag(#center)) pt1 = abs(@fn7(pt3-tz))^(@tp*.05) scale = scale * 50 pt3 = -pt1-abs(@fn6(acosh(sin(PixDis)*@pff))) elseif @ptt == 9 ; Tri - Patterns 1 df = .2, scale = scale * 1.25, pt1 = abs(@fn6(gc))^(@tp*.05) pt3 = -abs((tz^za)/pt1)*@pff elseif @ptt == 10 ; Tri - Patterns 2 df = .2, pt1 = abs(@fn6(tz))^(@tp*.05) scale = scale * 15, pt3 = -abs(za^.1/pt1)*@pff elseif @ptt == 11 || @ptt == 0 ; Tri - Patterns 3 df = .2 pt3 = @fn6(tz*za)^@tp*@pff elseif @ptt == 12 ; Tri - Patterns 4 df = .2, scale=scale*5 pt3 = @fn6(-pt1-abs(acos(sin(za/10-tz/10)*@pff))) elseif @ptt == 13 ; Tri - Patterns 5 df = .2 pt3 = -abs(@fn7(@fn6(tz+za)))*@pff elseif @ptt == 14 ; Tri - Patterns 6 df = .2 pt3 = @fn6(tz)-za*@pff elseif @ptt == 15 ; Tri - Patterns 7 df = .2, scale = scale * 2 pt3 = @fn6(tz)-za*(@pff) endif if ti > ico || ti < icm pt3 = (ti + flip(-ti))*icd endif if @pct == true scale = scale * 2 endif w = acosh(pt3*10^8)*scale pt3 = (w - round(w)) if @pct == true pt3 = @fn5(pt3) else pt3 = @fn5(acosh(pt3)) endif if (@ptt == 0) && !(@cm == 9) texFin = 0 else texFin = cabs(pt3+@pto^@ptm)*@ptd*df if !(@pta == 0) texFin = (texFin - trunc(texFin))*@pta else texFin = (texFin - trunc(texFin))*.25 endif endif endif if tx > 0 if @ztyp == "#z" tzz = ((#z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Morph z" tzz = ((z1-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap z" tzz = ((tz-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap #z" tzz = ((tz2-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist" tzz = ((dist-@txia1)*@txib1)^@txic1 endif if @ttt == 0 tzz = @fntx2(@fntx1(tzz))^@exad1 elseif @ttt == 1 tzz = @fntx1(real(tzz))^@exad1+@fntx2(imag(tzz))^@exad2 elseif @ttt == 2 tzz = @fntx1(real(tzz))^@exad1-@fntx2(imag(tzz))^@exad2 elseif @ttt == 3 tzz = @fntx1(real(tzz))^@exad1*@fntx2(imag(tzz))^@exad2 elseif @ttt == 4 tzz = @fntx1(imag(tzz))^@exad1-@fntx2(real(tzz))^@exad2 elseif @ttt == 5 tzz = @fntx2(@fntx1(x))^@exad1 elseif @ttt == 6 tzz = @fntx2(@fntx1(y))^@exad1 elseif @ttt == 7 tzz = @fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @ttt == 8 tzz = @fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @ttt == 9 tzz = @fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @ttt == 10 tzz = @fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @ttt == 11 tzz = @fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @ttt == 12 tzz = @fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @ttt == 13 tzz = @fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @ttt == 14 tzz = @fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @ttt == 15 tzz = @fntx1(x)^@exad1+@fntx2(tzz)^@exad2 elseif @ttt == 16 tzz = @fntx1(x)^@exad1-@fntx2(tzz)^@exad2 elseif @ttt == 17 tzz = @fntx2(tzz)^@exad2-@fntx1(x)^@exad1 elseif @ttt == 18 tzz = @fntx1(x)^@exad1*@fntx2(tzz)^@exad2 elseif @ttt == 19 tzz = @fntx1(x)^@exad1/@fntx2(tzz)^@exad2 elseif @ttt == 20 tzz = @fntx2(tzz)^@exad2/@fntx1(x)^@exad1 elseif @ttt == 21 tzz = @fntx1(y)^@exad1+@fntx2(tzz)^@exad2 elseif @ttt == 22 tzz = @fntx1(y)^@exad1-@fntx2(tzz)^@exad2 elseif @ttt == 23 tzz = @fntx2(tzz)^@exad2-@fntx1(y)^@exad1 elseif @ttt == 24 tzz = @fntx1(y)^@exad1*@fntx2(tzz)^@exad2 elseif @ttt == 25 tzz = @fntx1(y)^@exad1/@fntx2(tzz)^@exad2 elseif @ttt == 26 tzz = @fntx2(tzz)^@exad2/@fntx1(y)^@exad1 endif float zrr = real(tzz)%(@tv/10)/@ts*10 float zii = imag(tzz)%(@tv/10)/@ts*10 float rzz = floor(zrr) float izz = floor(zii) if @tcc > 0 float a1a = (rzz + izz - 2)/ct float a2a = (rzz + izz + 2)/ct else float a1a = (rzz + izz - 2)%ct float a2a = (rzz + izz + 2)%ct endif float a3a = a1a float a4a = a2a i = 0 float ezz = 0 float ho = 1 repeat ho = ho / 2 float frr = rzz + ho float fii = izz + ho float zaa = (a1a + a2a + a3a + a4a) / 4 ezz = ezz + zaa if (zrr > frr) zrr = frr if (zii > fii) izz = fii a1a = ezz else a2a = ezz endif else if (zii > fii) izz = fii a3a = ezz else a4a = ezz endif endif i = i + 1 until i >= 20 endif t3 = real(abs((zaa-real(@fntx3(zaa))))) if @add_sgn == false t3 = (zaa-real(@fntx3(zaa))) endif ;Random complex hasard = #random texture_rnd = 10 * @rnd * (real(hasard)+ imag(hasard)) ; fBm if (@fbmtxt != 0) r1 = (0,1) ^ (@fbmangle / 90.0) r2 = (0,1) ^ (@fbmastep / 90.0) if @ztyp4 == "#z" tzz = ((#z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Morph z" tzz = ((z1-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap z" tzz = ((tz-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap #z" tzz = ((tz2-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist" tzz = ((dist-@txia4)*@txib4)^@txic4 endif if @fbminit == 0 pfb = (@fntx9(@fntx8(tzz))^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 1 pfb = (@fntx8(real(tzz))^@exad8+@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 2 pfb = (@fntx8(real(tzz))^@exad8-@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 3 pfb = (@fntx8(real(tzz))^@exad8*@fntx9(imag(tzz))^@exad9)* @fbmscale * r1 + \ @fbmoffset elseif @fbminit == 4 pfb = (@fntx8(imag(tzz))^@exad8-@fntx9(real(tzz))^@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(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 16 pfb = (@fntx8(x)^@exad8-@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 17 pfb = (@fntx9(tzz)^@exad9-@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 18 pfb = (@fntx8(x)^@exad8*@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 19 pfb = (@fntx8(x)^@exad8/@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 20 pfb = (@fntx9(tzz)^@exad9/@fntx8(x)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 21 pfb = (@fntx8(y)^@exad8+@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 22 pfb = (@fntx8(y)^@exad8-@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 23 pfb = (@fntx9(tzz)^@exad9-@fntx8(y)^@exad8)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 24 pfb = (@fntx8(y)^@exad8*@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 25 pfb = (@fntx8(y)^@exad8/@fntx9(tzz)^@exad9)* @fbmscale * r1 + @fbmoffset elseif @fbminit == 26 pfb = (@fntx9(tzz)^@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 + @c) % 256 float by1 = (by0 + @d) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @a float ry1 = ry0 - @b 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" tzz = ((#z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Morph z" tzz = ((z1-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap z" tzz = ((tz-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap #z" tzz = ((tz2-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist" tzz = ((dist-@txia2)*@txib2)^@txic2 endif if @dec_init == 0 pd = real(@fntx5(@fntx4(tzz))^@exad4) elseif @dec_init == 1 pd = real(@fntx4(real(tzz))^@exad4+@fntx5(imag(tzz))^@exad5) elseif @dec_init == 2 pd = real(@fntx4(real(tzz))^@exad4-@fntx5(imag(tzz))^@exad5) elseif @dec_init == 3 pd = real(@fntx4(real(tzz))^@exad4*@fntx5(imag(tzz))^@exad5) elseif @dec_init == 4 pd = real(@fntx4(imag(tzz))^@exad4-@fntx5(real(tzz))^@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(tzz)^@exad5) elseif @dec_init == 16 pd = real(@fntx4(x)^@exad4-@fntx5(tzz)^@exad5) elseif @dec_init == 17 pd = real(@fntx5(tzz)^@exad4-@fntx4(x)^@exad5) elseif @dec_init == 18 pd = real(@fntx4(x)^@exad4*@fntx5(tzz)^@exad5) elseif @dec_init == 19 pd = real(@fntx4(x)^@exad4/@fntx5(tzz)^@exad5) elseif @dec_init == 20 pd = real(@fntx5(tzz)^@exad4/@fntx4(x)^@exad5) elseif @dec_init == 21 pd = real(@fntx4(y)^@exad4+@fntx5(tzz)^@exad5) elseif @dec_init == 22 pd = real(@fntx4(y)^@exad4-@fntx5(tzz)^@exad5) elseif @dec_init == 23 pd = real(@fntx5(tzz)^@exad4-@fntx4(y)^@exad5) elseif @dec_init == 24 pd = real(@fntx4(y)^@exad4*@fntx5(tzz)^@exad5) elseif @dec_init == 25 pd = real(@fntx4(y)^@exad4/@fntx5(tzz)^@exad5) elseif @dec_init == 26 pd = real(@fntx5(tzz)^@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 if (@gnarl_amt != 0) if @ztyp3 == "#z" tzz = ((#z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Morph z" tzz = ((z1-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap z" tzz = ((tz-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap #z" tzz = ((tz2-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist" tzz = ((dist-@txia3)*@txib3)^@txic3 endif if @gnarl_init == 0 p = @fntx7(@fntx6(tzz))^@exad6 elseif @gnarl_init == 1 p = @fntx6(real(tzz))^@exad6+@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 2 p = @fntx6(real(tzz))^@exad6-@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 3 p = @fntx6(real(tzz))^@exad6*@fntx7(imag(tzz))^@exad7 elseif @gnarl_init == 4 p = @fntx6(imag(tzz))^@exad6-@fntx7(real(tzz))^@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(tzz)^@exad7 elseif @gnarl_init == 16 p = @fntx6(x)^@exad6-@fntx7(tzz)^@exad7 elseif @gnarl_init == 17 p = @fntx7(tzz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 18 p = @fntx6(x)^@exad6*@fntx7(tzz)^@exad7 elseif @gnarl_init == 19 p = @fntx6(x)^@exad6/@fntx7(tzz)^@exad7 elseif @gnarl_init == 20 p = @fntx7(tzz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 21 p = @fntx6(y)^@exad6+@fntx7(tzz)^@exad7 elseif @gnarl_init == 22 p = @fntx6(y)^@exad6-@fntx7(tzz)^@exad7 elseif @gnarl_init == 23 p = @fntx7(tzz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init == 24 p = @fntx6(y)^@exad6*@fntx7(tzz)^@exad7 elseif @gnarl_init == 25 p = @fntx6(y)^@exad6/@fntx7(tzz)^@exad7 elseif @gnarl_init == 26 p = @fntx7(tzz)^@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" tzz = ((#z-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Morph z" tzz = ((z1-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Trap z" tzz = ((tz-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Trap #z" tzz = ((tz2-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Dist" tzz = ((dist-@trxia)*@trxib)^@trxic endif if @trinit == 0 ptr = (@fntx11(@fntx10(tzz))^@exad10) elseif @trinit == 1 ptr = (@fntx10(real(tzz))^@exad10+@fntx11(imag(tzz))^@exad11) elseif @trinit == 2 ptr = (@fntx10(real(tzz))^@exad10-@fntx11(imag(tzz))^@exad11) elseif @trinit == 3 ptr = (@fntx10(real(tzz))^@exad10*@fntx11(imag(tzz))^@exad11) elseif @trinit == 4 ptr = (@fntx10(imag(tzz))^@exad10-@fntx11(real(tzz))^@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(tzz)^@exad11) elseif @trinit == 16 ptr = (@fntx10(x)^@exad10-@fntx11(tzz)^@exad11) elseif @trinit == 17 ptr = (@fntx11(tzz)^@exad11-@fntx10(x)^@exad10) elseif @trinit == 18 ptr = (@fntx10(x)^@exad10*@fntx11(tzz)^@exad11) elseif @trinit == 19 ptr = (@fntx10(x)^@exad10/@fntx11(tzz)^@exad11) elseif @trinit == 20 ptr = (@fntx11(tzz)^@exad11/@fntx10(x)^@exad10) elseif @trinit == 21 ptr = (@fntx10(y)^@exad10+@fntx11(tzz)^@exad11) elseif @trinit == 22 ptr = (@fntx10(y)^@exad10-@fntx11(tzz)^@exad11) elseif @trinit == 23 ptr = (@fntx11(tzz)^@exad11-@fntx10(y)^@exad10) elseif @trinit == 24 ptr = (@fntx10(y)^@exad10*@fntx11(tzz)^@exad11) elseif @trinit == 25 ptr = (@fntx10(y)^@exad10/@fntx11(tzz)^@exad11) elseif @trinit == 26 ptr = (@fntx11(tzz)^@exad11/@fntx10(y)^@exad10) endif endif complex tzz = z_values[#numiter-1] float zrzr = real(@fnzr(ptr))*@scc float zizi = imag(@fnzi(ptr))*@scc float rzrz = real(@georfn2(@georfn(zrzr))) float iziz = imag(@geoifn2(@geoifn(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)^@exp*2)*@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 ;**************************** if @tm == 0 t2 = 0 endif float tmp = dist if (@cm == 1) tmp = real(((@colorFn(za-@tz1)*@tz2)^@tz3)*(@ta+1)) elseif (@cm == 2) tmp = real((@colorFn(ti-@tz1)*@tz2)^@tz3)*.1 elseif (@cm == 3) tmp = real((@colorFn(ti-@tz1)*@tz2)^@tz3)%abs(@mc)*.8 elseif (@cm == 4) tmp = cabs((@colorFn(tz-@tz1)*@tz2)^@tz3)^.1 elseif (@cm == 5) tmp = abs(real((@colorFn(tz-@tz1)*@tz2)^@tz3))^.1 elseif (@cm == 6) tmp = abs(imag((@colorFn(tz-@tz1)*@tz2)^@tz3))^.1 elseif (@cm == 7) tmp = abs(atan2((@colorFn(tz-@tz1)*@tz2)^@tz3)/pi) elseif (@cm == 8) tmp = cabs((@colorFn(pt3-@tz1)*@tz2)^@tz3) elseif (@cm == 9) tmp = 0 endif float #index = 0 if @shade == "normal" if !(@cm == 1) #index = cabs(tmp^2 + .1*@dep2) + za*@ta*t2 + texFin + texture +(tx*@txamt/10)/100 \ + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 else #index = cabs(tmp^2) + .1*@dep2 + texture + texture +(tx*@txamt/10)/100 \ + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 endif elseif @shade == "solid" if !(@cm == 1) #index = real(cos(tmp) - .1*@dep2 - .4) + za*@ta*t2 + texFin + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 else #index = real(cos(tmp) - .1*@dep2 - .4) + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 endif elseif @shade == "sharp" if !(@cm == 1) #index = real(acos(tmp^2)* .35 - .1*@dep2) + za*@ta*t2 + texFin + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 else #index = real(acos(tmp^2)* .35 - .1*@dep2) + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 endif elseif @shade == "wash" if !(@cm == 1) #index = real(atanh(tmp^2)* .6 - .1*@dep2 +.2) + za*@ta*t2 + texFin + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 else #index = real(atanh(tmp^2)* .6 - .1*@dep2 +.2) + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 endif elseif @shade == "silhouette" if !(@cm == 1) #index = real(acosh(tmp^2)- .1*@dep2) + za*@ta*t2 + texFin + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 else #index = real(acosh(tmp^2)- .1*@dep2) + texture + \ (tx*@txamt/10)/100 + t3*(tx*@txamt/10)/100 + rnn*@rr*(tx*@txamt/10)/100 endif endif endif else #solid = true endif default: title = "Doodads II" param ver caption = "Version" default = 2.38 visible = false endparam param trp caption = "More Trap Parameters" hint = "Additional parameters less frequently used." default = true endparam param txp caption = "More Texture Parameters" hint = "Additional parameters less frequently used." default = true endparam param m caption = " Trap Mode" enum = "1" "2" "3" "4" "5" "6" "7" "8" \ "9" "A" "B" "C" "D" "E" "F" "G" \ "H" "I" "J" "K" "L" "M" "N" "O" \ "P" "Q" "R" "S" "T" "U" default = 0 endparam param mr caption = "Flavor" enum = "A" "B" "C" "D" "E" "F" "G" \ "H" "I" "J" "K" "L" "M" default = 0 endparam param mrf caption = "Apply ABS to Flavor" default = false visible = @mr < 5 && @trp == true endparam param tad caption = "Trap Addend" default = 0.0 visible = @trp endparam param fm caption = "Flavor Multiplier" default = (1,1) visible = @trp endparam param cm caption = "Coloring Mode" enum = "Min Distance" "Triangles Only" "Iteration" "Modulated Iter" \ "Magnitude" "Real" "Imaginary" "Angle" \ "'PreTex'" "Patterns+Triangles" default = 0 endparam float param mc caption = "Mod. i Modulus" hint = "The modulus value for Modulated \ Iter coloring." default = 8 visible = @cm == 3 endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 9 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @cm > 0 && @cm < 9 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 9 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @cm > 0 && @cm < 9 endparam int param traptype caption = "Trap Type" enum = "Closest""First""Last""Average""Farthest""Sum""Sum Outline" default = 0 endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @traptype == 3 endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @traptype == 3 endparam float param threshold caption = "Element Width" default = 1.0 visible = @traptype != "Closest" endparam complex param skip caption = "Skip Iters Last/First" default = (0, 1e20) hint = "The real value (top) shows the number of iters skipped starting from\ the outermost,the imag value (bottom) represents how many iters are \ shown from the outermost inwards. You can therefore show any number \ of consecutive iters at any point by adjusting the two \ values accordingly." visible = @ver == 1.5 endparam int param skip1 caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." visible = @ver != 1.5 endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." visible = @ver != 1.5 endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam param tm caption = "Triangle Mode" enum = "Off" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" \ "10 + Morph" default = 1 endparam param ta caption = " Triangle Amount" default = 0.0 endparam param co caption = "Solid Color @ IC" hint = "Turns on Solid Color at the 'Iteration \ Cutoff'." default = false visible = !(@sk == 0) endparam param pwr caption = "`Trap Power'" default = 3.0 visible = @trp endparam param mul caption = " Trap Multiplier" default = 3.0 visible = @trp endparam param sb caption = "'Ripple' Control" hint = "A few Trap Modes are unaffected by this \ parameter. Useful Range is -50 to 50" default = 0.0 visible = @trp endparam param sa caption = "Expand+|-Contract" hint = "Useful Range is around -10 to 10" default = 0.0 visible = @trp endparam param shade caption = "Element Shading" enum = "normal""solid""sharp""wash""silhouette" default = 0 hint = "Changes the shading and edging of elements" visible = @trp endparam float param dep2 caption = "Contrast" default = 0.0 hint = "Changes the gradient mapping on the elements. \ But it also shifts the gradient--you'll have to \ adjust that when you change the param value." endparam float param edge caption = "Edge Definition" default = 0.0 hint = "Adds a progressive edge to the element borders \ as the value is increased. Positive increases mimic \ 'First' trapping mode and negative ones move towards \ 'Last. You will have to adjust the gradient" endparam heading caption = "Texture" endheading param ptt caption = "P&F Texture Mode" enum = " Off" "a Patterns 1" "b Patterns 2" "c Patterns 3" \ "d Patterns 4" "e Patterns #z" "f Patterns #pixel" \ "g Fuzz 1" "h Fuzz 2" "i Tri-Pattern 1" \ "j Tri-Pattern 2" "k Tri-Pattern 3" "l Tri-Pattern 4" \ "m Tri-Pattern 5" "n Tri-Pattern 6" "o Tri-Pattern 7" default = 0 endparam param pta caption = " P&F Amount" default = 0.2 visible = (@cm == 9 || !(@ptt == 0)) endparam param pct caption = "Change Tx Style" hint = "Another change in texture. Works with \ Triangles and Patterns" default = false visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endparam heading caption = "Triangle Texture Parameters" visible = (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) || (!(@pta == 0) && \ (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endheading param nsc caption = " Triangle Scale" hint = "If 'Use Real Scale' is enabled, the \ real value is applied to both the \ real and imaginary scales. Values from \ .01 to 100" default = (1,1) visible = (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param ur caption = "Use 'Real' Scale" default = false visible = !(real(@nsc) == imag(@nsc)) \ && (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param v2 caption = " Triangle Contrast" default = 1.0 visible = (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param tb caption = " Triangle Weight" hint = "Changes the way the triangles are drawn. \ 4 bit binary weighting." default = 15 visible = @txp && (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param f caption = " Triangle 'Offset'" hint = "Use small increments/decrements for best results." default = 1.05 visible = @txp && (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param step caption = " Triangle Steps" default = 20 visible = @txp && (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam param r caption = "Randomness" default = 0.0 hint = "Only used for triangle modes." visible = @txp && (@cm == 1 || (!(@ta == 0) && !(@tm == 0)) \ || (!(@pta == 0) && (@ptt > 8)) || ((@ptt == 0) && @cm == 9)) endparam heading visible = (@cm == 1 || (!(@ta == 0) && !(@tm == 0))) \ && (!(@cm == 9) && @ptt == 0) endheading heading caption = "Patterns & Fuzz Texture Parameters" visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endheading param pto caption = " P&F Offset" hint = "Changes the appearance of the texture. \ When 'Change Tx Style' is enabled, 0,0 \ here produces circular Patterns." default = (-1,.75) visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endparam param psc caption = "P&F Scale" hint = "Larger values decrease the scale." default = 5.0 visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endparam param ptd caption = " P&F Density" hint = "Works similarly to 'Color Density', but is \ applied only to textures." default = 5.0 visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endparam param ptm caption = " P&F Modifier" hint = "Try values of 0.1 to 5" default = 1.0 visible = @txp && !(@cm == 1) && (@cm == 9 \ || (!(@ptt == 0) && !(@pta == 0))) endparam param pff caption = " P&F Fuzz Factor" hint = "Values above 1 give a less well-defined \ edge to Patterns." default = 1.0 visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endparam heading visible = !(@cm == 1) && (@cm == 9 || (!(@ptt == 0) && !(@pta == 0))) endheading param tp caption = "Texture Power" default = 1.0 visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endparam param sk caption = "Iteration Cutoff" hint = "No texture is drawn after positive integer \ values, or before negative integer values. \ Any Decimal portion 'blends' in iteration \ coloring." default = 0.0 visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endparam ;********************************************************** heading caption = "New Shaping Parameters" endheading bool param newStuff caption = "New Shaping Parameters" default = true endparam bool param type caption = "Accent" default = false hint = "Changes the shape of the elements" visible = @newStuff endparam int param ztype caption = "Mix Species" enum = "Normal""Modulus(z)""Atan2(z)""Real(z)""Imag(z)" default = 0 visible = @newStuff endparam func ztypeFn caption = "Mix Function 1" default = ident() hint = "Changes the shape of the elements" visible = @newStuff endfunc func ztypeFn2 caption = "Mix Function 2" default = ident() hint = "Changes the shape of the elements" visible = @newStuff endfunc complex param zamt1 caption = "Mix Offset" default = (0,0) visible = @newStuff endparam complex param zamt2 caption = "Mix Strength" default = (1,0) visible = @newStuff endparam complex param zamt3 caption = "Mix Power" default = (1,0) visible = @newStuff endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @newStuff endparam int param opxy caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "Changes the way X and Y combine to form Z" visible = @varType != "Modulus" && @newStuff endparam func varFn caption = "X/Y Function" default = ident() visible = @newStuff endfunc complex param xb1 caption = "X/Y Offset" default = (0,0) visible = @newStuff endparam complex param xb2 caption = "X/Y Strength" default = (1,0) visible = @newStuff endparam complex param xb3 caption = "X/Y Power" default = (1,0) visible = @newStuff endparam func nufnx caption = "X Function" default = ident () visible = @newStuff endfunc func nufny caption = "Y Function" default = ident () visible = @newStuff endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false visible = @newStuff endparam complex param px1 caption = "X Offset" default = (0,0) visible = @newStuff endparam complex param py1 caption = "Y Offset" default = (0,0) visible = @newStuff endparam complex param px2 caption = "X Strength" default = (1,0) visible = @newStuff endparam complex param py2 caption = "Y Strength" default = (1,0) visible = @newStuff endparam complex param px3 caption = "X Power" default = (1,0) visible = @newStuff endparam complex param py3 caption = "Y Power" default = (1,0) visible = @newStuff endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 hint = "These an extra set of X and Y values to the definition of Z whose \ strength and associated functions can be varied according to the \ parameters below" visible = @newStuff endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @newStuff endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam heading caption = "Masking" endheading param msk caption = " Mask Threshold" default = 0.0 endparam param im caption = "Reverse Mask" hint = "Reverses the areas drawn in the Solid Color \ with those areas drawn normally." default = false visible = !(@msk == 0) endparam heading caption = "Functions" endheading func fn4 caption = "Initial function" default = ident() endfunc func fn1 caption = "Real function" default = ident() endfunc func fn2 caption = "Imag function" default = ident() endfunc func fn3 caption = "Overall function" default = ident() endfunc func fn9 caption = "First Trap function" default = ident() visible = @trp endfunc func fn8 caption = "Final Trap function" default = ident() endfunc func fn5 caption = "Texture function 1" default = ident() visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endfunc func fn6 caption = "Texture function 2" default = ident() visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endfunc func fn7 caption = "Texture function 3" default = ident() visible = (@cm == 1 || @cm == 9 || (!(@ta == 0) && !(@tm == 0)) \ || ((@ptt > 0) && @pta > 0)) endfunc ; Morph Parameters-------------------------------------------------- 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 = true endparam param tha2 caption = "Morph -> Morph II" default = true 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 heading caption = "Progressive Morph Params" visible = ((@incExp1r == false || (@incExp1r == true && @exp1rDegree == 0))&&\ (@incExp1i == false || (@incExp1i == true && @exp1iDegree == 0)) &&\ (@incExp2r == false || (@incExp2r == true && @exp2rDegree == 0)) &&\ (@incExp2i == false || (@incExp2i == true && @exp2iDegree == 0)) &&\ (@incExp3r == false || (@incExp3r == true && @exp3rDegree == 0)) &&\ (@incExp3i == false || (@incExp3i == true && @exp3iDegree == 0)) &&\ (@incExp4r == false || (@incExp4r == true && @exp4rDegree == 0)) &&\ (@incExp4i == false || (@incExp4i == true && @exp4iDegree == 0)) &&\ (@incExp5r == false || (@incExp5r == true && @exp5rDegree == 0)) &&\ (@incExp5i == false || (@incExp5i == true && @exp5iDegree == 0)) &&\ (@incExp6r == false || (@incExp6r == true && @exp6rDegree == 0)) &&\ (@incExp6i == false || (@incExp6i == true && @exp6iDegree == 0)) &&\ (@incTwr == false || (@incTwr == true && @twistrDegree == 0)) &&\ (@incTwi == false || (@incTwi == true && @twistiDegree == 0)) &&\ (@incTw2r == false || (@incTw2r == true && @twist2rDegree == 0))&&\ (@incTw2i == false || (@incTw2i == true && @twist2iDegree == 0)) &&\ (@incTw3r == false || (@incTw3r == true && @twist3rDegree == 0)) &&\ (@incTw3i == false || (@incTw3i == true && @twist3iDegree == 0)) &&\ (@incTw4r == false || (@incTw4r == true && @twist4rDegree == 0)) &&\ (@incTw4i == false || (@incTw4i == true && @twist4iDegree == 0)) &&\ (@incTw5r == false || (@incTw5r == true && @twist5rDegree == 0))&&\ (@incTw5i == false || (@incTw5i == true && @twist5iDegree == 0)) &&\ (@incTw6r == false || (@incTw6r == true && @twist6rDegree == 0)) &&\ (@incTw6i == false || (@incTw6i == true && @twist6iDegree == 0)))\ && @showm endheading heading caption = "Progressive Morph Params [active]" visible = ((@incExp1r == true && @exp1rDegree != 0) || (@incExp1i == true &&\ @exp1iDegree != 0) || (@incExp2r == true && @exp2rDegree != 0) || \ (@incExp2i == true && @exp2iDegree != 0) || (@incExp3r == true && \ @exp3rDegree != 0) || (@incExp3i == true && @exp3iDegree != 0) || \ (@incExp4r == true && @exp4rDegree != 0) || (@incExp4i == true && \ @exp4iDegree != 0) || (@incExp5r == true && @exp5rDegree != 0) || \ (@incExp5i == true && @exp5iDegree != 0) || (@incExp6r == true && \ @exp6rDegree != 0) || (@incExp6i == true && @exp6iDegree != 0) || \ (@incTwr == true && @twistrDegree != 0) || (@incTwi == true && \ @twistiDegree != 0) || (@incTw2r == true && @twist2rDegree != 0) ||\ (@incTw2i == true && @twist2iDegree != 0) || (@incTw3r == true && \ @twist3rDegree != 0) || (@incTw3i == true && @twist3iDegree != 0) ||\ (@incTw4r == true && @twist4rDegree != 0) || (@incTw4i == true && \ @twist4iDegree != 0) || (@incTw5r == true && @twist5rDegree != 0) ||\ (@incTw5i == true && @twist5iDegree != 0) || (@incTw6r == true && \ @twist6rDegree != 0) || (@incTw6i == true && @twist6iDegree != 0)) &&\ @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 hint = "Determines how the param changes with each iteration, \ whether by the same amount each time, or by a non-linear \ amount" visible = @progress && @showm endparam float param speed caption = "Non-Linear Amount" default = 1 visible = @progress && @showm && @linear != 0 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 heading caption = "Extra Textures" visible = (@rnd == 0 && @fbmtxt == 0 && @decamt == 0 && @tpp == 0 && @gnarl_amt == 0) endheading heading caption = "Extra Textures [active]" visible = (@rnd != 0 || @fbmtxt != 0 || @decamt != 0 || @tpp != 0 || @gnarl_amt != 0) endheading param advt caption = "Extra Texture Params" default = true 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 rnd 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 = true 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. '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 && @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 a caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param b caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param c caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param d caption = "Distribution 4" default = 1 visible = @advt && @advfbm endparam complex param txia4 caption = "Pattern 1" default = (0.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txib4 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advfbm && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txic4 caption = "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 = "Choose 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. '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 && @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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txib2 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advd && (@dec_init < 5 || @dec_init > 14) endparam complex param txic2 caption = "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. '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 && @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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txib3 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advpg && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txic3 caption = "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 = true 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 func georfn caption = "Real Function" default = floor() visible = @advt && @advtr endfunc func geoifn caption = "Imag Function" default = floor() visible = @advt && @advtr endfunc func georfn2 caption = "Real Function 2" default = floor() visible = @advt && @advtr endfunc func geoifn2 caption = "Imag Function 2" default = floor() 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 = 1 visible = @advt && @advtr hint = "Higher values intensify the contrast between texture sections. If \ you have 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. Lower 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 && @tpp == 0 endheading heading caption = "Additional Texture [active]" visible = @advt && @tpp != 0 endheading param advatx caption = "Additional Texturing" default = false visible = @advt endparam float param tpp caption = "Add'l Tx Amount" hint = "'Blends' in texture" default = 0.0 visible = @advt && @advatx endparam param ttt 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. '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 && @advatx && (@ttt < 5 || @ttt > 14 && @ttt < 21) 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 = "Pattern 1" default = (0.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 14 && @ttt < 21) endparam complex param txib1 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 14 && @ttt < 21) endparam complex param txic1 caption = "Pattern 3" default = (1.0,0.0) visible = @advt && @advatx && (@ttt < 5 || @ttt > 14 && @ttt < 21) 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 && !(@ttt == 0 ||@ttt == 5 || @ttt == 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 tcc 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 rr caption = "Randomness" default = 0.0 visible = @advt && @advatx endparam bool param add_sgn caption = "Soften Texture" default = true visible = @advt && @advatx endparam } ****************************************************************** harlequinII_mt+tma { ; Mark Townsend, 22 Aug 1999 ; ; Based on the Paul Carlson orbit trap. ; ; Tweaked by Toby Marshall 12 Apr. 2008 ; ver 2.47 ; ; New in 2.2: new z types added to all the textures ; ("Trap z" and "Trap #z) so that the textures ; conform to the element shapes. See hint for ; "Choose z type" params. ; ; New in 2.3: added a "Geometrix" texture based ; on code by Dennis Magar. ; ; New in 2.31: optimized the Morph code and added ; a few enhancements to the fBm, Geometrix and ; Additional textures. ; ; New in 2.4: More Morph optimization. Added a section ; of "Shaping Parameters" that modify the real and ; imaginary variables and their product. Also added ; some params and a function to most coloring modes. ; ; New in 2.41: Added some bells and whistles to the fBm ; texture section. Check the hints... ; ; New in 2.42: Added trapping modes "First" and "Last" ; and a param: "Element Width" to control them. Also added ; a "Shading" param. Also rationalized the param order ; somewhat on the tab. ; ; New in 2.43: Added "Average", "Farthest" and "Sum" ; trapping modes, and "Edge Definition" parameter. ; Changed the param order a bit. ; ; New in 2.44: Added "limited iterations"; many thanks ; to Damien M. Jones for allowing me to use this code ; of his. ; ; New in 2.45: Added a pattern repeat param to the ; limited iter code, after Ron Barnett. ; ; New in 2.46: Added more limited iter code. ; ; New in 2.47: rationalized and standardized ; limited iter code. ; ; This coloring is a modification of Mark's original ; "Harlequin" coloring, and is not backwards-compatible ; with it. It retains his basic trapping code but ; adds a number of extra functions and parameters. ; ; Many thanks to Mark for allowing me to publish it. ; Thanks also to Michèle Dessureault, Damien M. Jones, ; Andreas Lober and Dennis Magar for allowing me to ; include their texture code. ; ; When "Morph II" is activated by default only ; "Morph function Z1" is active; you must set ; "Morph function Z2" & 3 to some function other than ; "zero" to activate them when they appear as the ; appropriate Morph choice is selected. ; ; When "Morph II" is active there is also the possibility ; of choosing the variable type for Z1-3 in any of the ; three positions where that secondary Z expression appears, ; via the "Z1(2,3)Type" parameters. ; init: int ra = 1322939 int rc = 7336919 int rm = 36282757 float x = 0 float y = 0 complex tz = (0,0) trap_z = 0 trap_point = 0 float trap_iter = 0.0 float temp = 0 float min_dist = 1e20 float texture = 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 t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,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 int iter = 0 complex z_values[#maxiter+1] complex z1p = (0,0) complex z1q = (0,0) complex qw = (0,0) complex er = (0,0) complex ty = (0,0) float za = 0 complex nuvar = (0,0) complex a = (0,0) bool trapped = false if @edges == 4 min_dist = 0 endif float dave = 0 float dsum = 0 float distance = 0 bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z if @th2 == 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 aah = @nufunc((z1-@tw)+@nufunc4(z2-@tw4)^@exp4) bbh = @nufunc((z1-@tw)-@nufunc4(z2-@tw4)^@exp4) cch = @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 = aah elseif @mmode == "z-|z|" nuvar = bbh elseif @mmode == "|z|-z" nuvar = cch 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 x = real(@fnh(@nufnh(z1-@x1)*@x2)^@x3) y = imag(@fni(@nufni(z1-@y1)*@y2)^@y3) complex a = @m * real(@fn(y^@expi / x^@expj)) complex ab = a complex bb = a complex c = a if @variation == 0 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc((a-@cc)) endif a = @m * (fn1(bb + @c)^2 + fn2(c + @c)^2) elseif @variation == 1 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc((a-@cc)) endif a = bb * c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 2 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(|a|-@cc)) else c = @fncc(|a|-@cc) endif a = bb-c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 3 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(|a|-@cc)) else c = @fncc(|a|-@cc) endif a = bb+c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 4 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(|a|-@cc)) else c = @fncc(|a|-@cc) endif a = c/bb + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 5 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(atan2(a)-@cc)) else c = @fncc(atan2(a)-@cc) endif a = bb*c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 6 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc(a-@cc) endif a = bb + c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 7 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(|a|-@cc)) else c = @fncc(|a|-@cc) endif a = c^bb + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 8 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc(a-@cc) endif a = (1-bb)*(c+1)+@c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 9 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc(a-@cc) endif a = bb^c+@c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 10 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(|a|-@cc)) else c = @fncc(|a|-@cc) endif a = bb /c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 11 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(a-@cc)) else c = @fncc(a-@cc) endif a = (bb+1)/(c)+ @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 12 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(atan2(a)-@cc)) else c = @fncc(atan2(a)-@cc) endif a = bb+c + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 13 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(atan2(a)-@cc)) else c = @fncc(atan2(a-@cc)) endif a = c/bb + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif elseif @variation == 14 if @inv1 == true bb = @fnbb(1/(a-@bb)) else bb = @fnbb(a-@bb) endif if @inv2 == true c = @fncc(1/(atan2(a)-@cc)) else c = @fncc(atan2(a-@cc)) endif a = c^bb + @c if @spin == 0 a = fn1(1 - a) / fn3(ab-@nup1) elseif @spin == 1 a = fn1(1 - a^2) elseif @spin == 2 a = fn1(1 - a)*fn3(ab-@nup1) elseif @spin == 3 a = fn1(1 - a)^fn3(ab-@nup1) elseif @spin == 4 a = fn1(1 - a)+fn3(ab-@nup1) endif endif if @varType == "Normal" a = @varFn((a-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" a = @varFn((|a|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" a = @varFn(atan2(a-@xb1)*@xb2)^@xb3 elseif @varType == "Real" a = @varFn(real(a-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" a = @varFn(imag(a-@xb1)*@xb2)^@xb3 endif if @opadd == "None" a = a elseif @opadd == "+(X+Y)" a = a + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" a = a - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" a = a + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" a = a - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" a = a + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" a = a - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" a = a + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" a = a - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" a = a + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" a = a - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" a = a + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" a = a - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" a = a + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" a = a - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" a = a + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" a = a - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif complex zq = (0,0) if @ztype == "Normal" zq = (@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Modulus(z)" zq = (@ztypeFn(|z1|-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Atan2(z)" zq = atan2(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Real(z)" zq = real(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 elseif @ztype == "Imag(z)" zq = imag(@ztypeFn(z1-@zamt1)*@zamt2)^@zamt3 endif if @opr == 0 if @mode == 0 temp = abs(|zq| - |1/a|) else temp = cabs(zq - a) endif elseif @opr == 1 if @mode == 0 temp = abs(|zq| + |1/a|) else temp = cabs(zq + a) endif endif if @avgflv == true if @mode_change == 0 dsum = temp + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(temp +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(temp +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(temp +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(temp +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(temp +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(temp +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(temp +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(temp +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(temp +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(temp +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(temp +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(temp +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = temp +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = temp + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(temp +(dsum))) elseif @mode_change == 2 dsum = cabs(log(temp +(dsum))) elseif @mode_change == 3 dsum = |log(temp +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(temp +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(temp +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(temp +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(temp +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(temp +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(temp +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(temp +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(temp +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(temp +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(temp +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(temp +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(temp +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(temp +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(temp +(dsum))) dave = cabs(log(dave)) endif endif if @follow == true if iter >= @skip && iter < @show if @version < 2.47 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum +1 else if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @edges == "Closest" if temp < min_dist min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "First" if temp < @threshold min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Last" if temp < @threshold && !trapped min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Average" if temp < @threshold min_dist = dave + @edge*.1 distance = dave trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Farthest" if temp > min_dist && temp < @threshold min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Sum" if temp < @threshold min_dist = distance + temp + @edge*.1 distance = distance + temp trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Sum 2" if temp < @threshold min_dist = distance + temp + @edge*.1 distance = distance + min_dist + .1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif endif endif endif elseif @follow == false if @version < 2.47 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if iter >= @skip && iter < @show if @edges == "Closest" if temp < min_dist min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "First" if temp < @threshold min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Last" if temp < @threshold && !trapped min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Average" if temp < @threshold min_dist = dave + @edge*.1 distance = dave trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Farthest" if temp > min_dist && temp < @threshold min_dist = temp + @edge*.1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Sum" if temp < @threshold min_dist = distance + temp + @edge*.1 distance = distance + temp trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif elseif @edges == "Sum 2" if temp < @threshold min_dist = distance + temp + @edge*.1 distance = distance + min_dist + .1 trap_z = z1 trap2_z = #z trap_iter = iter trap_point = a trapped = true endif endif endif endif endif iter = iter + 1 if @version < 2.45 iter = i endif i = i + 1 z_values[i] = #z final: if trapped 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 = ((temp-@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 = ((temp-@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 = ((temp-@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 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 = ((temp-@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 = ((temp-@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 if @inv == true if real(1/@msk) > min_dist && !(@msk == 0) #solid = true endif else if real(1/@msk) < min_dist && !(@msk == 0) #solid = true endif endif ;#index = tmp if @coloring == 0 ; Distance tmp = min_dist elseif @coloring == 1 ; Magnitude tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @coloring == 2 ; Iteration tmp = 0.01 * real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) elseif @coloring == 3 ; Real tmp = real(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @coloring == 4 ; Imaginary tmp = imag(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @coloring == 5 ; Angle float b = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if b < 0 b = b + 2 * #pi endif b = 1 / (2 * #pi) * b tmp = b elseif @coloring == 6 ; Modulated iteration tmp = (real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) % @iter_mod) / @iter_mod elseif @coloring == 7 ; Random iteration tmp = (((ra * (real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) + @rnd) + rc) % rm) % @iter_mod) / @iter_mod elseif @coloring == 8 ; Real #2 - corrected by using absolute value tmp = abs(real((@colorFn(trap_z-@tz1)*@tz2)^@tz3)) elseif @coloring == 9 ; Imaginary - ditto tmp = abs(imag((@colorFn(trap_z-@tz1)*@tz2)^@tz3)) elseif @coloring == 10 ; Angle to trap float b = atan2((@colorFn((trap_z-trap_point)-@tz1)*@tz2)^@tz3) if b < 0 b = b + 2 * #pi endif b = 1 / (2 * #pi) * b tmp = b endif #index = real(@indfn(tmp^@shad+(texture)))+(tx*@txamt/10)/100 + t2*(tx*@txamt/10)/100 \ + rn*@r*(tx*@txamt/10)/100 else #solid = true endif default: title = "Harlequin II" param version caption = "Version" default = 2.47 visible = false endparam int param edges caption = "Trapping Mode" enum = "Closest""First""Last""Average""Farthest""Sum""Sum 2" default = 0 hint = "'Closest' is the default mode with continuous elements. 'First' \ gives the elements discrete edges with the earlier, smallier \ elements overlaying the later ones. 'Last' overlays the larger \ elements over the smaller ones.'Element Width' determines the \ element cutoff" endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @edges == 3 endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @edges == 3 endparam float param threshold caption = "Element Width" default = 1 hint = "Use this to vary the cutoff of the elements using 'First' and \ 'Last' trapping modes" visible = @edges != "Closest" endparam param coloring caption = "Coloring Mode" enum = "Distance" "Magnitude" "Iteration" "Real" "Imag" "Angle" \ "Modulated Iter" "Random Iter" "Real #2" "Imag #2" "Angle to Trap" endparam float param iter_mod caption = "No. of Colors" default = 8.0 visible = @coloring == "Modulated Iter" || @coloring == "Random Iter" hint = "The number of different colors used for the Modulated Iter \ and Random Iter coloring modes." endparam param rnd caption = "Random Seed" default = 0 visible = @coloring == "Random Iter" hint = "This is the random seed for the Random Iter coloring mode." endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @coloring > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @coloring > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @coloring > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @coloring > 0 endparam int param @skip caption = "Start Iteration" default = 0 hint = "Indicates on which iteration trapping will start." endparam int param @show caption = "Max Iterations" default = 100000 hint = "How many iterations can be shown from the end back." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam float param edge caption = "Edge Definition" default = 0 hint = "As you increase this param the fractal elements begin to \ have defined edges, like in the 'First' trapping \ mode. You will have to adjust the gradient. Generally \ you will want to stay with positive values" endparam param variation caption = "Variation" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15" default = 1 endparam param spin caption = "Spin" enum = "1""2""3""4""5" default = 1 visible = @variation != 0 endparam param mode caption = "Flavor" enum = "1" "2" default = 1 endparam param opr caption = "Operator" enum = "-""+" default = 0 endparam bool param inv1 caption = "Invert 1" default = false endparam bool param inv2 caption = "Invert 2" default = false endparam float param m caption = "Angle Multiplier" default = 2.0 endparam complex param c caption = "Harlequin Seed 1" default = (0,0) endparam complex param nup1 caption = "Harlequin Seed 2" default = (0,0) visible = @spin != 1 endparam float param expi caption = " X Exponent" default = 1.0 endparam float param expj caption = " Y Exponent" default = 1.0 endparam complex param bb caption = "Element Trim A" default = (0,0) endparam complex param cc caption = "Element Trim B" default = (0,0) endparam float param shad caption = "Shading" default = 1 endparam heading caption = "Functions" endheading func fn caption = "Primary Function" default = atan() endfunc func fn1 caption = "First Function" hint = "This function is used in all variations." default = exp() endfunc func fn3 caption = "Second Function" default = ident() visible = @spin != 1 endfunc func fn2 caption = "Variation 1 Function" hint = "This function is only used in variation 1." default = exp() visible = @variation == 0 endfunc func fnh caption = "Real Function" default = ident() endfunc func fni caption = "Imag Function" default = ident() endfunc func fnbb caption = "Extra Function 1" default = ident() endfunc func fncc caption = "Extra Function 2" default = ident() endfunc func indfn caption = "Final Index Function" default = ident() hint = "Changes the 'shading' of the elements." endfunc ;********************************************************** heading caption = "New Shaping Parameters" endheading bool param newStuff caption = "New Shaping Parameters" default = true endparam func nufnh caption = "X Function" default = ident() visible = @newStuff endfunc func nufni caption = "Y Function" default = ident() visible = @newStuff endfunc complex param x1 caption = "X Offset" default = (0,0) visible = @newStuff endparam complex param y1 caption = "Y Offset" default = (0,0) visible = @newStuff endparam complex param x2 caption = "X Strength" default = (1,0) visible = @newStuff endparam complex param y2 caption = "Y Strength" default = (1,0) visible = @newStuff endparam complex param x3 caption = "X Power" default = (1,0) visible = @newStuff endparam complex param y3 caption = "Y Power" default = (1,0) visible = @newStuff endparam int param ztype caption = "Mix Species" enum = "Normal""Modulus(z)""Atan2(z)""Real(z)""Imag(z)" default = 0 visible = @newStuff endparam func ztypeFn caption = "Mix Function 1" default = ident() hint = "Changes the shape of the elements" visible = @newStuff endfunc complex param zamt1 caption = "Mix Offset" default = (0,0) visible = @newStuff endparam complex param zamt2 caption = "Mix Strength" default = (1,0) visible = @newStuff endparam complex param zamt3 caption = "Mix Power" default = (1,0) visible = @newStuff endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @newStuff endparam func varFn caption = "X/Y Function" default = ident() visible = @newStuff endfunc complex param xb1 caption = "X/Y Offset" default = (0,0) visible = @newStuff endparam complex param xb2 caption = "X/Y Strength" default = (1,0) visible = @newStuff endparam complex param xb3 caption = "X/Y Power" default = (1,0) visible = @newStuff endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 hint = "These an extra set of X and Y values to the definition of Z whose \ strength and associated functions can be varied according to the \ parameters below" visible = @newStuff endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @newStuff endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @newStuff endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @newStuff endparam heading caption = "Masking" visible = @msk == 0 endheading heading caption = "Masking [active]" visible = @msk != 0 endheading float param msk caption = "Masking" default = 0.0 endparam param inv caption = "Invert Mask" default = false endparam heading caption = "Morph Parameters" visible = (@change == 0 && @exp1 == (1,0) && @exp2 == (1,0) && @exp1 == (1,0) \ && @tw == (0,0) && @tw2 == (0,0) && @tw3 == (0,0) && @th2 == false) endheading heading caption = "Morph Parameters [active]" visible = (@change != 0 || @exp1 != (1,0) || @exp2 != (1,0) || @exp1 != (1,0) \ || @tw != (0,0) || @tw2 != (0,0) || @tw3 != (0,0) || @th2 == true) endheading param adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam bool param th2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @th2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @adv && @th2 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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @th2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @th2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @th2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @th2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @th2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @th2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @th2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @th2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @th2 && @adv && @change > 5 endfunc 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 = true 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 = true 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 = true 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 } ThinOrbitTrapsII-Sam+tma (BOTH) { ; By Samuel Monnier, mods by Toby Marshall (ver 2.7, 16 Apr. 2008) ; ; new in 1.7: texture functionality extended--check hint and ; additional choices in the "Choose z type" texture params. ; ; new in 1.8: added a "Geometrix" texture based on code ; by Dennis Magar ; ; new in 1.81: optimized the Morph code and added a few ; enhancements to the fBm, Geometrix and Additional textures. ; ; new in 2.0: many new parameters and functions added under ; "Extra Shaping Parameters" to change the shapes and more ; importantly the appearance of the elements. Some of the ; "Super Shaper" params (#s2-4) have been renamed as, ; repsectively, "X Strength", "X Power", "Y Strength and ; "Y Power" for consistency. New "Color By" coloring modes ; have been added including a corrected Angle mode, Magnitude, ; Real and Imaginary, with some parameters and a function to ; vary them. ; ; new in 2.1: added some bells and whistles to the fBm texture ; section--check the hints... ; ; new in 2.3: added "limited iterations". Many thanks to ; Damien M. Jones for allowing me to use this code of his. ; ; new in 2.4: added pattern repeat param to limited iter code, ; adapted from Ron Barnett. ; ; new in 2.6: rationalized and standardized limited iter code. ; ; new in 2.7: added a "Fission" param, renamed "Closest Ppwer 1" ; to "Closest Power" and "Closest Power 2" to "Edge Definition". ; In addition, I found "Closest Power" to be redundant and therefore ; dropped it from this version. ; ; This is basically Samuel's "Thin Orbit Traps" with a lot of ; new trap shapes and added bells and whistles which I hope ; will act as enhancements to his original work. Here are some ; notes and tips: ; ; TRAP SHAPES: Included are all the trap shapes from Ken ; Childress' "Plane Curve Traps" (kcc3.ucl), many of which ; were adapted from the original "Thin Orbit Traps", as ; well as all the traps shapes from "Plane Curve Traps II" ; (tma.ucl). They contain all the modifying parameters and ; functions from those colorings, which can be accessed under ; "Trap Parameters". ; ; MODES: Samuel's original three modes have been retained. ; I've added a number of parameters specific to each mode, ; which appear under the heading "Mode Options" when the ; appropriate mode is selected. ; ; COLORINGS: I've added the possibility to color according ; to iteration, modulated iteration and angle. With ; modulated iter you can enter decimal values (as opposed to ; integers only). This retains the modulation but also creates ; a color phase shift across the elements--sort of a cross between ; modulated and normal iterated modes. You will also find a parameter ; to vary how much of the gradient is used in this process. ; It is called "Range Depth" and can be found under the heading ; "Coloring Parameters" when the "Modulated Iter" mode is active. ; ; GLOBAL PARAMETERS: These affect the image in all modes ; and colorings. ; ; ANGLE PARAMETERS: A number of things in here allow you ; to change the shading and visualization of elements ; when in the "Angle" Coloring (and visible only then). ; ; MASKING: There is a distance mask and also an "Extra Angle" ; mask that masks for angle values instead of distance, which ; should be used with the "Angle" coloring. This can be used ; concurrently with the normal mask if desired.This mask is ; extremely sensitive to mode changes, and the effective mask ; value may vary widely depending on the mode and trap chosen. ; ; EXTRA SHAPING PARAMETERS: Yet more parameters to change the ; trap shapes and behavior. These are hidden by default to ; make navigation on the tab easier. ; ; MORPH: I've included the code I stumbled across that ; changes the basic value of #Z, thereby changing the ; shape of the traps in (hopefully) interesting ways. ; Included in this version are the original Morph ; parameters and "Morph II" parameters. ; ; When "Morph II" is activated by default only ; "Morph function Z1" is active; you must set ; "Morph function Z2" & 3 to some function other than ; "zero" to activate them when they appear as the ; appropriate Morph choice is selected. ; ; When "Morph II" is active there is also the possibility ; of choosing the variable type for Z1-3 in any of the ; three positions where that secondary Z expression appears, ; via the "Z1(2,3)Type" parameters. ; ; TEXTURES: The texture parameters here are essentially ; taken straight from Michèle Dessureault' work, with a ; few added params. The "Additional" texture params are ; adapted from Dennis Magar. Note that the five different ; types of textures can be implemented simultaneously. ; ; When choosing texture initializations that inclue the ; variable "z" you have three choices, "#z", "Morph z" ; and "Trap z". Textures made with #z will not change ; when changes are made to parameter values. Using ; "Morph z" will change the textures when the morph ; params are changed, and using "Trap z" will change ; the textures both when morph params and some global ; params are changed. ; ; MISCELLANEOUS TIPS: (Just some things I have observed) ; ; "Iteration" and "Modulated Iter" colorings follow the ; trap shapes in "Closest" mode and the formula-produced ; iterations in "Sum". So the trap shapes in "Sum" can be ; colored by overlaying an identical layer of "Closest" ; with the desired coloring. ; ; Try altering the values of X and Y Exponent to change the ; width of the trapped elements. Sometimes this makes them ; appear more "Thingamajigs"-like. ; ; Using the "ceil" enumeration of the "Closest Function" ; will give a good and clean visualization of the current ; trap shape, iterated according to the formula. ; ; Many parameters and functions which seem either overly ; redundant or similar to others may "come to life" ; when other parameters and/or functions are changed. ; ; DISCLAIMER: While I know that this coloring includes ; a mind-numbing array of possibilities I believe it ; is possible to achieve interesting results using a ; minimal number of options. Wade into the parameter ; jungle at your own risk ;-) ; ; My thanks to Samuel for allowing me to tweak his ; work and distribute the result, to Ken Childress ; for letting me include his trap shape code and for ; his always good advice, as well as to Keith ; Mackay for inspiration and suggestions. On the ; texture front I must thank Michèle Dessureault and ; Dennis Magar first and foremost for their kind ; acquiescence in allowing me to lift their texturing ; code bodily and suture it in this coloring. Many ; thanks also to Damien M. Jones for allowing me to ; use his fBm texturing and to Andreas Lober for his ; permission to include his "Popgnarl" textures. ; init: float d = 0 if @mode == 1 || @mode == 2 d = 1e20 endif int i = 0 int ist = 0 complex dist = (0,0) float dist2 = 0 float min_dist = 1e20 complex z = (0,0) float t2 = 0 float tx = abs(@tp) float txx = 0 float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) float texture=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 complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,0) complex trap_z = (0,0) complex trap2_z = (0,0) int trap_iter = 0 float texture_tr = 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] complex z1p = (0,0) complex z1q = (0,0) complex qw = (0,0) complex er = (0,0) complex ty = (0,0) float za = 0 complex nuvar = (0,0) bool trapped = false bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z if @th2 == 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 z_values[i] = #z i = i + 1 if i > @skip1 && i <= @skip2 if @version < 2.6 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @pshape == "normal" z = ((@fnx(z1^@a))-@c)*exp(1i*pi/180*@rot)/@size elseif @pshape == "acosh" z = ((@fnx(z1^@a))-@c)*acosh(1i*pi/180*@rot)/@size elseif @pshape == "acos" z = ((@fnx(z1^@a))-@c)*acos(1i*pi/180*@rot)/@size endif float x = sqrt(@rat)*real(@fnxx((z-@p0)*@p1)^@p2) float y = 1/sqrt(@rat)*imag(@fnyy((z-@q0)*@q1)^@q2) x = real(@fncx(x+@ppx)^@expx) y = real(@fncy(y+@ppy)^@expy) if @trapType == "Alien Waves" dist = @fn1(@fn2(((y*@shapeAdjust1)/@fn5(x*@shapeAdjust4))\ ^@fn4(y^@shapeAdjust2)-@fn6(x^@shapeAdjust5)-@fn3(y+(1-@shapeAdjust3))))\ -@distort elseif @trapType == "Bad Hair Day" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn5(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4)))-@distort elseif @trapType == "Barbed Wire" dist = @fn1(abs(@fn2(x^@shapeAdjust4*@shapeAdjust1))+ \ abs(@fn3((y*@shapeAdjust3)^@fn4(y*@shapeAdjust2)))-1)- @distort elseif @trapType == "Baubles & Bangles" dist = @fn1((@fn2(x^(2*@shapeAdjust1)-1))^2+@fn3(y^2+(1-@shapeAdjust2))* \ @fn4(y^(.2*@shapeAdjust3)-1)*@fn5(y*@shapeAdjust4-2)* \ @fn6(y+(3-@shapeAdjust5)))-@distort elseif @trapType == "Bighorn Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)+(@fn3(y^2*@shapeAdjust2)* \ @fn4(y^2+(1-@shapeAdjust6)))*@fn5(y^(5-@shapeAdjust7))/ \ @fn6(x^(2*@shapeAdjust3))*@fn7(x^2*@shapeAdjust4-@fn8 \ (y^@shapeAdjust5)))-@distort elseif @trapType == "Binary Curve" dist = @fn1((@fn2(x^(3-@shapeAdjust5))-@shapeAdjust1)/@fn3 \ (x^2-2*@shapeAdjust3)^2+ @fn4(y^(2-@shapeAdjust4)-@shapeAdjust2^2)^2)\ -@distort elseif @trapType == "Bird of Paradise" dist = @fn1(atan(@fn4((x*@shapeAdjust1)*@fn3(y^@shapeAdjust3)))- \ @fn2(y*@shapeAdjust2))-@distort elseif @trapType == "Cabuchon Curve" dist = @fn1(@fn2(x^(@shapeAdjust3)))-@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((x^(2*@shapeAdjust7)) \ +@fn6(y^2+(1-@shapeAdjust6)))/@shapeAdjust2^2-@fn5(x*@shapeAdjust5)\ -@distort elseif @trapType == "Cardinal Points Curve" dist = @fn1(@fn2(x^4+(1-@shapeAdjust2))-@fn3(y^(3+@shapeAdjust3))-2* \ @fn4(abs(x^(3-@shapeAdjust4))-@fn5(y^2*@shapeAdjust1)))-@distort elseif @trapType == "Chaos Adorned" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))^ \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Chaos Unleashed" dist = @fn1(@shapeAdjust1^4*@fn2((y^@shapeAdjust3)^@fn5(y*@shapeAdjust4))- \ @shapeAdjust2^2*@fn3((x^@shapeAdjust5)^@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Church Key Curve" dist = @fn1(@fn2((x*@shapeAdjust4)^@shapeAdjust1))+ \ @fn3(y*2.4*@shapeAdjust2)^@fn4(y-(1-@shapeAdjust3))-@distort elseif @trapType == "Compass Curve" dist = @fn1((@fn2(x^2*@shapeAdjust1))*(@fn3(x^2*@shapeAdjust3)+ \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust5)))-@distort elseif @trapType == "Conductor's Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)-@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Conjoined Circle Curve" dist = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3(y^(2*@shapeAdjust3)))*\ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))-@shapeAdjust1- \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Cooking Pot Curve" dist = @fn1(@fn2(y^2*@shapeAdjust2)-(@shapeAdjust1^2- \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*(@shapeAdjust5)))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Cosmic Rays" dist = @fn1(@fn2(x^(2*@shapeAdjust1))*@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)/@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Crochet Hooks" dist = @fn1(@fn2(y^3*@shapeAdjust1)+(@fn3((x+(1-@shapeAdjust2))^ \ @fn5(y^@shapeAdjust3)/@fn4((x*@shapeAdjust4)^@ShapeAdjust5))))- \ @distort elseif @trapType == "Crosshatch Curve" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)* \ @fn3(y+(1-@shapeAdjust3))))-@distort elseif @trapType == "D&U Curve" dist = @fn1(@fn2(x^(2*@shapeAdjust1))+@fn3((y^(2*@shapeAdjust4))^ \ @fn4(y*@shapeAdjust2))-@shapeAdjust3)-@distort elseif @trapType == "Dogleg Curve" dist = @fn1(atan(@fn4((x*@shapeAdjust1)+@fn3(y^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(y^@shapeAdjust3))-@distort elseif @trapType == "Double Circle Curve" dist = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))*\ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Double Trine" dist = @fn1(atan(@fn4((x*@shapeAdjust1)*@fn3(y^@shapeAdjust3)))- \ @fn2(y*@shapeAdjust2)/@fn5(x^@shapeAdjust4))-@distort elseif @trapType == "Dribs & Drabs" dist = @fn1((@fn2(x^@shapeAdjust2)+@fn3(y^(2+@shapeAdjust3))^ \ @fn6(y^@shapeAdjust6)-4*@fn4(x^(3*@shapeAdjust4))* \ @fn5(y^(2*@shapeAdjust5))*@shapeAdjust1^2))-@distort elseif @trapType == "Driftwood Curve" dist = @fn1(((@fn2(x^@shapeAdjust3)-.5*@shapeAdjust10)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(y+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust11)+ \ @fn6(y^(1+@shapeAdjust7)))+4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-1.5*@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Dulcimer Curve" dist = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))*\ (@fn4(y^@shapeAdjust4)*@fn5(y^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Eye of the Needle" dist = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2*@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Exclamation Point" dist = @fn1(@fn2(x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)*@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Fatback" dist = @fn1(@fn2(x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)/@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Floreate Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)+@fn3((y*@shapeAdjust4)^ \ @fn4(y*@shapeAdjust2))-@shapeAdjust3)-@distort elseif @trapType == "Glyph Curve" dist = @fn1(((@fn2(x*@shapeAdjust3)-@shapeAdjust2)^2- \ @fn3(y^2*@shapeAdjust4))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Gravity Waves" dist = @fn1(atan(@fn4((x^(2*@shapeAdjust1))+@fn3(y^@shapeAdjust4)* \ 2*@shapeAdjust2))-@fn2(y^@shapeAdjust3))-@distort elseif @trapType == "Harpoon Curve" dist = @fn1(@fn2(x^(2*@shapeAdjust3)))*@fn3(y^2*@shapeAdjust4)+ \ @shapeAdjust1^2-@fn4((x*@shapeAdjust7)^@fn6(y*@shapeAdjust6))- \ @shapeAdjust2^2-@fn5(x^@shapeAdjust5)-@distort elseif @trapType == "Hook & Spar" dist = @fn1(@fn2(y^@shapeAdjust1))-@fn3(y*@shapeAdjust2)^ \ @fn4(x^@shapeAdjust3)-@distort elseif @trapType == "Hoops & Plates" dist = @fn1((@fn2((x+(1-@shapeAdjust4))^@fn5(x+(1-@shapeAdjust4)))+ \ @fn3(y^2*@shapeAdjust2)+@shapeAdjust1)^2-4*@shapeAdjust1^2* \ @fn4(x^@shapeAdjust3)-1)-@distort elseif @trapType == "Horned Torus Curve" dist = @fn1(@fn2(y^2*@shapeAdjust1)-(@fn3(x^2*@shapeAdjust2)+ \ @fn4(y^2+(1-@shapeAdjust6)))*@fn5(x^(4*@shapeAdjust7))/ \ @fn6(x^(3-@shapeAdjust3))/@fn7(x^2*@shapeAdjust4/@fn8 \ (y^@shapeAdjust5)))-@distort elseif @trapType == "Indented Parabola" dist = @fn1(@fn2(y^@shapeAdjust1))+@fn3(x*.2*@shapeAdjust2)- \ @fn4(y^(2*@shapeAdjust3))-@distort elseif @trapType == "Intersecting Ovals" dist = @fn1(@fn2(x^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Leaves of Grass" dist = @fn1(@fn2(y^@shapeAdjust1))-@fn3(x*@shapeAdjust2)^ \ @fn4(y^@shapeAdjust3)-@distort elseif @trapType == "Lipped Ovals" dist = @fn1(abs(@fn2(x^2*@shapeAdjust3*@shapeAdjust1))+ \ abs(@fn3(y^@shapeAdjust2))-1)-@distort elseif @trapType == "M Curve" dist = @fn1(@fn2(y^@shapeAdjust1))+@fn3(@shapeAdjust4*x^(3*@shapeAdjust2))-\ @fn4(y^(2*@shapeAdjust3))-@distort elseif @trapType == "Mercury Curve" dist = @fn1(((@fn2(x*@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2*@shapeAdjust4))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Miscellanea" dist = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5((y*@shapeAdjust10)^(@fn10(x^@shapeAdjust11))) \ -@shapeAdjust2)+4* (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)\ +2*@fn8(y^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Moorish Fantasy" dist = @fn1(@fn2((x*@shapeAdjust4)^@shapeAdjust1))- \ @fn3(y*@shapeAdjust2)^@fn4(y-(1-@shapeAdjust3))-@distort elseif @trapType == "Mousehead Curve" dist = @fn1(((@fn2(x^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(y^(2*@shapeAdjust9)))-@distort elseif @trapType == "Tsuba curve" dist = @fn1(@fn2(y^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Nested Ovals" dist = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1^2- \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Nesting Birds Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((.2*y*@shapeAdjust6)^ \ @fn9(y*@shapeAdjust2))*@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))/@fn6(x^(2*@shapeAdjust8))* \ @fn7(x^2*(3*@shapeAdjust4)-@fn8(.5*y^@shapeAdjust5)))-@distort elseif @trapType == "O-nami Curve" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))/ \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Odds 'n Ends" dist = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2-@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Omega Curve" dist = @fn1(atan(@fn4((x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust2))+@fn2(x^@shapeAdjust3))-@distort elseif @trapType == "Ornate Curve" dist = @fn1((@fn2(y^(2*@shapeAdjust7))/@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1-@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2*@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Ovals" dist = @fn1(@fn2(x*@shapeAdjust2-@fn6(y*@shapeAdjust4))- \ @fn3(x^2*@shapeAdjust3+@fn4(y^(2*@shapeAdjust5)))-2* \ @shapeAdjust1*@fn5(y^(2*@shapeAdjust6)))-@distort elseif @trapType == "Ovate Waves" dist = @fn1(@fn2(y^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(y^2*@shapeAdjust4)-@fn4((y*@shapeAdjust7)^ \ @fn6(y^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust6)))-@distort elseif @trapType == "Ovate Waves 2" dist = @fn1(@fn2(y^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(y^2*@shapeAdjust4)-@fn4((x*@shapeAdjust7)^ \ @fn6(x^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust6)))-@distort elseif @trapType == "Pacifier Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)/@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Parenthetical Curve" dist = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))-atan \ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))+@shapeAdjust1* \ abs(@fn6(y+(1-@shapeAdjust6))))-@distort elseif @trapType == "Pincers" dist = @fn1(@fn2(x^2*@shapeAdjust1)/@fn3(y^(1+@shapeAdjust3))+ \ @fn4((y^@shapeAdjust4)^@fn6(y*@shapeAdjust2))/ \ @fn5(y^2+(1-@shapeAdjust5)))-@distort elseif @trapType == "Pisces Curve" dist = @fn1((@fn2(x^(2*@shapeAdjust1))-1)^2-@fn3(.6*y^2+(1-@shapeAdjust2))* \ @fn4(y^@shapeAdjust3-1)*@fn5(y*@shapeAdjust4-1)* \ @fn6(3*y+(6-@shapeAdjust5)))-@distort elseif @trapType == "Plane & Tail" dist = @fn1(@shapeAdjust1^4/@fn2((x^(2*@shapeAdjust3))+@fn5(y^@shapeAdjust4))*\ @shapeAdjust2^2-@fn3((x^(2*@shapeAdjust5))^@fn6(x+(1-@shapeAdjust6)))/\ (2*@shapeAdjust1/@fn4(y^@shapeAdjust7)))-@distort elseif @trapType == "Plane & Tail 2" dist = @fn1(@shapeAdjust1^4/@fn2((x^(2*@shapeAdjust3))+@fn5(y^@shapeAdjust4))\ *@shapeAdjust2^2-@fn3((x^(2*@shapeAdjust5))^ \ @fn6(x+(1-@shapeAdjust6)))/(2*@shapeAdjust1-@fn4(y^@shapeAdjust7)))\ -@distort elseif @trapType == "Seagull Curve" dist = @fn1(@fn2(y^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(y^(5-@shapeAdjust3))+@fn5(x+(1-@shapeAdjust5))+ \ @fn4(y^(7-@shapeAdjust4))))-@distort elseif @trapType == "Simple Curve" dist = @fn1(atan(@fn4((x^@shapeAdjust4*@shapeAdjust1)- \ @fn3(y^@shapeAdjust5)*@shapeAdjust2))-@fn2(y^@shapeAdjust3))- \ @distort elseif @trapType == "Smoke Rings" dist = @fn1(@shapeAdjust1^4+@fn2((@shapeAdjust8*x^(2*@shapeAdjust3))* \ @fn5(y^@shapeAdjust4))- @shapeAdjust2^2-@fn3((x^(@shapeAdjust5)) \ ^@fn6(x+(1-@shapeAdjust6)))/ (2*@shapeAdjust1-@fn4(y^@shapeAdjust7))) \ -@distort elseif @trapType == "Sneering Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)+@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Space Debris" dist = @fn1(@shapeAdjust1^4*@fn2((y^2*@shapeAdjust3)/@fn5(x^2*@shapeAdjust4))-\ @shapeAdjust2^2*@fn3((x^@shapeAdjust5)^@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Spectacles Curve" dist = @fn1(@fn2(x^4*@shapeAdjust2)+@fn3(y^4*@shapeAdjust3)-2* \ @shapeAdjust5*@fn4(abs(x^@shapeAdjust4)- \ @fn5(y^2*@shapeAdjust1)))-@distort elseif @trapType == "Spiked Cusp" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)* \ @fn3(x*@shapeAdjust3)))-@distort elseif @trapType == "Squared Circle Curve" dist = @fn1((@fn2(x^2*@shapeAdjust1))*(@fn3(x^2*@shapeAdjust3)- \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2/2+ \ @fn5(y^(4*@shapeAdjust5)))-@distort elseif @trapType == "Squeezed Rectangle Curve" dist = @fn1(@fn2(x^2*@shapeAdjust2)-@shapeAdjust1* \ (@fn3(y^(5-@shapeAdjust3))-@fn5(x^@shapeAdjust5)- \ @fn4(y^(7-@shapeAdjust4))))-@distort elseif @trapType == "Swallow Curve" dist = @fn1(@fn2((x^2*@shapeAdjust2))-@fn3((y^2*@shapeAdjust3)))^2-4* \ @shapeAdjust1*@fn4((x^@shapeAdjust5^@fn6(y^2*@shapeAdjust4))* \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Stretched Oval Curve" dist = @fn1(@shapeAdjust1^4+@fn2((y^(2*@shapeAdjust3))/@fn5 \ (x^(2*@shapeAdjust4)))-@shapeAdjust2^2*@fn3((x^(2*@shapeAdjust5))\ *@fn6(x+(1-@shapeAdjust6)))*(2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Switchback Curve" dist = @fn1(atan(@fn4((x^(2*@shapeAdjust1))*@fn3(y^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(x^@shapeAdjust3))-@distort elseif @trapType == "Taurus Curve" dist = @fn1(@fn2(x^(@shapeAdjust3)))-@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((x^(2*@shapeAdjust7))+@fn6(y^2+(1-@shapeAdjust6)))/ \ @shapeAdjust2^2*@fn5(x^@shapeAdjust5)-@distort elseif @trapType == "Teardrop Curve" dist = @fn1(@shapeAdjust1^4*@fn2((y^(2*@shapeAdjust3))/@fn5(x^2*@shapeAdjust4))- \ @shapeAdjust2^2*@fn3((x^(2*@shapeAdjust5))/@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Tennis Anyone?" dist = @fn1(@fn2(x^2*@shapeAdjust3)+2*@shapeAdjust1* \ @fn3((x^@shapeAdjust7)-@fn6(y*@shapeAdjust4))- \ @shapeAdjust1^2)^2-@fn4(y^2*@shapeAdjust5)* \ (@shapeAdjust2^2-@fn5(x^2*@shapeAdjust6))- @distort elseif @trapType == "Thick 'n Thin" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)/ \ @fn3(y+(1-@shapeAdjust3))))-@distort elseif @trapType == "Thorned Cross" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn5(y^@shapeAdjust2)* \ @fn3(x*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4)))-@distort elseif @trapType == "Three Point Curve" dist = @fn1((@fn2(x^2)-@shapeAdjust1^2)*@fn3(x^2-@shapeAdjust3)^2+ \ @fn4(y^(4-@shapeAdjust4)-@shapeAdjust2^2)^2)- @distort elseif @trapType == "Wheel in Trough" dist = @fn1((@fn2((x*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(y^2*@shapeAdjust3))*atan2(@fn4(y^@shapeAdjust7)* \ @fn5(x^(1+@shapeAdjust5)))-@shapeAdjust1* \ @fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Whip Curve" dist = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))- \ @fn5(y^(2*@shapeAdjust5)))-@distort endif if @trapType == "Ampersand Curve" dist = @fn1((@fn2(y^(2*@shapeAdjust3))-@fn3(x^2+(1-@shapeAdjust4)))* \ @fn4((x^@shapeAdjust5)-1)*(@shapeAdjust1*@fn5(x)-@shapeAdjust2)- \ 4*(@fn6(x^2*@shapeAdjust6)+@fn7(y^(2*@shapeAdjust7))-2* \ @fn8(x^@shapeAdjust8))^2)-@distort elseif @trapType == "ArcTangent" dist = @fn1(atan(@fn2(x^@shapeAdjust1*@shapeAdjust3))- \ @fn3(y^@shapeAdjust2))-@distort elseif @trapType == "Bean Curve" dist = @fn1(@fn2(x^4*@shapeAdjust1)+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^(2*@shapeAdjust3))+@fn5(y^4*@shapeAdjust4)- \ @fn6(x^@shapeAdjust5)*@fn7(x^(2*@shapeAdjust6)+ \ @fn8(y^2+(1-@shapeAdjust7))))-@distort elseif @trapType == "Bicorn Curve" dist = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1^2-@fn3(x^2)))- \ (@fn4(x^(2*@shapeAdjust3))+2*@shapeAdjust1* \ @fn5(y^@shapeAdjust4)-@shapeAdjust1^2)^2-@distort elseif @trapType == "Bicuspid Curve" dist = @fn1(@fn2(x^(2*@shapeAdjust2)-@shapeAdjust1^2)* \ @fn3(x^@shapeAdjust3-@shapeAdjust1)^2+ \ @fn4(y^(2*@shapeAdjust4)-@shapeAdjust1^2)^2)-@distort elseif @trapType == "Bifoliate" dist = @fn1(@fn2(x^4*@shapeAdjust2)+@fn3(y^4*@shapeAdjust3)- \ 2*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(2*@shapeAdjust5))))-@distort elseif @trapType == "Bifolium" dist = @fn1(@fn2(x^(1+@shapeAdjust2))+@fn3(y^2+(1-@shapeAdjust3)))^2- \ 4*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(3-@shapeAdjust5)))-@distort elseif @trapType == "Bow" dist = @fn1(@fn2(x^4*@shapeAdjust1)-@fn3(x^2+(1-@shapeAdjust2))* \ @fn4(y^@shapeAdjust3)+@fn5(y^3*@shapeAdjust4))-@distort elseif @trapType == "Butterfly Curve" dist = @fn1(@fn2(y^(6*@shapeAdjust1))-(@fn3(x^2+(1-@shapeAdjust2))- \ @fn4(x^6+(1-@shapeAdjust3))))-@distort elseif @trapType == "Cassini Ovals" dist = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^2*@shapeAdjust4)+ \ @shapeAdjust1^2)^2-4*@shapeAdjust1^2* \ @fn4(x^(3-@shapeAdjust5))-@shapeAdjust2^4)-@distort elseif @trapType == "Circle" dist = @fn1(@fn2((x*@shapeAdjust1)^(3-@shapeAdjust2))+ \ @fn3((y*@shapeAdjust3)^(3-@shapeAdjust4))-1)-@distort elseif @trapType == "Cissoid of Diocles" dist = @fn1(@fn2(x^@shapeAdjust2)*@fn3(x^2+(1-@shapeAdjust3)+ \ @fn4(y^2*@shapeAdjust4))-2*@shapeAdjust1* \ @fn5(y^2+(1-@shapeAdjust5)))-@distort elseif @trapType == "Cochleoid" dist = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))* \ atan(@fn4(y^@shapeAdjust4)/@fn5(x^@shapeAdjust5))- \ @shapeAdjust1*abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Cocked Hat" dist = @fn1(@fn2(x^2*@shapeAdjust3)+2*@shapeAdjust1*@fn3(y^@shapeAdjust4)- \ @shapeAdjust1^2)^2-@fn4(y^(3-@shapeAdjust5))* \ (@shapeAdjust2^2-@fn5(x^2*@shapeAdjust6))-@distort elseif @trapType == "Conchoid of Nicomedes" dist = @fn1((@fn2(x-@shapeAdjust1))^2*(@fn3(x^(2*@shapeAdjust3))+ \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(x^2*@shapeAdjust5))-@distort elseif @trapType == "Cruciform" dist = @fn1(@fn2(x^2*@shapeAdjust3)*@fn3(y^(1+@shapeAdjust4))- \ @shapeAdjust1^2*@fn4(x^(1+@shapeAdjust5))-@shapeAdjust2^2* \ @fn5(y^(3-@shapeAdjust6)))-@distort elseif @trapType == "Devil's Curve" dist = @fn1(@fn2(y^(3+@shapeAdjust4))-@shapeAdjust1^2* \ @fn3(y^2+(1-@shapeAdjust5))-@fn4(x^4*@shapeAdjust3)+ \ @shapeAdjust2^2*@fn5(x^(1+@shapeAdjust6)))-@distort elseif @trapType == "Diamond" dist = @fn1(abs(@fn2(x*@shapeAdjust1))+abs(@fn3(y^@shapeAdjust2))-1)- \ @distort elseif @trapType == "Dumbbell Curve" dist = @fn1(@fn2(y^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(x^(5-@shapeAdjust3))-@fn4(x^(7-@shapeAdjust4))))-@distort elseif @trapType == "Dürer's Conchoid" dist = @fn1(2*@fn2(y^(1+@shapeAdjust3))*(@fn3(x^(1+@shapeAdjust4))+ \ @fn4(y^2*@shapeAdjust5))-2*@shapeAdjust2* \ @fn5(y^2+(1-@shapeAdjust6))*(@fn6(x^@shapeAdjust7)+ \ @fn7(y+(1-@shapeAdjust8)))+(@shapeAdjust2^2-3*@shapeAdjust1^2)* \ @fn8(y^(1+@shapeAdjust9))-@shapeAdjust1^2* \ @fn9(x^2*@shapeAdjust10)+2*@shapeAdjust1^2*@shapeAdjust2* \ (@fn10(x^@shapeAdjust11)+@fn11(y^@shapeAdjust12))+ \ @shapeAdjust1^2*(@shapeAdjust1^2-@shapeAdjust2^2))-@distort elseif @trapType == "Eight Curve" dist = @fn1(@fn2(x^(3+@shapeAdjust2))-@shapeAdjust1^2* \ (@fn3(x^2*@shapeAdjust3)-@fn4(y^2*@shapeAdjust4)))-@distort elseif @trapType == "Happy Accident" dist = @fn1((@fn2((x*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(y^2*@shapeAdjust3))*atan2(@fn4(y^@shapeAdjust7)* \ @fn5(x^@shapeAdjust5))-@shapeAdjust1*@fn6 \ (y^@shapeAdjust6))-@distort elseif @trapType == "Hyperbola" dist = @fn1(@fn2((x*@shapeAdjust1)^(1+@shapeAdjust2))- \ @fn3((y*@shapeAdjust3)^(1+@shapeAdjust4)) + 1)-@distort elseif @trapType == "Kappa Curve" dist = @fn1((@fn2(x^(3-@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))* \ @fn4(y^(1+@shapeAdjust4))-@shapeAdjust1^2* \ @fn5(x^2*@shapeAdjust5))-@distort elseif @trapType == "Keppler's Folium" dist = @fn1(((@fn2(x^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+@fn6 \ (y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1)))-@shapeAdjust2)* \ @fn8(y^(2*@shapeAdjust9)))-@distort elseif @trapType == "Keratoid Cusp" dist = @fn1(@fn2(x^(2*@shapeAdjust1))*@fn3(y^@shapeAdjust2)+ \ @fn4(x^(5*@shapeAdjust3))-@fn5(y^(3-@shapeAdjust4)))-@distort elseif @trapType == "Knot Curve" dist = @fn1((@fn2(x^(1+@shapeAdjust1)-1)^2)-@fn3(y^2*@shapeAdjust2)* \ (3+2*@fn4(y*@shapeAdjust3)))-@distort elseif @trapType == "Lemniscate" dist = @fn1((@fn2(x^2+(1-@shapeAdjust2))+@fn3(y^(1+@shapeAdjust3)))^2- \ 2*@shapeAdjust1*(@fn4(x^(2*@shapeAdjust4))- \ @fn5(y^2*@shapeAdjust5)))-@distort elseif @trapType == "Lemniscate Corrected" dist = @fn1(@fn2(x^4+(1-@shapeAdjust2))+@fn3(y^4+(3-@shapeAdjust3))* \ @fn4(x^2*@shapeAdjust4)*@fn5(y^(2*@shapeAdjust5))-2* \ @shapeAdjust1^2*(@fn6(x^(2*@shapeAdjust6))- \ @fn7(y^(1+@shapeAdjust7))))-@distort elseif @trapType == "Limacon" dist = @fn1((@fn2(x^(2*@shapeAdjust3))+@fn3(y^2+(1-@shapeAdjust4))-2* \ @shapeAdjust1*@fn4(x^@shapeAdjust5))^2-@shapeAdjust2^2* \ (@fn5(x^2*@shapeAdjust6)+@fn6(y^2*@shapeAdjust7)))-@distort elseif @trapType == "Line" dist = @fn1(y^@shapeAdjust1)-@distort elseif @trapType == "Links Curve" dist = @fn1((@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-3* \ @fn4(x^@shapeAdjust3))^2-4*@fn5(x^(2*@shapeAdjust4))* \ (2-abs(@fn6(x^@shapeAdjust5))))-@distort elseif @trapType == "Maltese Cross Curve" dist = @fn1(@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-abs \ (@fn4(x^@shapeAdjust3))*abs(@fn5(y+(1-@shapeAdjust4)))* \ (@fn6(x^(2+(1-@shapeAdjust5))-@fn7(y^(2*@shapeAdjust6)))))- \ @distort elseif @trapType == "Parabola" dist = @fn1(@fn2(x^(2*@shapeAdjust1))-@fn3(y^@shapeAdjust2))-@distort elseif @trapType == "Pear-Shaped Curve" dist = @fn1(@fn2(x^(4-@shapeAdjust3))* \ (@shapeAdjust1-@fn3(x^@shapeAdjust4))-@shapeAdjust2^2* \ @fn4(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Piriform" dist = @fn1(@shapeAdjust1^4*@fn2(y^(2*@shapeAdjust3))-@shapeAdjust2^2* \ @fn3(x^(3*@shapeAdjust4))*(2*@shapeAdjust1-@fn4(x/@shapeAdjust5)))- \ @distort elseif @trapType == "Quadrifolium" dist = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))^3-4* \ @fn4(x^2+(1-@shapeAdjust4))*@fn5(y^(3-@shapeAdjust5))* \ @shapeAdjust1^2)-@distort elseif @trapType == "Rose Curve" complex tz = atan2(x + flip(y)) dist = @fn1(@shapeAdjust1*cos(@fn2(tz^@shapeAdjust3)) + \ @shapeAdjust2*sin(@fn3(tz^@shapeAdjust4)))-@distort elseif @trapType == "Serpentine Curve" dist = @fn1(@shapeAdjust1*@shapeAdjust2*@fn2(x^@shapeAdjust3)/ \ @fn3((x+1-@shapeAdjust3)^2+@shapeAdjust1^2)- \ @fn4(y^@shapeAdjust4))-@distort elseif @trapType == "sin(x)/x" dist = @fn1(10*@fn2(sin(x^@shapeAdjust1))/@fn3(x*@shapeAdjust2)- \ @fn4(y^@shapeAdjust3))-@distort elseif @trapType == "Sinus + Cosinus" dist = @fn1(sin(@shapeAdjust1*@fn2(x^@shapeAdjust3))+ \ cos(@shapeAdjust2*@fn3(x+(1-@shapeAdjust4)))+ \ @fn4(y^@shapeAdjust5))-@distort elseif @trapType == "Spiral" dist = abs((x^(2*@shapeAdjust2)+y^(2*@shapeAdjust3))^ \ @shapeAdjust1%1-.5+atan2(x*@shapeAdjust4+ \ (flip(y^@shapeAdjust5)))/(2*pi)) dist2 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+ \ atan2(x+flip(y))/(2*pi)+1) if dist2 < real(dist) dist = real(dist2) endif dist2 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+atan2(x+flip(y))/(2*pi)-1) if dist2 < real(dist) dist = real(dist2) endif dist = dist elseif @trapType == "Square" if abs(x) > abs(y) dist = @fn1(@fn2(abs(x^@shapeAdjust1))-1)-@distort else dist = @fn3(@fn4(abs(y^@shapeAdjust2))-1)-@distort2 endif elseif @trapType == "Stirrup Curve" dist = @fn1(@fn2((x^2-1)^2)-@fn3(y^2)*@fn4(y-1)*@fn5(y-2)* \ @fn6(y+5))-@distort elseif @trapType == "Strange Shape" dist = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3((y*@shapeAdjust8)^ \ (2*@shapeAdjust3)))*atan2(@fn4(x*@shapeAdjust4)^ \ @shapeAdjust7+flip(@fn5(y^@shapeAdjust5)))- \ @shapeAdjust1*@fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Swastika Curve" dist = @fn1(@fn2(y^(4*@shapeAdjust1))-@fn3(x^4*@shapeAdjust2)- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort elseif @trapType == "Tangent" dist = @fn1(tan(@fn2((x*@shapeAdjust1)^@shapeAdjust2))- \ @fn3(y*@shapeAdjust3)^@shapeAdjust4)-@distort elseif @trapType == "Trefoil" dist = @fn1(@fn2(x^(5-@shapeAdjust1))+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^2*@shapeAdjust3)+@fn5(y^(4*@shapeAdjust4))- \ @fn6(x^@shapeAdjust5)*(@fn7(x^2*@shapeAdjust6)- \ @fn8(y^2+(1-@shapeAdjust7))))-@distort elseif @trapType == "Trident" dist = @fn1(@fn2(x^3*@shapeAdjust2)-@shapeAdjust1^3- \ @fn3(x^@shapeAdjust3)*@fn4(y*@shapeAdjust4))-@distort elseif @trapType == "Trident of Descartes" dist = @fn1((@shapeAdjust1+@fn2(x^@shapeAdjust2))* \ (@shapeAdjust1-@fn3(x*@shapeAdjust3))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust4))/ \ (@shapeAdjust1*@fn5(x+(1-@shapeAdjust5)))- \ @fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Trifolium" dist = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^(2*@shapeAdjust4)))* \ (@fn4(y^(2*@shapeAdjust5))+@fn5(x^@shapeAdjust6)* \ @fn6(x+@shapeAdjust1))-4*@shapeAdjust2* \ @fn7(x^@shapeAdjust7)*@fn8(y^2+(1-@shapeAdjust8)))-@distort elseif @trapType == "Trisectrix of Maclaurin" dist = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1+ \ @fn3(x^@shapeAdjust3))-@fn4(x^(2*@shapeAdjust4))* \ (3*@shapeAdjust1-@fn5(x*@shapeAdjust5)))-@distort elseif @trapType == "Twisted Cross" dist = @fn1(@fn2(y^(5-@shapeAdjust1))-@fn3(x^(5-@shapeAdjust2))- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort elseif @trapType == "Witch of Agnesi" dist = @fn1(8*@shapeAdjust2*@shapeAdjust1^3/ \ @fn2(x^(2*@shapeAdjust3)+4*@shapeAdjust1^2)- \ @fn3(y^@shapeAdjust4))-@distort endif if @varType == "normal" dist = dist elseif @varType == "modulus" dist = |dist| elseif @varType == "atan2" dist = atan2(dist) elseif @varType == "real" dist = real(dist) elseif @varType == "imag" dist = imag(dist) endif if @nuflav == true if @opadd == "None" dist = dist elseif @opadd == "+(X+Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" dist = dist + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" dist = dist - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" dist = dist + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" dist = dist - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" dist = dist + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" dist = dist - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @opadd == "None" dist = dist elseif @opadd == "+(X+Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" dist = dist + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" dist = dist - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" dist = dist + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" dist = dist - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" dist = dist + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" dist = dist - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" dist = dist + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" dist = dist - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif z1l = @fnl1((z1-@z1o)*@z1s)^@z1e if @lightype == true if @light == "normal" dist = ((dist-@diso)*@diss)^@dise elseif @light == "real" dist = real(z1l-@fnl2((dist-@diso)*@diss)^@dise) elseif @light == "imag" dist = imag(z1l-@fnl2((dist-@diso)*@diss)^@dise) elseif @light == "cabs" dist = cabs(z1l-@fnl2((dist-@diso)*@diss)^@dise) elseif @light == "modulus" dist = |z1l-@fnl2((dist-@diso)*@diss)^@dise| endif else if @light == "normal" dist = ((dist-@diso)*@diss)^@dise elseif @light == "real" dist = real(z1l)- ((dist-@diso)*@diss)^@dise elseif @light == "imag" dist = imag(z1l)- ((dist-@diso)*@diss)^@dise elseif @light == "cabs" dist = cabs(z1l)- ((dist-@diso)*@diss)^@dise elseif @light == "modulus" dist = |z1l|- ((dist-@diso)*@diss)^@dise endif endif if @mode == 0 dist2 = real(@fnf1(z))+@f if @col == "real" dist = real((dist+.001*@trpp)^(@power*@pf)-dist2^@power)^2 elseif @col == "imag" dist = imag((dist+.001*@trpp)^(@power*@pf)-dist2^@power)^2 elseif @col == "real+imag" dist = (real((dist+.001*@trpp)^(@power*@pf)+imag(dist^(@power*@pf))) \ -dist2^@power)^2 elseif @col == "real-imag" dist = (real((dist+.001*@trpp)^(@power*@pf)-imag(dist^(@power*@pf))) \ -dist2^@power)^2 elseif @col == "Function" dist = @styleFnc((dist+.001*@trpp)^(@power*@pf)-dist2^@power)^2 endif d = real(dist+.001*@trpp)/real(@fnf2(z)+1/@w)^@power3 + d ist = i elseif @mode == 1 dist = (dist-@fission*.05)^@power if @cfnc == "ident" if d > real(dist^@exx2) if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "round" if d > real(round(dist^@exx2)) if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "trunc" if d > real(trunc(dist^@exx2)) if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "ceil" if d > real(ceil(dist^@exx2)) if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "recip" if d > real(recip(dist^@exx2)) if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "flip" if d > real(flip(dist^@exx2)) ist = i if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif elseif @cfnc == "modulus" if d > |dist^@exx2| if @numode == "recip" d = real(1/((dist^@exx1)+.001*@trpp)) ist = i elseif @numode == "ident" d = real(dist^@exx1+.001*@trpp) ist = i endif endif endif elseif @mode == 2 dist = (dist-@fission*.05)^@power/(cabs(z)+1)^@power3 if d > real(dist) d = real(dist+.001*@trpp) ist = i endif endif endif if @trapflavor == "Closest" if real(dist) < min_dist min_dist = real(dist) trap_z = z1 trap2_z = #z trap_iter = i trapped = true endif elseif @trapflavor == "First" if real(dist) < @threshold min_dist = real(dist) trap_z = z1 trap2_z = #z trap_iter = i trapped = true endif elseif @trapflavor == "Last" if real(dist) < @threshold && !trapped min_dist = real(dist) trap_z = z1 trap2_z = #z trap_iter = i trapped = true endif endif endif final: if trapped 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 = ((z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trapped z" tz = ((trap_z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trapped #z" tz = ((trap2_z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist1 (Closest only)" tz = ((d-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist2 (Closest only)" tz = ((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 i = i + 1 until i >= 20 endif t2 = abs((za-real(@fntx3(za)))) if @add_sgn == false t2 = (za-real(@fntx3(za))) endif ;Random complex hasard = #random texture_rnd = .1 * @rnd * (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 = ((z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trapped z" tz = ((trap_z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trapped #z" tz = ((trap2_z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist1 (Closest only)" tz = ((d-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist2 (Closest only)" tz = ((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 + @totc) % 256 float by1 = (by0 + @totd) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @tota float ry1 = ry0 - @totb 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 a = u1 + sx*(v1-u1) float b = u2 + sx*(v2-u2) summ = summ + (a + sy*(b-a))*freq freq = freq * @fbmstep pfb = pfb * r2 / @fbmstep i = i - 1 endwhile texture_fbm = .1 * @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 = ((z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trapped z" tz = ((trap_z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trapped #z" tz = ((trap2_z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist1 (Closest only)" tz = ((d-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist2 (Closest only)" tz = ((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 = .1 * texture_dec * @decamt 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 = ((z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trapped z" tz = ((trap_z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trapped #z" tz = ((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist1 (Closest only)" tz = ((d-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist2 (Closest only)" tz = ((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= .1 * (texture_gna%@gnarl_limit) * @gnarl_amt endif endif ;geometrix if (@trtxt != 0) if @ztyp5 == "#z" tz = ((#z-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Morph z" tz = ((z1-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Trap z" tz = ((z-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Trapped z" tz = ((trap_z-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Trapped #z" tz = ((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Dist1 (Closest only)" tz = ((d-@txia3)*@txib3)^@txic3 elseif @ztyp5 == "Dist2 (Closest only)" tz = ((dist-@txia3)*@txib3)^@txic3 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 z = z_values[#numiter-1] complex z = 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 = .1*(zaza-trunc(zaza*2)^@exp)*@trtxt if @geo_limit != 0 texture_tr = .1* ((zaza-trunc(zaza)^@exp*2)% @geo_limit)*@trtxt endif if @geo_sgn == true texture_tr = abs(texture_tr) endif if @mode == "Sum" texture = (texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10000 else texture = (texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10 endif if @invt if @mode == "Sum" if real(@msk) < d*10000 && !(@msk == 0) #solid = true endif else if real(1/@msk) > d && !(@msk == 0) #solid = true endif endif else if @mode == "Sum" if real(@msk) > d*10000 && !(@msk == 0) #solid = true endif else if real(1/@msk) < d && !(@msk == 0) #solid = true endif endif endif float #index = tmp if @colour == "Distance" tmp = 1000*d elseif @colour == "Modulated Iter" tmp = real((@colorFn(ist-@coffset)*@cstrength)^@cpower)%@ncol/(@ncol/@cd) elseif @colour == "Iteration" tmp = real((@colorFn(ist-@coffset)*@cstrength)^@cpower) elseif @colour == "Iter (Sum)" tmp = real((@colorFn(trap_iter-@coffset)*@cstrength)^@cpower) elseif @colour == "Mod Iter (Sum)" tmp = real((@colorFn(trap_iter-@coffset)*@cstrength)^@cpower)%@ncol/(@ncol/@cd) elseif @colour == "Angle" d = atan2(((dist-@coffset)*@cstrength)^@cpower)/(0.6*pi*@ang3) if(d<(.01*@ang4)-1) d = real(@colorfn(dist))*@ang1*2 endif tmp = real(10000)*d*@ang2 elseif @colour == "Angle (corrected)" theta = atan2(((trap_z-@coffset)*@cstrength)^@cpower) if real(theta) < 0 theta = real(@colorFn(theta))*2*#pi endif theta = 1/(2*#pi)*theta tmp = real(theta) elseif @colour == "Magnitude" tmp = cabs(@colorFn((trap_z-@coffset)*@cstrength)^@cpower) elseif @colour == "Real" tmp = real(@colorFn(((trap_z-@coffset)*@cstrength)^@cpower)) elseif @colour == "Imag" tmp = imag(@colorFn(((trap_z-@coffset)*@cstrength)^@cpower)) endif if @inv2 if real(@msk2) < (d*1000000) && !(@msk2 == 0) #solid = true endif else if real(@msk2) > (d*1000000) && !(@msk2 == 0) #solid = true endif endif if @mode == "Sum" txx = tx/10 else txx = tx*100 endif if @mode == "Sum" #index = tmp+(texture)+(txx*@txamt/100)/100 + t2*(txx*@txamt/100)/100 \ + rn*.1*@r*(txx*@txamt/100)/100 else #index = tmp+3*((texture)+(txx*@txamt/100)/100 + t2*(txx*@txamt/100)/100 \ + rn*.1*@r*(txx*@txamt/100)/100) endif else #solid = true endif default: title = "Thin Orbit Traps II" param version caption = "Version" default = 2.7 visible = false endparam heading caption = "Mode Options" endheading param mode caption = "Mode" default = 0 enum = "Sum" "Closest" "Closest (Corrected)" endparam param adv3 caption = "Mode Parameters" default = true endparam param col caption = "'Sum' Style" enum = "real""imag""real+imag""real-imag""Function" default = 0 hint = "Sets coloring style for 'Sum' mode" visible = @mode == 0 && @adv3 == true endparam func styleFnc caption = "Style Function" default = abs() visible = @mode == 0 && @col == "Function" && \ @adv3 == true endfunc int param trapflavor caption = "Trap Type" enum = "Closest""First""Last" default = 0 visible = false endparam float param threshold caption = "Element Width" default = 1.0 visible = false endparam float param f caption = "Adjust Normalization" default = 1.0 visible = @mode == 0 && @adv3 == true endparam float param pf caption = "Power Factor" default = 0.2 visible = @mode == 0 && @adv3 == true endparam float param w caption = "Density" default = 1.0 hint = "A down and dirty way to adjust the \ color density." visible = @mode == 0 && @adv3 == true endparam func fnf1 caption = "'Sum' Function 1" default = cabs() visible = @mode == 0 && @adv3 == true endfunc func fnf2 caption = "'Sum' Function 2" default = cabs() visible = @mode == 0 && @adv3 == true endfunc param numode caption = "Closest Style" enum = "ident""recip" default = 0 hint = "Sets coloring style for 'Closest' mode" visible = @mode == 1 && @adv3 == true && \ @colour < 5 endparam param cfnc caption = "Closest Function" enum = "ident""round""trunc""ceil""recip""flip""modulus" default = 0 visible = @mode == 1 && @adv3 == true && \ @colour < 5 endparam complex param exx1 caption = "Closest Power" default = (1.0,0.0) hint = "Adjust this value to eliminate banding outside the trapped \ elements or change their contrast. It also changes edge" visible = @version < 2.7 && @mode == 1 && @adv3 == true && \ @colour < 5 endparam complex param exx2 caption = "Edge Definition" default = (1.0,0.0) hint = "Moving in a positive direction gives an edge to the \ smaller elements, while moving in a negative direction \ tends to blend them into the larger elements" visible = @mode == 1 && @adv3 == true && \ @colour < 5 endparam float param fission caption = "Fission" default = 0 hint = "Positive values split and thin the traps; negative values \ thicken the traps but reduce contrast, so you will have \ to adjust the gradient and/or change the transfer function" visible = @mode == 1 && @adv3 == true && \ @colour < 5 endparam float param power caption = "Main Power" default = .01 visible = @adv2 endparam float param power3 caption = "Decay Power" default = 1.0 visible = @mode != 1 && @adv2 endparam float param trpp caption = "Element Trim" default = 0.0 visible = @adv2 endparam heading caption = "Coloring Options" endheading param colour caption = "Color By" enum = "Distance""Iteration""Modulated Iter""Iter (Sum)" "Mod Iter (Sum)"\ "Angle""Angle (corrected)""Magnitude""Real""Imag" default = 0 endparam heading caption = "Coloring Parameters" visible = @colour == "Modulated Iter" || @colour == "Mod Iter (Sum)" endheading float param ncol caption = "Color Ranges" default = 3.0 hint = "You can enter decimal values for \ modulated ranges with a phase shift." visible = @colour == "Modulated Iter" || @colour == "Mod Iter (Sum)" endparam float param cd caption = "Range Depth" default = 1.0 hint = "This param determines how much \ of the gradient is mapped on the \ elements using 'Modulated Iter'" visible = @colour == "Modulated Iter" || @colour == "Mod Iter (Sum)" endparam func colorFn caption = "Color function" default = ident() visible = @colour > 0 endfunc complex param coffset caption = "Color Offset" default = (0,0) visible = @colour > 0 endparam complex param cstrength caption = "Color Strength" default = (1,0) visible = @colour > 0 endparam complex param cpower caption = "Color Power" default = (1,0) visible = @colour > 0 endparam heading caption = "Angle Parameters" visible = @colour == "Angle" endheading float param ang1 caption = "Angle Shading 1" default = 1.0 visible = @colour == "Angle" endparam float param ang2 caption = "Angle Shading 2" default = 1.0 visible = @colour == "Angle" endparam float param ang3 caption = "Angle Shading 3" default = 1.0 visible = @colour == "Angle" endparam float param ang4 caption = "Angle Shading 4" default = 1.0 visible = @colour == "Angle" endparam heading caption = "Trap Parameters" visible = (@shapeAdjust1 == 1.0 && @shapeAdjust1 == 1.0 && @shapeAdjust2 == 1.0 \ && @shapeAdjust3 == 1.0 && @shapeAdjust4 == 1.0 && @shapeAdjust5 == 1.0 \ && @shapeAdjust6 == 1.0 && @shapeAdjust7 == 1.0 && @shapeAdjust8 == 1.0 \ && @shapeAdjust9 == 1.0 && @shapeAdjust10 == 1.0 && @shapeAdjust11 == 1.0 \ && @shapeAdjust12 == 1.0 && @distort == 0 && @distort2 == 0) endheading heading caption = "Trap Parameters [active]" visible = (@shapeAdjust1 != 1.0 || @shapeAdjust1 != 1.0 || @shapeAdjust2 != 1.0 \ || @shapeAdjust3 != 1.0 || @shapeAdjust4 != 1.0 || @shapeAdjust5 != 1.0 \ || @shapeAdjust6 != 1.0 || @shapeAdjust7 != 1.0 || @shapeAdjust8 != 1.0 \ || @shapeAdjust9 != 1.0 || @shapeAdjust10 != 1.0 || @shapeAdjust11 != 1.0 \ || @shapeAdjust12 != 1.0 || @distort != 0 || @distort2 != 0) endheading param trapType caption = "Trap Type" enum = "Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day""Barbed Wire" \ "Baubles & Bangles" "Bean Curve""Bicorn Curve""Bicuspid Curve""Bifoliate" \ "Bifolium" "Bighorn Curve" "Binary Curve" "Bird of Paradise" "Bow" \ "Butterfly Curve" "Cabuchon Curve" "Cardinal Points Curve" "Cassini Ovals" \ "Chaos Adorned" "Chaos Unleashed" "Church Key Curve" "Circle" \ "Cissoid of Diocles" "Cochleoid" "Cocked Hat" "Compass Curve" \ "Conchoid of Nicomedes" "Conjoined Circle Curve" "Conductor's Curve" \ "Cooking Pot Curve" "Cosmic Rays" "Crochet Hooks" "Crosshatch Curve" \ "Cruciform" "D&U Curve" "Devil's Curve" "Diamond" "Dogleg Curve" \ "Double Circle Curve" "Double Trine" "Dribs & Drabs" "Driftwood Curve" \ "Dulcimer Curve" "Dumbbell Curve" "Dürer's Conchoid" "Eight Curve" \ "Eye of the Needle" "Exclamation Point" "Fatback" "Floreate Curve" \ "Glyph Curve" "Gravity Waves" "Happy Accident" "Harpoon Curve" "Hook & Spar" \ "Hoops & Plates" "Horned Torus Curve" "Hyperbola" "Indented Parabola" \ "Intersecting Ovals" "Kappa Curve" "Keppler's Folium" "Keratoid Cusp" \ "Knot Curve" "Leaves of Grass" "Lemniscate" "Lemniscate Corrected" "Limacon" \ "Line" "Links Curve" "Lipped Ovals" "M curve" "Maltese Cross Curve" \ "Mercury Curve" "Miscellanea" "Moorish Fantasy" "Mousehead Curve" \ "Nested Ovals" "Nesting Birds Curve" "O-nami Curve" "Odds 'n Ends" \ "Omega Curve" "Ornate Curve" "Ovals" "Ovate Waves" "Ovate Waves 2" \ "Pacifier Curve" "Parabola" "Parenthetical Curve" "Pear-Shaped Curve" \ "Pincers" "Piriform" "Pisces Curve" "Plane & Tail" "Plane & Tail 2" \ "Quadrifolium" "Rose Curve" "Seagull Curve" "Serpentine Curve""Simple Curve"\ "sin(x)/x" "Sinus + Cosinus" "Smoke Rings" "Sneering Curve" "Space Debris" \ "Spectacles Curve" "Spiked Cusp" "Spiral" "Square" "Squared Circle Curve" \ "Squeezed Rectangle Curve" "Stirrup Curve" "Strange Shape" \ "Stretched Oval Curve" "Swallow Curve" "Swastika Curve" "Switchback Curve" \ "Tangent" "Taurus Curve" "Teardrop Curve" "Tennis Anyone?" "Thick 'n Thin" \ "Thorned Cross" "Three Point Curve" "Trefoil" "Trident" \ "Trident of Descartes" "Trifolium" "Trisectrix of Maclaurin" "Tsuba Curve" \ "Twisted Cross" "Wheel in Trough" "Whip Curve" "Witch of Agnesi" default = 15 hint = "The trap type." endparam param adv1 caption = "Trap Parameters" hint = "Additional shaping parameters and functions." default = false endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") || (@trapType == "Cosmic Rays") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Double Trine") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || (@trapType == "Swallow Curve") || \ (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") ||\ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") ||(@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") || (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Spiral") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin")) endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv1 && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv1 && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv1 && \ ((@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Strange Shape") || (@trapType == "Trifolium")) endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv1 && \ ((@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium")) endparam float param shapeAdjust10 caption = "Shape Adj. X" default = 1.0 hint = "Shape adjustment parameter X." visible = @adv1 && \ ((@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle") || \ (@trapType == "Miscellanea") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust11 caption = "Shape Adj. XI" default = 1.0 hint = "Shape adjustment parameter XI." visible = @adv1 && ((@trapType == "Driftwood Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust12 caption = "Shape Adj. XII" default = 1.0 hint = "Shape adjustment parameter XII." visible = @adv1 && (@trapType == "Dürer's Conchoid") endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param distort2 caption = "Fission 2" hint = "Shifts some of the lines in 'Square'" default = 0 visible = @adv1 && (@trapType == "Square") endparam func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") ||\ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Leaves of Grass") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "O-nami Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Omega Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Quadrifolium") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")|| \ (@trapType == "Double Circle Curve") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") ||(@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Maltese Cross Curve")||\ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Keppler's Folium") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn9 caption = "Function 9" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Conductor's Curve")||(@trapType == "Eye of the Needle")||\ (@trapType == "Miscellanea") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Dürer's Conchoid")) endfunc func fn10 caption = "Function 10" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && \ ((@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endfunc func fn11 caption = "Function 11" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv1 && (@trapType == "Dürer's Conchoid") endfunc heading caption = "Global Parameters" visible = (@c == (0,0) && @rot == 0 && @size == 1 && @rat == 1 \ && @skip1 == 0 && @skip2 == 100000000 && @power == .01 && \ @power3 == 1 && @trpp == 0) endheading heading caption = "Global Parameters [active]" visible = (@c != (0,0) || @rot != 0 || @size != 1 || @rat != 1 || \ @skip1 != 0 || @skip2 != 100000000 || @power != .01 || \ @power3 != 1 || @trpp != 0) endheading param adv2 caption = "Global Parameters" default = true endparam complex param c caption = "Center" default = (0.0,0.0) visible = @adv2 endparam float param rot caption = "Rotation" default = 0.0 visible = @adv2 endparam float param size caption = "Size" default = 1.0 visible = @adv2 endparam float param rat caption = "Ratio Width/Heigh" default = 1.0 visible = @adv2 endparam int param skip1 caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif heading caption = "More Shaping Parameters" visible = (@expx ==(1,0) && @expy == (1,0) && @ppx == 0 && @ppy == 0 && \ @pshape == 0 && @a == (1,0) && @p1 == (1,0) && @p2 == (1,0) && @q1 == \ (1,0) && @q2 == (1,0) && @light == 0 && @lightype == false && @z1o == \ (0,0) && @z1s == (1,0) && @z1e == (1,0) && @diso == (0,0) && @diss == \ (1,0) && @dise == (1,0) && @varType == 0 && @opadd == 0 && @nuflav == \ false && @p0 == (0,0) && @q0 == (0,0) && @xtra1x == (0,0) && @xtra2x == \ (1,0) && @xtra3x == (1,0) && @xtra1y == (0,0) && @xtra2y == (1,0) && \ @xtra3y == (1,0)) endheading heading caption = "More Shaping Parameters [active]" visible = (@expx != (1,0) || @expy != (1,0) || @ppx != 0 || @ppy != 0 \ || @pshape != 0 || @a != (1,0) || @p0 != (0,0) || @p1 != (1,0) || \ @p2 != (1,0) || @q0 != (0,0) || @q1 != (1,0) || @q2 != (1,0) || \ @light != 0 || @lightype || @z1o != (0,0) || @z1s \ != (1,0) || @z1e != (1,0) || @diso != (0,0) || @diss != (1,0) || @dise \ != (1,0) || @varType != 0 || @opadd != 0 || @nuflav || @p0 \ !=(0,0) || @q0 != (0,0) || @xtra1x != (0,0) || @xtra2x != (1,0) || \ @xtra3x != (1,0) || @xtra1y != (0,0) || @xtra2y != (1,0) || \ @xtra3y != (1,0)) endheading param ssp caption = "More Shaping Parameters" default = false endparam heading caption = "Lighting" visible = @ssp endheading bool param seeLight caption = "Lighting Parameters" default = false visible = @ssp endparam int param light caption = "Lighting" enum = "normal""modulus""cabs""real""imag" default = 0 visible = @seeLight && @ssp endparam bool param lightype caption = "Change Lighting" default = false visible = @light != 0 && @seeLight && @ssp endparam func fnl1 caption = "Lighting Function 1" default = ident() visible = @light != 0 && @seeLight && @ssp endfunc func fnl2 caption = "Lighting Function 2" default = ident() visible = @light != 0 && @lightype && @seeLight && @ssp endfunc complex param z1o caption = "Light Offset" default = (0,0) visible = @seeLight && @ssp endparam complex param z1s caption = "Light Strength" default = (1,0) visible = @seeLight && @ssp endparam complex param z1e caption = "Light Power" default = (1,0) visible = @seeLight && @ssp endparam complex param diso caption = "Dist Offset" default = (0,0) visible = @seeLight && @ssp endparam complex param diss caption = "Dist Strength" default = (1,0) visible = @seeLight && @ssp endparam complex param dise caption = "Dist Power" default = (1,0) visible = @seeLight && @ssp endparam heading caption = "X/Y Shapers, etc." visible = @ssp endheading bool param seexy caption = "X/Y Shapers, etc." default = true visible = @ssp endparam int param varType caption = "X/Y Species" enum = "normal""modulus""atan2""real""imag" default = 0 visible = @ssp && @seexy endparam complex param p0 caption = "X Offset" default = (0,0) visible = @ssp && @seexy endparam complex param q0 caption = "Y Offset" default = (0,0) visible = @ssp && @seexy endparam complex param p1 caption = "X Strength" default = (1,0) visible = @ssp && @seexy endparam complex param q1 caption = "Y Strength" default = (1,0) visible = @ssp && @seexy endparam complex param p2 caption = "X Power" default = (1,0) visible = @ssp && @seexy endparam complex param q2 caption = "Y Power" default = (1,0) visible = @ssp && @seexy endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @ssp && @seexy endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @ssp && @seexy endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @ssp && @seexy endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @ssp && @seexy endparam param pshape caption = "Trap Style" enum = "normal""acosh""acos" default = 0 visible = @ssp && @seexy endparam complex param expx caption = "X Exponent" default = (1.0,0.0) visible = @ssp && @seexy endparam complex param expy caption = "Y Exponent" default = (1.0,0.0) visible = @ssp && @seexy endparam float param ppx caption = "X Twirl" default = 0.0 hint = "Changes the spatial relationships \ of the trapped elements." visible = @ssp && @seexy endparam float param ppy caption = "Y Twirl" default = 0.0 hint = "Changes the spatial relationships \ of the trapped elements." visible = @ssp && @seexy endparam complex param a caption = "Super Shaper 1" default = (1.0,0.0) visible = @ssp && @seexy endparam func fnx caption = "Global Z" default = ident () visible = @ssp && @seexy endfunc func fncx caption = "Global X" default = ident () visible = @ssp && @seexy endfunc func fncy caption = "Global Y" default = ident () visible = @ssp && @seexy endfunc func fnxx caption = "Trap X" default = ident () hint = "Applied to the final definition of X" visible = @ssp && @seexy endfunc func fnyy caption = "Trap Y" default = ident () hint = "Applied to the final definition of Y" visible = @ssp && @seexy endfunc heading caption = "Morph Parameters" visible = (@change == 0 && @exp1 == (1,0) && @exp2 == (1,0) && @exp1 == (1,0) \ && @tw == (0,0) && @tw2 == (0,0) && @tw3 == (0,0) && @th2 == false) endheading heading caption = "Morph Parameters [active]" visible = (@change != 0 || @exp1 != (1,0) || @exp2 != (1,0) || @exp1 != (1,0) \ || @tw != (0,0) || @tw2 != (0,0) || @tw3 != (0,0) || @th2) endheading param adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param th2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @th2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @adv && @th2 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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @th2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @th2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @th2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @th2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @th2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @th2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @th2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @th2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @th2 && @adv && @change > 5 endfunc heading caption = "Masking" visible = (@msk == 0 && @msk2 == 0) endheading heading caption = "Masking [active]" visible = (@msk != 0 || @msk2 != 0) endheading param admsk caption = "Masking" default = false endparam float param msk caption = "Distance Mask" default = 0.0 visible = @admsk endparam param invt caption = "Invert Distance Mask" default = false visible = @admsk endparam float param msk2 caption = "Angle Mask" default = 0.0 hint = "An additional mask to be used with the \ 'Angle' coloring mode" visible = @admsk endparam param inv2 caption = "Invert Angle Mask" default = false hint = "An additional mask to be used with the \ 'Angle' coloring mode" visible = @admsk endparam heading caption = "Texture Parameters" visible = (@rnd == 0 && @fbmtxt == 0 && @decamt == 0 && @tp == 0 && \ @gnarl_amt == 0) endheading heading caption = "Texture Parameters [active]" visible = (@rnd != 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 rnd 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""Trapped z""Trapped #z" \ "Dist1 (Closest only)""Dist2 (Closest only)" default = 3 hint = "Determines which kind of 'z' variable is used in \ 'fBm Initialization' (when z is present). Textures created \ with 'Trap z' change with changes in the values of Morph and \ some global params, 'Morph z' only with Morph params and '#z' \ textures remain invariant. 'Trapped z' textures conform to \ element shapes and are affected by Morph values, 'Trapped #z' \ values conform but remain invariant. 'Dist'values work only in \ 'Closest' mode, work strangely, need a much higher value than \ other modes, and need the gradient adjusted. 'Dist1' is affected by \ the 'Function' and 'Style' params in 'Closest' while 'Dist2' is not." 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 tota caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param totb caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param totc caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param totd 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""Trapped z""Trapped #z" \ "Dist1 (Closest only)""Dist2 (Closest only)" default = 3 hint = "Determines which kind of 'z' variable is used in \ 'Decimal Initialization' (when z is present). Textures created \ with 'Trap z' change with changes in the values of Morph and \ some global params, 'Morph z' only with Morph params and '#z' \ textures remain invariant. 'Trapped z' textures conform to \ element shapes and are affected by Morph values, 'Trapped #z' \ values conform but remain invariant. 'Dist'values work only in \ 'Closest' mode, work strangely, need a much higher value than \ other modes, and need the gradient adjusted. 'Dist1' is affected by \ the 'Function' and 'Style' params in 'Closest' while 'Dist2' is not." 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""Trapped z""Trapped #z" \ "Dist1 (Closest only)""Dist2 (Closest only)" default = 3 hint = "Determines which kind of 'z' variable is used in \ 'Popgnarl Initialization' (when z is present). Textures created \ with 'Trap z' change with changes in the values of Morph and \ some global params, 'Morph z' only with Morph params and '#z' \ textures remain invariant. 'Trapped z' textures conform to \ element shapes and are affected by Morph values, 'Trapped #z' \ values conform but remain invariant. 'Dist'values work only in \ 'Closest' mode, work strangely, need a much higher value than \ other modes, and need the gradient adjusted. 'Dist1' is affected by \ the 'Function' and 'Style' params in 'Closest' while 'Dist2' is not." 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""Trapped z""Trapped #z" \ "Dist1 (Closest only)""Dist2 (Closest only)" default = 3 hint = "Determines which kind of 'z' variable is used in \ 'Popgnarl Initialization' (when z is present). Textures created \ with 'Trap z' change with changes in the values of Morph and \ some global params, 'Morph z' only with Morph params and '#z' \ textures remain invariant. 'Trapped z' textures conform to \ element shapes and are affected by Morph values, 'Trapped #z' \ values conform but remain invariant. 'Dist'values work only in \ 'Closest' mode, work strangely, need a much higher value than \ other modes, and need the gradient adjusted. 'Dist1' is affected by \ the 'Function' and 'Style' params in 'Closest' while 'Dist2' is not." 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 = 1.0 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""Trapped z""Trapped #z" \ "Dist1 (Closest only)""Dist2 (Closest only)" default = 3 hint = "Determines which kind of 'z' variable is used in \ 'Add'l Tx Initialization' (when z is present). Textures created \ with 'Trap z' change with changes in the values of Morph and \ some global params, 'Morph z' only with Morph params and '#z' \ textures remain invariant. 'Trapped z' textures conform to \ element shapes and are affected by Morph values, 'Trapped #z' \ values conform but remain invariant. 'Dist'values work only in \ 'Closest' mode, work strangely, need a much higher value than \ other modes, and need the gradient adjusted. 'Dist1' is affected by \ the 'Function' and 'Style' params in 'Closest' while 'Dist2' is not." 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 } jam/tm-trapestry-x { ; jam (begun 030518; V.1 finished 030603; V2 begun 030604) ; Toby: This version of trapestry is completely backward- ; compatible with Joe's original. I've added my Morph params ; to it, and in addition I have added one coloring option: ; "modulated iteraton" at the end of the "Color By?" param list. ; version 1.02, Mar. 2005 ; Generalized traps based on radial or parametric functions. ; One or two trap functions may be specified. If more than one trap ; is specified, they can be merged in various ways. ; Each of these traps may be defined either in polar coordinates, ; in which case a radius is calculated, or parametrically, in which case ; an x,y-coordinate pair is computed. Alternatively, one trap can be ; computed radially, the other parametrically. ; Regardless of the coordinate system(s) chosen, each radius, x-, or y- ; can be calculated using a variety of user-specified functions, or ; alternatively, using a set of up to four simple sine/cosine oscillators. ; TO TURN OFF A FUNCTION, set its scale to zero; ; TO TURN OFF AN OSCILLATOR SET, set the amplitude of its first oscillator to zero. ; These are the only methods (almost) to control whether you are using one or two traps. ; (If 'Blend' is enabled,you can also turn a trap off by setting its blend weight to zero. ; This method is less efficient computationally.) ; Using 'Blend' accomplishes nothing (except slowing down execution) unless ; at least one of the two weights is set != 1.0 ; Some functions are designated with an "(x)" or "(y)"; this designation is just ; to make it easier, when using parametric functions, to match up the correct ; formulas to generate the chosen trap shape, i.e., the first (x-coordinate) ; function should be set to the "(x)" formula, and the second (y-coord) formula ; set to the "(y)" function. ; Questions/comments to Joseph A. Maddry (maddry@sri.org) (Joe). global: ; Old variables moved to global ; Common constants float twopi = 2.0 * #pi float degconversion = twopi/360 float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch ; New variables ; Vars needed by the loop trapping routines bool twotraps = FALSE ; flag for trap combination routine int numberoffuncs = int numberofoscsets = 0 int trapfunc[4] ; points to selected function list members (trap functions) int texfunc[4] ; points to selected function list members (texture functions) float coeff[4,4,2] ; [parametric/polar function number, osc number, amplitude/frequency selector] float offset[4] ; this value is added to each r, x, or y equation float const[4,3] ; optional function parameters; function 1-4, constants 1, 2, and 3 bool oscselector[4,4] ; FALSE = cosine oscillator, TRUE = sine bool absoluteangle[4] ; FALSE = use raw angle argument, TRUE = use absolute value bool absoluteresult[4] ; FALSE = use raw trap function/osc result, TRUE = use absolute value ; Initialize the arrays int gtempindex1 = int gtempindex2 = 0 while gtempindex1 < 4 trapfunc[gtempindex1] = 0 texfunc[gtempindex1] = 0 offset[gtempindex1] = 0.0 const[gtempindex1,0] = 0.0 const[gtempindex1,1] = 0.0 const[gtempindex1,2] = 0.0 absoluteangle[gtempindex1] = FALSE absoluteresult[gtempindex1] = FALSE while gtempindex2 < 4 coeff[gtempindex1, gtempindex2, 0] = 0.0 coeff[gtempindex1, gtempindex2, 1] = 0.0 oscselector[gtempindex1, gtempindex2] = FALSE gtempindex2 = gtempindex2 + 1 endwhile ; gtempindex2 gtempindex1 = gtempindex1 + 1 endwhile ; gtempindex1 ; Fill in select array values with the user-chosen options if @coordtype == "Polar" ; compute a single radius, or two & combine them if @traptype == "functions" ; use polar functions to compute radii coeff[0,0,0] = @f1scale ; scale factor for the first function coeff[1,0,0] = @f2scale ; scale factor for the second function trapfunc[0] = @func1 ; list index for the first function trapfunc[1] = @func2 ; list index for the second function offset[0] = @f1offset ; radial offset ("min" value) for first function offset[1] = @f2offset ; radial offset ("min" value) for second function absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 ; optional first parameter for first function const[1,0] = @const1f2 ; optional first parameter for second function const[0,1] = @const2f1 ; optional second parameter for first function const[1,1] = @const2f2 ; optional second parameter for second function const[0,2] = @const3f1 ; optional third parameter for first function const[1,2] = @const3f2 ; optional third parameter for second function if @f2scale != 0.0 twotraps = TRUE numberoffuncs = 2 else numberoffuncs = 1 endif ; @f2scale numberofoscsets = 0 elseif @traptype == "oscillators" ; use a set of 4 oscillators to compute each radius coeff[0,0,0] = @osc11amp ; amplitude (scale) factor for the first oscillator of osc set 1 coeff[0,0,1] = @osc11freq ; frequency of the first oscillator of osc set 1 coeff[0,1,0] = @osc12amp ; amplitude of the second oscillator of osc set 1 coeff[0,1,1] = @osc12freq ; frequency of the second oscillator of osc set 1 coeff[0,2,0] = @osc13amp ; amplitude of the third oscillator of osc set 1 coeff[0,2,1] = @osc13freq ; frequency of the third oscillator of osc set 1 coeff[0,3,0] = @osc14amp ; amplitude of the fourth oscillator of osc set 1 coeff[0,3,1] = @osc14freq ; frequency of the fourth oscillator of osc set 1 coeff[1,0,0] = @osc21amp ; amplitude of the first oscillator of osc set 2 coeff[1,0,1] = @osc21freq ; frequency of the first oscillator of osc set 2 coeff[1,1,0] = @osc22amp ; amplitude of the second oscillator of osc set 2 coeff[1,1,1] = @osc22freq ; frequency of the second oscillator of osc set 2 coeff[1,2,0] = @osc23amp ; amplitude of the third oscillator of osc set 2 coeff[1,2,1] = @osc23freq ; frequency of the third oscillator of osc set 2 coeff[1,3,0] = @osc24amp ; amplitude of the fourth oscillator of osc set 2 coeff[1,3,1] = @osc24freq ; frequency of the fourth oscillator of osc set 2 offset[0] = @o1offset ; radial offset for first oscillator set offset[1] = @o2offset ; radial offset for second oscillator set absoluteangle[0] = @o1absangle absoluteangle[1] = @o2absangle absoluteresult[0] = @o1absresult absoluteresult[1] = @o2absresult oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin numberoffuncs = 0 if @osc21amp != 0.0 twotraps = TRUE numberofoscsets = 2 else numberofoscsets = 1 endif ; @osc21amp elseif ((@traptype == "mixed 1") || (@traptype == "mixed 2")) ; polar function for 1 radius, osc set for the other coeff[0,0,0] = @f1scale ; first the function, for radius 1 trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 coeff[1,0,0] = @osc11amp ; now the oscillator, for radius 2 coeff[1,0,1] = @osc11freq coeff[1,1,0] = @osc12amp coeff[1,1,1] = @osc12freq coeff[1,2,0] = @osc13amp coeff[1,2,1] = @osc13freq coeff[1,3,0] = @osc14amp coeff[1,3,1] = @osc14freq offset[1] = @o1offset absoluteangle[1] = @o1absangle absoluteresult[1] = @o1absresult oscselector[1,0] = @osc11sin oscselector[1,1] = @osc12sin oscselector[1,2] = @osc13sin oscselector[1,3] = @osc14sin numberoffuncs = 1 numberofoscsets = 1 twotraps = TRUE endif ; @traptype elseif @coordtype == "Parametric" ; instead of computing radii, we will compute x,y pairs if @traptype == "functions" ; 4 polar funcs, one for each x- and y-coordinate of the 2 pairs coeff[0,0,0] = @f1scale ; scale factor for the first function (x-coordinate 1) coeff[1,0,0] = @f2scale ; scale factor for the second function (y-coordinate 1) coeff[2,0,0] = @f3scale ; scale factor for the third function (x-coordinate 2) coeff[3,0,0] = @f4scale ; scale factor for the fourth function (y-coordinate 2) trapfunc[0] = @func1 ; list index for the first function (x-ccord 1) trapfunc[1] = @func2 ; list index for the second function (y-ccord 1) trapfunc[2] = @func3 ; list index for the third function (x-ccord 2) trapfunc[3] = @func4 ; list index for the fourth function (y-ccord 2) offset[0] = @f1offset ; offset for first function (x-coordinate 1) offset[1] = @f2offset ; offset for second function (y-coordinate 1) offset[2] = @f3offset ; offset for third function (x-coordinate 2) offset[3] = @f4offset ; offset for fourth function (y-coordinate 2) absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteangle[2] = @f3absangle absoluteangle[3] = @f4absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult absoluteresult[2] = @f3absresult absoluteresult[3] = @f4absresult const[0,0] = @const1f1 ; optional first parameter for first function (x-ccord 1) const[1,0] = @const1f2 ; optional first parameter for second function (y-ccord 1) const[2,0] = @const1f3 ; optional first parameter for third function (x-ccord 2) const[3,0] = @const1f4 ; optional first parameter for fourth function (y-ccord 2) const[0,1] = @const2f1 ; optional second parameter for first function (x-ccord 1) const[1,1] = @const2f2 ; optional second parameter for second function (y-ccord 1) const[2,1] = @const2f3 ; optional second parameter for third function (x-ccord 2) const[3,1] = @const2f4 ; optional second parameter for fourth function (y-ccord 2) const[0,2] = @const3f1 ; optional third parameter for first function (x-ccord 1) const[1,2] = @const3f2 ; optional third parameter for second function (y-ccord 1) const[2,2] = @const3f3 ; optional third parameter for third function (x-ccord 2) const[3,2] = @const3f4 ; optional third parameter for fourth function (y-ccord 2) if (@f3scale != 0.0) || (@f4scale != 0.0) numberoffuncs = 4 twotraps = TRUE else numberoffuncs = 2 endif ; @f3scale numberofoscsets = 0 elseif @traptype == "oscillators" ; 4 sets of 4 oscillators, 1 for each x- and y-coordinate coeff[0,0,0] = @osc11amp ; amplitude of the first oscillator of osc set 1 (x-coord 1) coeff[0,0,1] = @osc11freq ; frequency of the first oscillator of osc set 1 (x-coord 1) coeff[0,1,0] = @osc12amp ; amplitude of the second oscillator of osc set 1 (x-coord 1) coeff[0,1,1] = @osc12freq ; frequency of the second oscillator of osc set 1 (x-coord 1) coeff[0,2,0] = @osc13amp ; amplitude of the third oscillator of osc set 1 (x-coord 1) coeff[0,2,1] = @osc13freq ; frequency of the third oscillator of osc set 1 (x-coord 1) coeff[0,3,0] = @osc14amp ; amplitude of the fourth oscillator of osc set 1 (x-coord 1) coeff[0,3,1] = @osc14freq ; frequency of the fourth oscillator of osc set 1 (x-coord 1) coeff[1,0,0] = @osc21amp ; amplitude of the first oscillator of osc set 2 (y-coord 1) coeff[1,0,1] = @osc21freq ; frequency of the first oscillator of osc set 2 (y-coord 1) coeff[1,1,0] = @osc22amp ; amplitude of the second oscillator of osc set 2 (y-coord 1) coeff[1,1,1] = @osc22freq ; frequency of the second oscillator of osc set 2 (y-coord 1) coeff[1,2,0] = @osc23amp ; amplitude of the third oscillator of osc set 2 (y-coord 1) coeff[1,2,1] = @osc23freq ; frequency of the third oscillator of osc set 2 (y-coord 1) coeff[1,3,0] = @osc24amp ; amplitude of the fourth oscillator of osc set 2 (y-coord 1) coeff[1,3,1] = @osc24freq ; frequency of the fourth oscillator of osc set 2 (y-coord 1) coeff[2,0,0] = @osc31amp ; amplitude of the first oscillator of osc set 3 (x-coord 2) coeff[2,0,1] = @osc31freq ; frequency of the first oscillator of osc set 3 (x-coord 2) coeff[2,1,0] = @osc32amp ; amplitude of the second oscillator of osc set 3 (x-coord 2) coeff[2,1,1] = @osc32freq ; frequency of the second oscillator of osc set 3 (x-coord 2) coeff[2,2,0] = @osc33amp ; amplitude of the third oscillator of osc set 3 (x-coord 2) coeff[2,2,1] = @osc33freq ; frequency of the third oscillator of osc set 3 (x-coord 2) coeff[2,3,0] = @osc34amp ; amplitude of the fourth oscillator of osc set 3 (x-coord 2) coeff[2,3,1] = @osc34freq ; frequency of the fourth oscillator of osc set 3 (x-coord 2) coeff[3,0,0] = @osc41amp ; amplitude of the first oscillator of osc set 4 (y-coord 2) coeff[3,0,1] = @osc41freq ; frequency of the first oscillator of osc set 4 (y-coord 2) coeff[3,1,0] = @osc42amp ; amplitude of the second oscillator of osc set 4 (y-coord 2) coeff[3,1,1] = @osc42freq ; frequency of the second oscillator of osc set 4 (y-coord 2) coeff[3,2,0] = @osc43amp ; amplitude of the third oscillator of osc set 4 (y-coord 2) coeff[3,2,1] = @osc43freq ; frequency of the third oscillator of osc set 4 (y-coord 2) coeff[3,3,0] = @osc44amp ; amplitude of the fourth oscillator of osc set 4 (y-coord 2) coeff[3,3,1] = @osc44freq ; frequency of the fourth oscillator of osc set 4 (y-coord 2) offset[0] = @o1offset ; offset for first oscillator (x-coordinate 1) offset[1] = @o2offset ; offset for second oscillator (y-coordinate 1) offset[2] = @o3offset ; offset for third oscillator (x-coordinate 2) offset[3] = @o4offset ; offset for fourth oscillator (y-coordinate 2) absoluteangle[0] = @o1absangle absoluteangle[1] = @o2absangle absoluteangle[2] = @o3absangle absoluteangle[3] = @o4absangle absoluteresult[0] = @o1absresult absoluteresult[1] = @o2absresult absoluteresult[2] = @o3absresult absoluteresult[3] = @o4absresult oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin oscselector[2,0] = @osc31sin oscselector[2,1] = @osc32sin oscselector[2,2] = @osc33sin oscselector[2,3] = @osc34sin oscselector[3,0] = @osc41sin oscselector[3,1] = @osc42sin oscselector[3,2] = @osc43sin oscselector[3,3] = @osc44sin numberoffuncs = 0 if (@osc31amp != 0.0) || (@osc41amp != 0.0) numberofoscsets = 4 twotraps = TRUE else numberofoscsets = 2 endif ; @osc31amp elseif ((@traptype == "mixed 1") || (@traptype == "mixed 2")) ; 2 funcs for 1st x,y, & 2 osc sets for the 2nd x,y coeff[0,0,0] = @f1scale ; first the two functions, for first x,y-coordinate pair coeff[1,0,0] = @f2scale trapfunc[0] = @func1 trapfunc[1] = @func2 offset[0] = @f1offset offset[1] = @f2offset absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 const[1,0] = @const1f2 const[0,1] = @const2f1 const[1,1] = @const2f2 const[0,2] = @const3f1 const[1,2] = @const3f2 coeff[2,0,0] = @osc11amp ; now, the two osc sets, for the second x,y-coord pair coeff[2,0,1] = @osc11freq coeff[2,1,0] = @osc12amp coeff[2,1,1] = @osc12freq coeff[2,2,0] = @osc13amp coeff[2,2,1] = @osc13freq coeff[2,3,0] = @osc14amp coeff[2,3,1] = @osc14freq coeff[3,0,0] = @osc21amp coeff[3,0,1] = @osc21freq coeff[3,1,0] = @osc22amp coeff[3,1,1] = @osc22freq coeff[3,2,0] = @osc23amp coeff[3,2,1] = @osc23freq coeff[3,3,0] = @osc24amp coeff[3,3,1] = @osc24freq offset[2] = @o1offset offset[3] = @o2offset absoluteangle[2] = @o1absangle absoluteangle[3] = @o2absangle absoluteresult[2] = @o1absresult absoluteresult[3] = @o2absresult oscselector[2,0] = @osc11sin oscselector[2,1] = @osc12sin oscselector[2,2] = @osc13sin oscselector[2,3] = @osc14sin oscselector[3,0] = @osc21sin oscselector[3,1] = @osc22sin oscselector[3,2] = @osc23sin oscselector[3,3] = @osc24sin numberoffuncs = 2 numberofoscsets = 2 twotraps = TRUE endif ; @traptype elseif @coordtype == "Mixed" ; compute one radius and one x,y-coordinate pair twotraps = TRUE if @traptype == "functions" ; 1 polar func for the radius, & 2 more funcs for the x,y-coordinates coeff[0,0,0] = @f1scale ; first, the radius calculation trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 coeff[1,0,0] = @f2scale ; now, the x- and y-coordinate calculations coeff[2,0,0] = @f3scale trapfunc[1] = @func2 trapfunc[2] = @func3 offset[1] = @f2offset offset[2] = @f3offset absoluteangle[1] = @f2absangle absoluteangle[2] = @f3absangle absoluteresult[1] = @f2absresult absoluteresult[2] = @f3absresult const[1,0] = @const1f2 const[2,0] = @const1f3 const[1,1] = @const2f2 const[2,1] = @const2f3 const[1,2] = @const3f2 const[2,2] = @const3f3 numberoffuncs = 3 numberofoscsets = 0 elseif @traptype == "oscillators" ; 1 set of 4 oscillators for the radius, 2 sets for the x,y pair coeff[0,0,0] = @osc11amp ; first, the radial oscillators coeff[0,0,1] = @osc11freq coeff[0,1,0] = @osc12amp coeff[0,1,1] = @osc12freq coeff[0,2,0] = @osc13amp coeff[0,2,1] = @osc13freq coeff[0,3,0] = @osc14amp coeff[0,3,1] = @osc14freq offset[0] = @o1offset absoluteangle[0] = @o1absangle absoluteresult[0] = @o1absresult oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin coeff[1,0,0] = @osc21amp ; now, the 2 sets of 4 oscillators to define the x- and y-coords coeff[1,0,1] = @osc21freq coeff[1,1,0] = @osc22amp coeff[1,1,1] = @osc22freq coeff[1,2,0] = @osc23amp coeff[1,2,1] = @osc23freq coeff[1,3,0] = @osc24amp coeff[1,3,1] = @osc24freq coeff[2,0,0] = @osc31amp coeff[2,0,1] = @osc31freq coeff[2,1,0] = @osc32amp coeff[2,1,1] = @osc32freq coeff[2,2,0] = @osc33amp coeff[2,2,1] = @osc33freq coeff[2,3,0] = @osc34amp coeff[2,3,1] = @osc34freq offset[1] = @o2offset offset[2] = @o3offset absoluteangle[1] = @o2absangle absoluteangle[2] = @o3absangle absoluteresult[1] = @o2absresult absoluteresult[2] = @o3absresult oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin oscselector[2,0] = @osc31sin oscselector[2,1] = @osc32sin oscselector[2,2] = @osc33sin oscselector[2,3] = @osc34sin numberoffuncs = 0 numberofoscsets = 3 elseif @traptype == "mixed 1" ; radius computed by polar funcs, x,y-coords by 2 sets of oscillators coeff[0,0,0] = @f1scale ; first, the radius calculation trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 coeff[1,0,0] = @osc11amp ; now, the 2 sets of 4 oscillators to define the x- and y-coords coeff[1,0,1] = @osc11freq coeff[1,1,0] = @osc12amp coeff[1,1,1] = @osc12freq coeff[1,2,0] = @osc13amp coeff[1,2,1] = @osc13freq coeff[1,3,0] = @osc14amp coeff[1,3,1] = @osc14freq coeff[2,0,0] = @osc21amp coeff[2,0,1] = @osc21freq coeff[2,1,0] = @osc22amp coeff[2,1,1] = @osc22freq coeff[2,2,0] = @osc23amp coeff[2,2,1] = @osc23freq coeff[2,3,0] = @osc24amp coeff[2,3,1] = @osc24freq offset[1] = @o1offset offset[2] = @o2offset absoluteangle[1] = @o1absangle absoluteangle[2] = @o2absangle absoluteresult[1] = @o1absresult absoluteresult[2] = @o2absresult oscselector[1,0] = @osc11sin oscselector[1,1] = @osc12sin oscselector[1,2] = @osc13sin oscselector[1,3] = @osc14sin oscselector[2,0] = @osc21sin oscselector[2,1] = @osc22sin oscselector[2,2] = @osc23sin oscselector[2,3] = @osc24sin numberoffuncs = 1 numberofoscsets = 2 elseif @traptype == "mixed 2" ; x,y- coords computed using polar funcs, radius using 1 set of oscillators coeff[0,0,0] = @f1scale ; first, calc the x,y pair with polar funcs coeff[1,0,0] = @f2scale trapfunc[0] = @func1 trapfunc[1] = @func2 offset[0] = @f1offset offset[1] = @f2offset absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 const[1,0] = @const1f2 const[0,1] = @const2f1 const[1,1] = @const2f2 const[0,2] = @const3f1 const[1,2] = @const3f2 coeff[2,0,0] = @osc11amp ; now compute a radius using a 4-oscillator set coeff[2,0,1] = @osc11freq coeff[2,1,0] = @osc12amp coeff[2,1,1] = @osc12freq coeff[2,2,0] = @osc13amp coeff[2,2,1] = @osc13freq coeff[2,3,0] = @osc14amp coeff[2,3,1] = @osc14freq offset[2] = @o1offset absoluteangle[2] = @o1absangle absoluteresult[2] = @o1absresult oscselector[2,0] = @osc11sin oscselector[2,1] = @osc12sin oscselector[2,2] = @osc13sin oscselector[2,3] = @osc14sin numberoffuncs = 2 numberofoscsets = 1 endif ; @traptype endif ; @coordtype if @texture texfunc[0] = @texfunc1 texfunc[1] = @texfunc2 texfunc[2] = @texfunc3 texfunc[3] = @texfunc4 endif ; @texture init: complex z1 = (0,0) 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) ; New or newly defined variables complex ztemp = complex ztemp2 = (0,0) ; various uses; generally holds modifed #z complex traptemp = complex traptemp2 = (0,0) float tempangle = float tempangle2 = 0.0 ; angle of transformed, centered, etc., z float ftemp = float ftemp2 = 0.0 ; various uses; scratchpad variables float texadjust = 0.0 int maxindex = 0 int index = 0 ; outer/main loop variable int index2 = 0 ; pointer to array index within main loops int index3 = 0 ; inner loop variable int itercount = 0 ; for trapping the Nth z iterate bool solidset = bool maskAset = bool maskBset = FALSE ; flags used for masking ; int ptmodeiter = int ptmodecount = 0 ; This array holds the result of each of the r, x, or y calculations float result[4] maxindex = 4 while index < maxindex result[index] = 0.0 index = index + 1 endwhile ; index ; For history options; initialize history array complex zhist[10] index = 0, maxindex = 10 while index < maxindex zhist[index] = ztemp index = index + 1 endwhile ; index ; Old variables ; Change and scale variables to facilitate variation, if enabled float thresh = @threshold, float threshstep = 0.05 * @threshstp float scale = 0.1 * @overallscale, float scalestep = 0.05 * @scalestp float rwidth = @ringwidth, float ringstep = 0.05 * @ringstp float rotation = @rotate * degconversion, float rotationstep = 0.05 * @rotationstp complex center = @centr, float centerstep = @centerstp ; For fBm computation variation option float fBmmamount = @fBmamount, float fBmadjust = 0.0, float tempcolor = 0.0 float fBmstep = @fBmstp ; General variables and options if ( rotation < 0 ) rotation = rotation + twopi endif ; rotation float sign = 0.0 bool trapped = FALSE bool vary = TRUE float innerradius = thresh - @ringwidth if ( @whattotrap > 11 ) innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap int iter = 0, int count = 0 complex zinput = (0,0) ; holds the transformed/rotated etc #z; actual input to the trap float tempx = 0.0, float tempy = 0.0 ; misc. float vars ; More general options, mostly relating to trapped values float test = 0.0 ; this will hold the value being checked for min, max, etc. complex tempc = (0,0) ; the trapped trap point float tvtrapped = float tvtrapped2 = float tvtrapped3 = float tvtrapped4 = 1e9 ; trapped test values int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 ; trapped iterations float zangle = float tangle = 0.0 ; angle of #z, trap point float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 ; trapped z angles float tatrapped = float tatrapped2 = float tatrapped3 = float tatrapped4 = 0.0 ; trapped trap pt angles float ziatrapped = float ziatrapped2 = float ziatrapped3 = float ziatrapped4 = 0.0 ; trapped zinput angles complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) ; trapped z values complex zitrapped = complex zitrapped2 = complex zitrapped3 = complex zitrapped4 = (0,0) ; trapped zinputs complex ttrapped = complex ttrapped2 = complex ttrapped3 = complex ttrapped4 = (0,0) ; trapped trap pts ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) tvtrapped = tvtrapped2 = tvtrapped3 = tvtrapped4 = -1e9 elseif @whattotrap > 16 tvtrapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode loop: iter = iter + 1 complex z1 = #z if @th2 == 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 aah = @nufunc((z1-@tw)+@nufunc4(z2-@tw4)^@exp4) bbh = @nufunc((z1-@tw)-@nufunc4(z2-@tw4)^@exp4) cch = @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 = aah elseif @mmode == "z-|z|" nuvar = bbh elseif @mmode == "|z|-z" nuvar = cch 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 if @history maxindex = 0, index = 9 while index > maxindex index2 = index-1 zhist[index] = zhist[index2] index = index2 endwhile ; index zhist[0] = z1 endif ; @history if ( iter > @skippediters ) && ( iter <= watch ) ; finished skipping --- start testing for trap if @history if @histype == 1 ztemp = zhist[1] elseif @histype == 2 ztemp = real(z1) + flip(imag(zhist[1])) elseif @histype == 3 ztemp = real(zhist[1]) + flip(imag(z1)) elseif @histype == 4 ztemp = z1 - zhist[1] elseif @histype == 5 ztemp = z1 - real(zhist[1]) elseif @histype == 6 ztemp = z1 - flip(imag(zhist[1])) elseif @histype == 7 ztemp = z1 + zhist[1] elseif @histype == 8 ztemp = z1 + real(zhist[1]) elseif @histype == 9 ztemp = z1 + flip(imag(zhist[1])) elseif @histype == 10 ztemp = z1 * zhist[1] elseif @histype == 11 ztemp = z1 * real(zhist[1]) elseif @histype == 12 ztemp = z1 * flip(imag(zhist[1])) elseif @histype == 13 ztemp = real(z1) - zhist[1] elseif @histype == 14 ztemp = flip(imag(z1)) - zhist[1] elseif @histype == 15 ztemp = real(z1) + zhist[1] elseif @histype == 16 ztemp = flip(imag(z1)) + zhist[1] elseif @histype == 17 ztemp = real(z1) * zhist[1] elseif @histype == 18 ztemp = flip(imag(z1)) * zhist[1] elseif @histype == 19 ztemp = (real(z1) * imag(zhist[1])) + flip((imag(z1) * real(zhist[1]))) elseif @histype == 20 ztemp = (real(z1) * imag(zhist[1])) - flip((imag(z1) * real(zhist[1]))) elseif @histype == 21 ztemp = (real(z1) * imag(zhist[1])) * flip((imag(z1) * real(zhist[1]))) elseif @histype == 22 ztemp = (imag(z1) * real(zhist[1])) + flip((real(z1) * imag(zhist[1]))) elseif @histype == 23 ztemp = (imag(z1) * real(zhist[1])) - flip((real(z1) * imag(zhist[1]))) elseif @histype == 24 ztemp = (imag(z1) * real(zhist[1])) * flip((real(z1) * imag(zhist[1]))) elseif @histype == 25 ztemp = (real(z1) + imag(zhist[1])) + flip((imag(z1) + real(zhist[1]))) elseif @histype == 26 ztemp = (real(z1) + imag(zhist[1])) - flip((imag(z1) + real(zhist[1]))) elseif @histype == 27 ztemp = (real(z1) + imag(zhist[1])) * flip((imag(z1) + real(zhist[1]))) elseif @histype == 28 ztemp = (imag(z1) + real(zhist[1])) + flip((real(z1) + imag(zhist[1]))) elseif @histype == 29 ztemp = (imag(z1) + real(zhist[1])) - flip((real(z1) + imag(zhist[1]))) elseif @histype == 30 ztemp = (imag(z1) + real(zhist[1])) * flip((real(z1) + imag(zhist[1]))) elseif @histype == 31 ztemp = (real(z1) - imag(zhist[1])) + flip((imag(z1) - real(zhist[1]))) elseif @histype == 32 ztemp = (real(z1) - imag(zhist[1])) - flip((imag(z1) - real(zhist[1]))) elseif @histype == 33 ztemp = (real(z1) - imag(zhist[1])) * flip((imag(z1) - real(zhist[1]))) elseif @histype == 34 ztemp = (imag(z1) - real(zhist[1])) + flip((real(z1) - imag(zhist[1]))) elseif @histype == 35 ztemp = (imag(z1) - real(zhist[1])) - flip((real(z1) - imag(zhist[1]))) elseif @histype == 36 ztemp = (imag(z1) - real(zhist[1])) * flip((real(z1) - imag(zhist[1]))) elseif @histype == 37 ztemp = zhist[2] elseif @histype == 38 ztemp = real(z1) + flip(imag(zhist[2])) elseif @histype == 39 ztemp = real(zhist[2]) + flip(imag(z1)) elseif @histype == 40 ztemp = z1 - zhist[2] elseif @histype == 41 ztemp = z1 - real(zhist[2]) elseif @histype == 42 ztemp = z1 - flip(imag(zhist[2])) elseif @histype == 43 ztemp = z1 + zhist[2] elseif @histype == 44 ztemp = z1 + real(zhist[2]) elseif @histype == 45 ztemp = z1 + flip(imag(zhist[2])) elseif @histype == 46 ztemp = z1 * zhist[2] elseif @histype == 47 ztemp = z1 * real(zhist[2]) elseif @histype == 48 ztemp = z1 * flip(imag(zhist[2])) elseif @histype == 49 ztemp = real(z1) - zhist[2] elseif @histype == 50 ztemp = flip(imag(z1)) - zhist[2] elseif @histype == 51 ztemp = real(z1) + zhist[2] elseif @histype == 52 ztemp = flip(imag(z1)) + zhist[2] elseif @histype == 53 ztemp = real(z1) * zhist[2] elseif @histype == 54 ztemp = flip(imag(z1)) * zhist[2] elseif @histype == 55 ztemp = (real(z1) * imag(zhist[2])) + flip((imag(z1) * real(zhist[2]))) elseif @histype == 56 ztemp = (real(z1) * imag(zhist[2])) - flip((imag(z1) * real(zhist[2]))) elseif @histype == 57 ztemp = (real(z1) * imag(zhist[2])) * flip((imag(z1) * real(zhist[2]))) elseif @histype == 58 ztemp = (imag(z1) * real(zhist[2])) + flip((real(z1) * imag(zhist[2]))) elseif @histype == 59 ztemp = (imag(z1) * real(zhist[2])) - flip((real(z1) * imag(zhist[2]))) elseif @histype == 60 ztemp = (imag(z1) * real(zhist[2])) * flip((real(z1) * imag(zhist[2]))) elseif @histype == 61 ztemp = (real(z1) + imag(zhist[2])) + flip((imag(z1) + real(zhist[2]))) elseif @histype == 62 ztemp = (real(z1) + imag(zhist[2])) - flip((imag(z1) + real(zhist[2]))) elseif @histype == 63 ztemp = (real(z1) + imag(zhist[2])) * flip((imag(z1) + real(zhist[2]))) elseif @histype == 64 ztemp = (imag(z1) + real(zhist[2])) + flip((real(z1) + imag(zhist[2]))) elseif @histype == 65 ztemp = (imag(z1) + real(zhist[2])) - flip((real(z1) + imag(zhist[2]))) elseif @histype == 66 ztemp = (imag(z1) + real(zhist[2])) * flip((real(z1) + imag(zhist[2]))) elseif @histype == 67 ztemp = (real(z1) - imag(zhist[2])) + flip((imag(z1) - real(zhist[2]))) elseif @histype == 68 ztemp = (real(z1) - imag(zhist[2])) - flip((imag(z1) - real(zhist[2]))) elseif @histype == 69 ztemp = (real(z1) - imag(zhist[2])) * flip((imag(z1) - real(zhist[2]))) elseif @histype == 70 ztemp = (imag(z1) - real(zhist[2])) + flip((real(z1) - imag(zhist[2]))) elseif @histype == 71 ztemp = (imag(z1) - real(zhist[2])) - flip((real(z1) - imag(zhist[2]))) elseif @histype == 72 ztemp = (imag(z1) - real(zhist[2])) * flip((real(z1) - imag(zhist[2]))) elseif @histype == 73 ztemp = zhist[3] elseif @histype == 74 ztemp = real(z1) + flip(imag(zhist[3])) elseif @histype == 75 ztemp = real(zhist[3]) + flip(imag(z1)) elseif @histype == 76 ztemp = z1 - zhist[3] elseif @histype == 77 ztemp = z1 - real(zhist[3]) elseif @histype == 78 ztemp = z1 - flip(imag(zhist[3])) elseif @histype == 79 ztemp = z1 + zhist[3] elseif @histype == 80 ztemp = z1 + real(zhist[3]) elseif @histype == 81 ztemp = z1 + flip(imag(zhist[3])) elseif @histype == 82 ztemp = z1 * zhist[3] elseif @histype == 83 ztemp = z1 * real(zhist[3]) elseif @histype == 84 ztemp = z1 * flip(imag(zhist[3])) elseif @histype == 85 ztemp = real(z1) - zhist[3] elseif @histype == 86 ztemp = flip(imag(z1)) - zhist[3] elseif @histype == 87 ztemp = real(z1) + zhist[3] elseif @histype == 88 ztemp = flip(imag(z1)) + zhist[3] elseif @histype == 89 ztemp = real(z1) * zhist[3] elseif @histype == 90 ztemp = flip(imag(z1)) * zhist[3] elseif @histype == 91 ztemp = (real(z1) * imag(zhist[3])) + flip((imag(z1) * real(zhist[3]))) elseif @histype == 92 ztemp = (real(z1) * imag(zhist[3])) - flip((imag(z1) * real(zhist[3]))) elseif @histype == 93 ztemp = (real(z1) * imag(zhist[3])) * flip((imag(z1) * real(zhist[3]))) elseif @histype == 94 ztemp = (imag(z1) * real(zhist[3])) + flip((real(z1) * imag(zhist[3]))) elseif @histype == 95 ztemp = (imag(z1) * real(zhist[3])) - flip((real(z1) * imag(zhist[3]))) elseif @histype == 96 ztemp = (imag(z1) * real(zhist[3])) * flip((real(z1) * imag(zhist[3]))) elseif @histype == 97 ztemp = (real(z1) + imag(zhist[3])) + flip((imag(z1) + real(zhist[3]))) elseif @histype == 98 ztemp = (real(z1) + imag(zhist[3])) - flip((imag(z1) + real(zhist[3]))) elseif @histype == 99 ztemp = (real(z1) + imag(zhist[3])) * flip((imag(z1) + real(zhist[3]))) elseif @histype == 100 ztemp = (imag(z1) + real(zhist[3])) + flip((real(z1) + imag(zhist[3]))) elseif @histype == 101 ztemp = (imag(z1) + real(zhist[3])) - flip((real(z1) + imag(zhist[3]))) elseif @histype == 102 ztemp = (imag(z1) + real(zhist[3])) * flip((real(z1) + imag(zhist[3]))) elseif @histype == 103 ztemp = (real(z1) - imag(zhist[3])) + flip((imag(z1) - real(zhist[3]))) elseif @histype == 104 ztemp = (real(z1) - imag(zhist[3])) - flip((imag(z1) - real(zhist[3]))) elseif @histype == 105 ztemp = (real(z1) - imag(zhist[3])) * flip((imag(z1) - real(zhist[3]))) elseif @histype == 106 ztemp = (imag(z1) - real(zhist[3])) + flip((real(z1) - imag(zhist[3]))) elseif @histype == 107 ztemp = (imag(z1) - real(zhist[3])) - flip((real(z1) - imag(zhist[3]))) elseif @histype == 108 ztemp = (imag(z1) - real(zhist[3])) * flip((real(z1) - imag(zhist[3]))) elseif @histype == 109 ztemp = zhist[4] elseif @histype == 110 ztemp = real(z1) + flip(imag(zhist[4])) elseif @histype == 111 ztemp = real(zhist[4]) + flip(imag(z1)) elseif @histype == 112 ztemp = z1 - zhist[4] elseif @histype == 113 ztemp = z1 - real(zhist[4]) elseif @histype == 114 ztemp = z1 - flip(imag(zhist[4])) elseif @histype == 115 ztemp = z1 + zhist[4] elseif @histype == 116 ztemp = z1 + real(zhist[4]) elseif @histype == 117 ztemp = z1 + flip(imag(zhist[4])) elseif @histype == 118 ztemp = z1 * zhist[4] elseif @histype == 119 ztemp = z1 * real(zhist[4]) elseif @histype == 120 ztemp = z1 * flip(imag(zhist[4])) elseif @histype == 121 ztemp = real(z1) - zhist[4] elseif @histype == 122 ztemp = flip(imag(z1)) - zhist[4] elseif @histype == 123 ztemp = real(z1) + zhist[4] elseif @histype == 124 ztemp = flip(imag(z1)) + zhist[4] elseif @histype == 125 ztemp = real(z1) * zhist[4] elseif @histype == 126 ztemp = flip(imag(z1)) * zhist[4] elseif @histype == 127 ztemp = (real(z1) * imag(zhist[4])) + flip((imag(z1) * real(zhist[4]))) elseif @histype == 128 ztemp = (real(z1) * imag(zhist[4])) - flip((imag(z1) * real(zhist[4]))) elseif @histype == 129 ztemp = (real(z1) * imag(zhist[4])) * flip((imag(z1) * real(zhist[4]))) elseif @histype == 130 ztemp = (imag(z1) * real(zhist[4])) + flip((real(z1) * imag(zhist[4]))) elseif @histype == 131 ztemp = (imag(z1) * real(zhist[4])) - flip((real(z1) * imag(zhist[4]))) elseif @histype == 132 ztemp = (imag(z1) * real(zhist[4])) * flip((real(z1) * imag(zhist[4]))) elseif @histype == 133 ztemp = (real(z1) + imag(zhist[4])) + flip((imag(z1) + real(zhist[4]))) elseif @histype == 134 ztemp = (real(z1) + imag(zhist[4])) - flip((imag(z1) + real(zhist[4]))) elseif @histype == 135 ztemp = (real(z1) + imag(zhist[4])) * flip((imag(z1) + real(zhist[4]))) elseif @histype == 136 ztemp = (imag(z1) + real(zhist[4])) + flip((real(z1) + imag(zhist[4]))) elseif @histype == 137 ztemp = (imag(z1) + real(zhist[4])) - flip((real(z1) + imag(zhist[4]))) elseif @histype == 138 ztemp = (imag(z1) + real(zhist[4])) * flip((real(z1) + imag(zhist[4]))) elseif @histype == 139 ztemp = (real(z1) - imag(zhist[4])) + flip((imag(z1) - real(zhist[4]))) elseif @histype == 140 ztemp = (real(z1) - imag(zhist[4])) - flip((imag(z1) - real(zhist[4]))) elseif @histype == 141 ztemp = (real(z1) - imag(zhist[4])) * flip((imag(z1) - real(zhist[4]))) elseif @histype == 142 ztemp = (imag(z1) - real(zhist[4])) + flip((real(z1) - imag(zhist[4]))) elseif @histype == 143 ztemp = (imag(z1) - real(zhist[4])) - flip((real(z1) - imag(zhist[4]))) elseif @histype == 144 ztemp = (imag(z1) - real(zhist[4])) * flip((real(z1) - imag(zhist[4]))) elseif @histype == 145 ztemp = zhist[5] elseif @histype == 146 ztemp = real(z1) + flip(imag(zhist[5])) elseif @histype == 147 ztemp = real(zhist[5]) + flip(imag(z1)) elseif @histype == 148 ztemp = z1 - zhist[5] elseif @histype == 149 ztemp = z1 - real(zhist[5]) elseif @histype == 150 ztemp = z1 - flip(imag(zhist[5])) elseif @histype == 151 ztemp = z1 + zhist[5] elseif @histype == 152 ztemp = z1 + real(zhist[5]) elseif @histype == 153 ztemp = z1 + flip(imag(zhist[5])) elseif @histype == 154 ztemp = z1 * zhist[5] elseif @histype == 155 ztemp = z1 * real(zhist[5]) elseif @histype == 156 ztemp = z1 * flip(imag(zhist[5])) elseif @histype == 157 ztemp = real(z1) - zhist[5] elseif @histype == 158 ztemp = flip(imag(z1)) - zhist[5] elseif @histype == 159 ztemp = real(z1) + zhist[5] elseif @histype == 160 ztemp = flip(imag(z1)) + zhist[5] elseif @histype == 161 ztemp = real(z1) * zhist[5] elseif @histype == 162 ztemp = flip(imag(z1)) * zhist[5] elseif @histype == 163 ztemp = (real(z1) * imag(zhist[5])) + flip((imag(z1) * real(zhist[5]))) elseif @histype == 164 ztemp = (real(z1) * imag(zhist[5])) - flip((imag(z1) * real(zhist[5]))) elseif @histype == 165 ztemp = (real(z1) * imag(zhist[5])) * flip((imag(z1) * real(zhist[5]))) elseif @histype == 166 ztemp = (imag(z1) * real(zhist[5])) + flip((real(z1) * imag(zhist[5]))) elseif @histype == 167 ztemp = (imag(z1) * real(zhist[5])) - flip((real(z1) * imag(zhist[5]))) elseif @histype == 168 ztemp = (imag(z1) * real(zhist[5])) * flip((real(z1) * imag(zhist[5]))) elseif @histype == 169 ztemp = (real(z1) + imag(zhist[5])) + flip((imag(z1) + real(zhist[5]))) elseif @histype == 170 ztemp = (real(z1) + imag(zhist[5])) - flip((imag(z1) + real(zhist[5]))) elseif @histype == 171 ztemp = (real(z1) + imag(zhist[5])) * flip((imag(z1) + real(zhist[5]))) elseif @histype == 172 ztemp = (imag(z1) + real(zhist[5])) + flip((real(z1) + imag(zhist[5]))) elseif @histype == 173 ztemp = (imag(z1) + real(zhist[5])) - flip((real(z1) + imag(zhist[5]))) elseif @histype == 174 ztemp = (imag(z1) + real(zhist[5])) * flip((real(z1) + imag(zhist[5]))) elseif @histype == 175 ztemp = (real(z1) - imag(zhist[5])) + flip((imag(z1) - real(zhist[5]))) elseif @histype == 176 ztemp = (real(z1) - imag(zhist[5])) - flip((imag(z1) - real(zhist[5]))) elseif @histype == 177 ztemp = (real(z1) - imag(zhist[5])) * flip((imag(z1) - real(zhist[5]))) elseif @histype == 178 ztemp = (imag(z1) - real(zhist[5])) + flip((real(z1) - imag(zhist[5]))) elseif @histype == 179 ztemp = (imag(z1) - real(zhist[5])) - flip((real(z1) - imag(zhist[5]))) elseif @histype == 180 ztemp = (imag(z1) - real(zhist[5])) * flip((real(z1) - imag(zhist[5]))) elseif @histype == 181 ztemp = zhist[6] elseif @histype == 182 ztemp = real(z1) + flip(imag(zhist[6])) elseif @histype == 183 ztemp = real(zhist[6]) + flip(imag(z1)) elseif @histype == 184 ztemp = z1 - zhist[6] elseif @histype == 185 ztemp = z1 - real(zhist[6]) elseif @histype == 186 ztemp = z1 - flip(imag(zhist[6])) elseif @histype == 187 ztemp = z1 + zhist[6] elseif @histype == 188 ztemp = z1 + real(zhist[6]) elseif @histype == 189 ztemp = z1 + flip(imag(zhist[6])) elseif @histype == 190 ztemp = z1 * zhist[6] elseif @histype == 191 ztemp = z1 * real(zhist[6]) elseif @histype == 192 ztemp = z1 * flip(imag(zhist[6])) elseif @histype == 193 ztemp = real(z1) - zhist[6] elseif @histype == 194 ztemp = flip(imag(z1)) - zhist[6] elseif @histype == 195 ztemp = real(z1) + zhist[6] elseif @histype == 196 ztemp = flip(imag(z1)) + zhist[6] elseif @histype == 197 ztemp = real(z1) * zhist[6] elseif @histype == 198 ztemp = flip(imag(z1)) * zhist[6] elseif @histype == 199 ztemp = (real(z1) * imag(zhist[6])) + flip((imag(z1) * real(zhist[6]))) elseif @histype == 200 ztemp = (real(z1) * imag(zhist[6])) - flip((imag(z1) * real(zhist[6]))) elseif @histype == 201 ztemp = (real(z1) * imag(zhist[6])) * flip((imag(z1) * real(zhist[6]))) elseif @histype == 202 ztemp = (imag(z1) * real(zhist[6])) + flip((real(z1) * imag(zhist[6]))) elseif @histype == 203 ztemp = (imag(z1) * real(zhist[6])) - flip((real(z1) * imag(zhist[6]))) elseif @histype == 204 ztemp = (imag(z1) * real(zhist[6])) * flip((real(z1) * imag(zhist[6]))) elseif @histype == 205 ztemp = (real(z1) + imag(zhist[6])) + flip((imag(z1) + real(zhist[6]))) elseif @histype == 206 ztemp = (real(z1) + imag(zhist[6])) - flip((imag(z1) + real(zhist[6]))) elseif @histype == 207 ztemp = (real(z1) + imag(zhist[6])) * flip((imag(z1) + real(zhist[6]))) elseif @histype == 208 ztemp = (imag(z1) + real(zhist[6])) + flip((real(z1) + imag(zhist[6]))) elseif @histype == 209 ztemp = (imag(z1) + real(zhist[6])) - flip((real(z1) + imag(zhist[6]))) elseif @histype == 210 ztemp = (imag(z1) + real(zhist[6])) * flip((real(z1) + imag(zhist[6]))) elseif @histype == 211 ztemp = (real(z1) - imag(zhist[6])) + flip((imag(z1) - real(zhist[6]))) elseif @histype == 212 ztemp = (real(z1) - imag(zhist[6])) - flip((imag(z1) - real(zhist[6]))) elseif @histype == 213 ztemp = (real(z1) - imag(zhist[6])) * flip((imag(z1) - real(zhist[6]))) elseif @histype == 214 ztemp = (imag(z1) - real(zhist[6])) + flip((real(z1) - imag(zhist[6]))) elseif @histype == 215 ztemp = (imag(z1) - real(zhist[6])) - flip((real(z1) - imag(zhist[6]))) elseif @histype == 216 ztemp = (imag(z1) - real(zhist[6])) * flip((real(z1) - imag(zhist[6]))) elseif @histype == 217 ztemp = zhist[7] elseif @histype == 218 ztemp = real(z1) + flip(imag(zhist[7])) elseif @histype == 219 ztemp = real(zhist[7]) + flip(imag(z1)) elseif @histype == 220 ztemp = z1 - zhist[7] elseif @histype == 221 ztemp = z1 - real(zhist[7]) elseif @histype == 222 ztemp = z1 - flip(imag(zhist[7])) elseif @histype == 223 ztemp = z1 + zhist[7] elseif @histype == 224 ztemp = z1 + real(zhist[7]) elseif @histype == 225 ztemp = z1 + flip(imag(zhist[7])) elseif @histype == 226 ztemp = z1 * zhist[7] elseif @histype == 227 ztemp = z1 * real(zhist[7]) elseif @histype == 228 ztemp = z1 * flip(imag(zhist[7])) elseif @histype == 229 ztemp = real(z1) - zhist[7] elseif @histype == 230 ztemp = flip(imag(z1)) - zhist[7] elseif @histype == 231 ztemp = real(z1) + zhist[7] elseif @histype == 232 ztemp = flip(imag(z1)) + zhist[7] elseif @histype == 233 ztemp = real(z1) * zhist[7] elseif @histype == 234 ztemp = flip(imag(z1)) * zhist[7] elseif @histype == 235 ztemp = (real(z1) * imag(zhist[7])) + flip((imag(z1) * real(zhist[7]))) elseif @histype == 236 ztemp = (real(z1) * imag(zhist[7])) - flip((imag(z1) * real(zhist[7]))) elseif @histype == 237 ztemp = (real(z1) * imag(zhist[7])) * flip((imag(z1) * real(zhist[7]))) elseif @histype == 238 ztemp = (imag(z1) * real(zhist[7])) + flip((real(z1) * imag(zhist[7]))) elseif @histype == 239 ztemp = (imag(z1) * real(zhist[7])) - flip((real(z1) * imag(zhist[7]))) elseif @histype == 240 ztemp = (imag(z1) * real(zhist[7])) * flip((real(z1) * imag(zhist[7]))) elseif @histype == 241 ztemp = (real(z1) + imag(zhist[7])) + flip((imag(z1) + real(zhist[7]))) elseif @histype == 242 ztemp = (real(z1) + imag(zhist[7])) - flip((imag(z1) + real(zhist[7]))) elseif @histype == 243 ztemp = (real(z1) + imag(zhist[7])) * flip((imag(z1) + real(zhist[7]))) elseif @histype == 244 ztemp = (imag(z1) + real(zhist[7])) + flip((real(z1) + imag(zhist[7]))) elseif @histype == 245 ztemp = (imag(z1) + real(zhist[7])) - flip((real(z1) + imag(zhist[7]))) elseif @histype == 246 ztemp = (imag(z1) + real(zhist[7])) * flip((real(z1) + imag(zhist[7]))) elseif @histype == 247 ztemp = (real(z1) - imag(zhist[7])) + flip((imag(z1) - real(zhist[7]))) elseif @histype == 248 ztemp = (real(z1) - imag(zhist[7])) - flip((imag(z1) - real(zhist[7]))) elseif @histype == 249 ztemp = (real(z1) - imag(zhist[7])) * flip((imag(z1) - real(zhist[7]))) elseif @histype == 250 ztemp = (imag(z1) - real(zhist[7])) + flip((real(z1) - imag(zhist[7]))) elseif @histype == 251 ztemp = (imag(z1) - real(zhist[7])) - flip((real(z1) - imag(zhist[7]))) elseif @histype == 252 ztemp = (imag(z1) - real(zhist[7])) * flip((real(z1) - imag(zhist[7]))) elseif @histype == 253 ztemp = zhist[8] elseif @histype == 254 ztemp = real(z1) + flip(imag(zhist[8])) elseif @histype == 255 ztemp = real(zhist[8]) + flip(imag(z1)) elseif @histype == 256 ztemp = z1 - zhist[8] elseif @histype == 257 ztemp = z1 - real(zhist[8]) elseif @histype == 258 ztemp = z1 - flip(imag(zhist[8])) elseif @histype == 259 ztemp = z1 + zhist[8] elseif @histype == 260 ztemp = z1 + real(zhist[8]) elseif @histype == 261 ztemp = z1 + flip(imag(zhist[8])) elseif @histype == 262 ztemp = z1 * zhist[8] elseif @histype == 263 ztemp = z1 * real(zhist[8]) elseif @histype == 264 ztemp = z1 * flip(imag(zhist[8])) elseif @histype == 265 ztemp = real(z1) - zhist[8] elseif @histype == 266 ztemp = flip(imag(z1)) - zhist[8] elseif @histype == 267 ztemp = real(z1) + zhist[8] elseif @histype == 268 ztemp = flip(imag(z1)) + zhist[8] elseif @histype == 269 ztemp = real(z1) * zhist[8] elseif @histype == 270 ztemp = flip(imag(z1)) * zhist[8] elseif @histype == 271 ztemp = (real(z1) * imag(zhist[8])) + flip((imag(z1) * real(zhist[8]))) elseif @histype == 272 ztemp = (real(z1) * imag(zhist[8])) - flip((imag(z1) * real(zhist[8]))) elseif @histype == 273 ztemp = (real(z1) * imag(zhist[8])) * flip((imag(z1) * real(zhist[8]))) elseif @histype == 274 ztemp = (imag(z1) * real(zhist[8])) + flip((real(z1) * imag(zhist[8]))) elseif @histype == 275 ztemp = (imag(z1) * real(zhist[8])) - flip((real(z1) * imag(zhist[8]))) elseif @histype == 276 ztemp = (imag(z1) * real(zhist[8])) * flip((real(z1) * imag(zhist[8]))) elseif @histype == 277 ztemp = (real(z1) + imag(zhist[8])) + flip((imag(z1) + real(zhist[8]))) elseif @histype == 278 ztemp = (real(z1) + imag(zhist[8])) - flip((imag(z1) + real(zhist[8]))) elseif @histype == 279 ztemp = (real(z1) + imag(zhist[8])) * flip((imag(z1) + real(zhist[8]))) elseif @histype == 280 ztemp = (imag(z1) + real(zhist[8])) + flip((real(z1) + imag(zhist[8]))) elseif @histype == 281 ztemp = (imag(z1) + real(zhist[8])) - flip((real(z1) + imag(zhist[8]))) elseif @histype == 282 ztemp = (imag(z1) + real(zhist[8])) * flip((real(z1) + imag(zhist[8]))) elseif @histype == 283 ztemp = (real(z1) - imag(zhist[8])) + flip((imag(z1) - real(zhist[8]))) elseif @histype == 284 ztemp = (real(z1) - imag(zhist[8])) - flip((imag(z1) - real(zhist[8]))) elseif @histype == 285 ztemp = (real(z1) - imag(zhist[8])) * flip((imag(z1) - real(zhist[8]))) elseif @histype == 286 ztemp = (imag(z1) - real(zhist[8])) + flip((real(z1) - imag(zhist[8]))) elseif @histype == 287 ztemp = (imag(z1) - real(zhist[8])) - flip((real(z1) - imag(zhist[8]))) elseif @histype == 288 ztemp = (imag(z1) - real(zhist[8])) * flip((real(z1) - imag(zhist[8]))) elseif @histype == 289 ztemp = zhist[9] elseif @histype == 290 ztemp = real(z1) + flip(imag(zhist[9])) elseif @histype == 291 ztemp = real(zhist[9]) + flip(imag(z1)) elseif @histype == 292 ztemp = z1 - zhist[9] elseif @histype == 293 ztemp = z1 - real(zhist[9]) elseif @histype == 294 ztemp = z1 - flip(imag(zhist[9])) elseif @histype == 295 ztemp = z1 + zhist[9] elseif @histype == 296 ztemp = z1 + real(zhist[9]) elseif @histype == 297 ztemp = z1 + flip(imag(zhist[9])) elseif @histype == 298 ztemp = z1 * zhist[9] elseif @histype == 299 ztemp = z1 * real(zhist[9]) elseif @histype == 300 ztemp = z1 * flip(imag(zhist[9])) elseif @histype == 301 ztemp = real(z1) - zhist[9] elseif @histype == 302 ztemp = flip(imag(z1)) - zhist[9] elseif @histype == 303 ztemp = real(z1) + zhist[9] elseif @histype == 304 ztemp = flip(imag(z1)) + zhist[9] elseif @histype == 305 ztemp = real(z1) * zhist[9] elseif @histype == 306 ztemp = flip(imag(z1)) * zhist[9] elseif @histype == 307 ztemp = (real(z1) * imag(zhist[9])) + flip((imag(z1) * real(zhist[9]))) elseif @histype == 308 ztemp = (real(z1) * imag(zhist[9])) - flip((imag(z1) * real(zhist[9]))) elseif @histype == 309 ztemp = (real(z1) * imag(zhist[9])) * flip((imag(z1) * real(zhist[9]))) elseif @histype == 310 ztemp = (imag(z1) * real(zhist[9])) + flip((real(z1) * imag(zhist[9]))) elseif @histype == 311 ztemp = (imag(z1) * real(zhist[9])) - flip((real(z1) * imag(zhist[9]))) elseif @histype == 312 ztemp = (imag(z1) * real(zhist[9])) * flip((real(z1) * imag(zhist[9]))) elseif @histype == 313 ztemp = (real(z1) + imag(zhist[9])) + flip((imag(z1) + real(zhist[9]))) elseif @histype == 314 ztemp = (real(z1) + imag(zhist[9])) - flip((imag(z1) + real(zhist[9]))) elseif @histype == 315 ztemp = (real(z1) + imag(zhist[9])) * flip((imag(z1) + real(zhist[9]))) elseif @histype == 316 ztemp = (imag(z1) + real(zhist[9])) + flip((real(z1) + imag(zhist[9]))) elseif @histype == 317 ztemp = (imag(z1) + real(zhist[9])) - flip((real(z1) + imag(zhist[9]))) elseif @histype == 318 ztemp = (imag(z1) + real(zhist[9])) * flip((real(z1) + imag(zhist[9]))) elseif @histype == 319 ztemp = (real(z1) - imag(zhist[9])) + flip((imag(z1) - real(zhist[9]))) elseif @histype == 320 ztemp = (real(z1) - imag(zhist[9])) - flip((imag(z1) - real(zhist[9]))) elseif @histype == 321 ztemp = (real(z1) - imag(zhist[9])) * flip((imag(z1) - real(zhist[9]))) elseif @histype == 322 ztemp = (imag(z1) - real(zhist[9])) + flip((real(z1) - imag(zhist[9]))) elseif @histype == 323 ztemp = (imag(z1) - real(zhist[9])) - flip((real(z1) - imag(zhist[9]))) elseif @histype == 324 ztemp = (imag(z1) - real(zhist[9])) * flip((real(z1) - imag(zhist[9]))) else ztemp = z1 endif ; histype else ztemp = z1 endif ; history if @absolutez ztemp = abs(ztemp) endif ; @absolutez if @absoluter ztemp = abs(real(ztemp)) + flip(imag(ztemp)) endif ; @absoluter if @absolutei ztemp = real(ztemp) + flip(abs(imag(ztemp))) endif ; @absolutei zangle = atan2(z1) if zangle < 0 zangle = zangle + twopi endif ; zangle ; Initialize front end real, front end imag, if desired ftemp = @rfscale * real(ztemp) if @absoluter2 ftemp = abs(ftemp) endif ; @absoluter2 if ( @realfront == 0 ) tempx = ftemp elseif ( @realfront == 1 ) tempx = 1/ftemp elseif ( @realfront == 2 ) tempx = ftemp * ftemp elseif ( @realfront == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realfront == 4 ) tempx = log(ftemp) elseif ( @realfront == 5 ) tempx = exp( ftemp) elseif ( @realfront == 6 ) tempx = ftemp^ftemp elseif ( @realfront == 7 ) tempx = sin( ftemp ) elseif ( @realfront == 8 ) tempx = cos( ftemp ) elseif ( @realfront == 9 ) tempx = tan( ftemp ) elseif ( @realfront == 10 ) tempx = asin( ftemp ) elseif ( @realfront == 11 ) tempx = acos( ftemp ) elseif ( @realfront == 12 ) tempx = atan( ftemp ) elseif ( @realfront == 13 ) tempx = sinh( ftemp ) elseif ( @realfront == 14 ) tempx = cosh( ftemp ) elseif ( @realfront == 15 ) tempx = tanh( ftemp ) elseif ( @realfront == 16 ) tempx = asinh( ftemp ) elseif ( @realfront == 17 ) tempx = acosh( ftemp ) elseif ( @realfront == 18 ) tempx = atanh( ftemp ) elseif ( @realfront == 19 ) tempx = log( 1/ftemp ) elseif ( @realfront == 20 ) tempx = log( log( ftemp )) elseif ( @realfront == 21 ) tempx = exp( -ftemp ) elseif ( @realfront == 22 ) tempx = exp( 1/ftemp ) elseif ( @realfront == 23 ) tempx = ftemp^(-ftemp) elseif ( @realfront == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( ftemp ) elseif ( @realfront == 28 ) tempx = 1/cos( ftemp ) elseif ( @realfront == 29 ) tempx = 1/sin( ftemp ) elseif ( @realfront == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realfront == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realfront == 35 ) tempx = log(-ftemp) elseif ( @realfront == 36 ) tempx = 1/log( ftemp ) elseif ( @realfront == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realfront == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realfront == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realfront == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realfront == 41 ) tempx = sin( ftemp^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/ftemp ) elseif ( @realfront == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realfront == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realfront == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realfront == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realfront == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realfront == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realfront == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realfront == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realfront == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realfront == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realfront == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realfront == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realfront == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realfront == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realfront == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realfront == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realfront == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realfront == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realfront == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realfront == 62 ) tempx = sin( 1/ftemp ) elseif ( @realfront == 63 ) tempx = cos( 1/ftemp ) elseif ( @realfront == 64 ) tempx = tan( 1/ftemp ) elseif ( @realfront == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realfront == 68 ) tempx = cotanh( ftemp ) elseif ( @realfront == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realfront == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realfront == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realfront == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realfront == 73 ) tempx = asinh( 1/ftemp ) elseif @realfront == 74 tempx = ftemp^@rfpower elseif @realfront == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/ftemp) elseif @realfront == 82 tempx = cosh(1/ftemp) elseif @realfront == 83 tempx = tanh(1/ftemp) elseif @realfront == 84 tempx = cotanh(1/ftemp) elseif @realfront == 85 tempx = 1/cosh(1/ftemp) elseif @realfront == 86 tempx = 1/sinh(1/ftemp) elseif @realfront == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realfront == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realfront == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realfront == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realfront == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realfront == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realfront == 98 tempx = exp(2*ftemp) elseif @realfront == 99 tempx = exp(-2*ftemp) elseif @realfront == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realfront == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realfront == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realfront == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realfront == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realfront == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realfront == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realfront == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realfront == 111 tempx = sin(ftemp)*log(ftemp) elseif @realfront == 112 tempx = cos(ftemp)*log(ftemp) elseif @realfront == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realfront == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realfront == 115 tempx = exp(ftemp^2) elseif @realfront == 116 tempx = exp(1/(ftemp^2)) elseif @realfront == 117 tempx = abs(ftemp) elseif @realfront == 118 tempx = round(ftemp) elseif @realfront == 119 tempx = trunc(ftemp) elseif @realfront == 120 tempx = ceil(ftemp) elseif @realfront == 121 tempx = floor(ftemp) elseif @realfront == 122 tempx = ftemp/log(ftemp) elseif @realfront == 123 tempx = log(ftemp)/ftemp elseif @realfront == 124 tempx = exp(ftemp)/ftemp elseif @realfront == 125 tempx = exp(1/ftemp)/ftemp elseif @realfront == 126 tempx = exp(ftemp^2)/ftemp elseif @realfront == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realfront == 128 tempx = ftemp * exp(ftemp^2) elseif @realfront == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realfront == 130 tempx = exp(-(ftemp^2)) elseif @realfront == 131 tempx = exp(-1/(ftemp^2)) elseif @realfront == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realfront == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realfront == 134 tempx = ftemp * exp(-(ftemp^2)) else ; @realfront == 135 tempx = ftemp * exp(-1/(ftemp^2)) endif ; realfront if @absoluter3 tempx = abs(tempx) endif ; @absoluter3 if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(ztemp) endif ; @rfperturb ftemp = @ifscale * imag(ztemp) if @absolutei2 ftemp = abs(ftemp) endif ; @absolutei2 if ( @imagfront == 0 ) tempy = ftemp elseif ( @imagfront == 1 ) tempy = 1/ftemp elseif ( @imagfront == 2 ) tempy = ftemp * ftemp elseif ( @imagfront == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagfront == 4 ) tempy = log(ftemp) elseif ( @imagfront == 5 ) tempy = exp( ftemp) elseif ( @imagfront == 6 ) tempy = ftemp^ftemp elseif ( @imagfront == 7 ) tempy = sin( ftemp ) elseif ( @imagfront == 8 ) tempy = cos( ftemp ) elseif ( @imagfront == 9 ) tempy = tan( ftemp ) elseif ( @imagfront == 10 ) tempy = asin( ftemp ) elseif ( @imagfront == 11 ) tempy = acos( ftemp ) elseif ( @imagfront == 12 ) tempy = atan( ftemp ) elseif ( @imagfront == 13 ) tempy = sinh( ftemp ) elseif ( @imagfront == 14 ) tempy = cosh( ftemp ) elseif ( @imagfront == 15 ) tempy = tanh( ftemp ) elseif ( @imagfront == 16 ) tempy = asinh( ftemp ) elseif ( @imagfront == 17 ) tempy = acosh( ftemp ) elseif ( @imagfront == 18 ) tempy = atanh( ftemp ) elseif ( @imagfront == 19 ) tempy = log( 1/ftemp ) elseif ( @imagfront == 20 ) tempy = log( log( ftemp )) elseif ( @imagfront == 21 ) tempy = exp( -ftemp ) elseif ( @imagfront == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagfront == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagfront == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( ftemp ) elseif ( @imagfront == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagfront == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagfront == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagfront == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagfront == 35 ) tempy = log(-ftemp) elseif ( @imagfront == 36 ) tempy = 1/log( ftemp ) elseif ( @imagfront == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagfront == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagfront == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagfront == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagfront == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagfront == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagfront == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagfront == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagfront == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagfront == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagfront == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagfront == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagfront == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagfront == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagfront == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagfront == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagfront == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagfront == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagfront == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagfront == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagfront == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagfront == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagfront == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagfront == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagfront == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagfront == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagfront == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagfront == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagfront == 68 ) tempy = cotanh( ftemp ) elseif ( @imagfront == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagfront == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagfront == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagfront == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagfront == 73 ) tempy = asinh( 1/ftemp ) elseif @imagfront == 74 tempy = ftemp^@ifpower elseif @imagfront == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/ftemp) elseif @imagfront == 82 tempy = cosh(1/ftemp) elseif @imagfront == 83 tempy = tanh(1/ftemp) elseif @imagfront == 84 tempy = cotanh(1/ftemp) elseif @imagfront == 85 tempy = 1/cosh(1/ftemp) elseif @imagfront == 86 tempy = 1/sinh(1/ftemp) elseif @imagfront == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagfront == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagfront == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagfront == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagfront == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagfront == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagfront == 98 tempy = exp(2*ftemp) elseif @imagfront == 99 tempy = exp(-2*ftemp) elseif @imagfront == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagfront == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagfront == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagfront == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagfront == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagfront == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagfront == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagfront == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagfront == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagfront == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagfront == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagfront == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagfront == 115 tempy = exp(ftemp^2) elseif @imagfront == 116 tempy = exp(1/(ftemp^2)) elseif @imagfront == 117 tempy = abs(ftemp) elseif @imagfront == 118 tempy = round(ftemp) elseif @imagfront == 119 tempy = trunc(ftemp) elseif @imagfront == 120 tempy = ceil(ftemp) elseif @imagfront == 121 tempy = floor(ftemp) elseif @imagfront == 122 tempy = ftemp/log(ftemp) elseif @imagfront == 123 tempy = log(ftemp)/ftemp elseif @imagfront == 124 tempy = exp(ftemp)/ftemp elseif @imagfront == 125 tempy = exp(1/ftemp)/ftemp elseif @imagfront == 126 tempy = exp(ftemp^2)/ftemp elseif @imagfront == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagfront == 128 tempy = ftemp * exp(ftemp^2) elseif @imagfront == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagfront == 130 tempy = exp(-(ftemp^2)) elseif @imagfront == 131 tempy = exp(-1/(ftemp^2)) elseif @imagfront == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagfront == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagfront == 134 tempy = ftemp * exp(-(ftemp^2)) else ; @imagfront == 135 tempy = ftemp * exp(-1/(ftemp^2)) endif ; imagfront if @absolutei3 tempy = abs(tempy) endif ; @absolutei3 if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(ztemp) endif ; @ifperturb ztemp = tempx + flip(tempy) ; Initialize z, if desired ztemp = @ziscale * ztemp if ( @initialization == 0 ) zinput = ztemp elseif ( @initialization == 1 ) zinput = 1/ztemp elseif ( @initialization == 2 ) zinput = ztemp * ztemp elseif ( @initialization == 3 ) zinput = 1 / ( ztemp * ztemp ) elseif ( @initialization == 4 ) zinput = log(ztemp) elseif ( @initialization == 5 ) zinput = exp( ztemp) elseif ( @initialization == 6 ) zinput = ztemp^ztemp elseif ( @initialization == 7 ) zinput = sin( ztemp ) elseif ( @initialization == 8 ) zinput = cos( ztemp ) elseif ( @initialization == 9 ) zinput = tan( ztemp ) elseif ( @initialization == 10 ) zinput = asin( ztemp ) elseif ( @initialization == 11 ) zinput = acos( ztemp ) elseif ( @initialization == 12 ) zinput = atan( ztemp ) elseif ( @initialization == 13 ) zinput = sinh( ztemp ) elseif ( @initialization == 14 ) zinput = cosh( ztemp ) elseif ( @initialization == 15 ) zinput = tanh( ztemp ) elseif ( @initialization == 16 ) zinput = asinh( ztemp ) elseif ( @initialization == 17 ) zinput = acosh( ztemp ) elseif ( @initialization == 18 ) zinput = atanh( ztemp ) elseif ( @initialization == 19 ) zinput = log( 1/ztemp ) elseif ( @initialization == 20 ) zinput = log( log( ztemp )) elseif ( @initialization == 21 ) zinput = exp( -ztemp ) elseif ( @initialization == 22 ) zinput = exp( 1/ztemp ) elseif ( @initialization == 23 ) zinput = ztemp^(-ztemp) elseif ( @initialization == 24 ) zinput = sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( ztemp ) elseif ( @initialization == 28 ) zinput = 1/cos( ztemp ) elseif ( @initialization == 29 ) zinput = 1/sin( ztemp ) elseif ( @initialization == 30 ) zinput = cotan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = ztemp^(ztemp) zinput = ztemp^zinput elseif ( @initialization == 34 ) zinput = ztemp^(ztemp) zinput = 1/( ztemp^zinput ) elseif ( @initialization == 35 ) zinput = log(-ztemp) elseif ( @initialization == 36 ) zinput = 1/log( ztemp ) elseif ( @initialization == 37 ) zinput = ztemp * log( ztemp ) elseif ( @initialization == 38 ) zinput = sin( ztemp ) / ztemp elseif ( @initialization == 39 ) zinput = cos( ztemp ) / ztemp elseif ( @initialization == 40 ) zinput = sin( ztemp ) * cos( ztemp ) elseif ( @initialization == 41 ) zinput = sin( ztemp^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/ztemp ) elseif ( @initialization == 43 ) zinput = ztemp * exp( ztemp ) elseif ( @initialization == 44 ) zinput = ztemp * exp( -ztemp ) elseif ( @initialization == 45 ) zinput = ztemp * exp( 1/ztemp ) elseif ( @initialization == 46 ) zinput = ztemp * exp( -1/ztemp ) elseif ( @initialization == 47 ) zinput = ztemp * ztemp * ztemp elseif ( @initialization == 48 ) zinput = 1 / ( ztemp * ztemp * ztemp ) elseif ( @initialization == 49 ) zinput = atan( 1 / ztemp ) elseif ( @initialization == 50 ) zinput = acos( 1 / ztemp ) elseif ( @initialization == 51 ) zinput = asin( 1 / ztemp ) elseif ( @initialization == 52 ) zinput = tan( ztemp ) / ztemp elseif ( @initialization == 53 ) zinput = cotan( ztemp ) / ztemp elseif ( @initialization == 54 ) zinput = 1 / ( ztemp * cos( ztemp )) elseif ( @initialization == 55 ) zinput = 1 / ( ztemp * sin( ztemp )) elseif ( @initialization == 56 ) zinput = ztemp * sin( ztemp ) elseif ( @initialization == 57 ) zinput = ztemp * cos( ztemp ) elseif ( @initialization == 58 ) zinput = ztemp * tan( ztemp ) elseif ( @initialization == 59 ) zinput = ztemp * cotan( ztemp ) elseif ( @initialization == 60 ) zinput = ztemp/cos( ztemp ) elseif ( @initialization == 61 ) zinput = ztemp/sin( ztemp ) elseif ( @initialization == 62 ) zinput = sin( 1/ztemp ) elseif ( @initialization == 63 ) zinput = cos( 1/ztemp ) elseif ( @initialization == 64 ) zinput = tan( 1/ztemp ) elseif ( @initialization == 65 ) zinput = cotan( 1/ztemp ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/ztemp ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/ztemp ) elseif ( @initialization == 68 ) zinput = cotanh( ztemp ) elseif ( @initialization == 69 ) zinput = 1/cosh( ztemp ) elseif ( @initialization == 70 ) zinput = 1/sinh( ztemp ) elseif ( @initialization == 71 ) zinput = atanh( 1/ztemp ) elseif ( @initialization == 72 ) zinput = acosh( 1/ztemp ) elseif ( @initialization == 73 ) zinput = asinh( 1/ztemp ) elseif @initialization == 74 zinput = ztemp^@zpower elseif @initialization == 75 zinput = sinh(ztemp) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( ztemp ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(ztemp) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( ztemp ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(ztemp) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( ztemp ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/ztemp) elseif @initialization == 82 zinput = cosh(1/ztemp) elseif @initialization == 83 zinput = tanh(1/ztemp) elseif @initialization == 84 zinput = cotanh(1/ztemp) elseif @initialization == 85 zinput = 1/cosh(1/ztemp) elseif @initialization == 86 zinput = 1/sinh(1/ztemp) elseif @initialization == 87 zinput = sin( ztemp ) * tan(ztemp) elseif @initialization == 88 zinput = sinh(ztemp) * tanh(ztemp) elseif @initialization == 89 zinput = sinh(ztemp) * cosh(ztemp) elseif @initialization == 90 zinput = sinh(ztemp), ztemp2 = cosh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 91 zinput = sin(ztemp), ztemp2 = cos(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 92 zinput = 1/ztemp zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(ztemp) * cos(1/ztemp) elseif @initialization == 95 zinput = sin(ztemp) * sin(1/ztemp) elseif @initialization == 96 zinput = log(ztemp) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(ztemp) * sin(2*ztemp) elseif @initialization == 98 zinput = exp(2*ztemp) elseif @initialization == 99 zinput = exp(-2*ztemp) elseif @initialization == 100 zinput = 1/ztemp zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(ztemp) * cosh(1/ztemp) elseif @initialization == 103 zinput = sinh(ztemp) * sinh(1/ztemp) elseif @initialization == 104 zinput = sin(ztemp) * sinh(ztemp) elseif @initialization == 105 zinput = sin(ztemp) * cosh(ztemp) elseif @initialization == 106 zinput = sin(ztemp), ztemp2 = sinh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 107 zinput = sin(ztemp)*exp(ztemp) elseif @initialization == 108 zinput = cos(ztemp)*exp(ztemp) elseif @initialization == 109 zinput = sinh(ztemp)*exp(ztemp) elseif @initialization == 110 zinput = cosh(ztemp)*exp(ztemp) elseif @initialization == 111 zinput = sin(ztemp)*log(ztemp) elseif @initialization == 112 zinput = cos(ztemp)*log(ztemp) elseif @initialization == 113 zinput = sinh(ztemp)*log(ztemp) elseif @initialization == 114 zinput = cosh(ztemp)*log(ztemp) elseif @initialization == 115 zinput = exp(ztemp^2) elseif @initialization == 116 zinput = exp(1/(ztemp^2)) elseif @initialization == 117 zinput = abs(ztemp) elseif @initialization == 118 zinput = round(ztemp) elseif @initialization == 119 zinput = trunc(ztemp) elseif @initialization == 120 zinput = ceil(ztemp) elseif @initialization == 121 zinput = floor(ztemp) elseif @initialization == 122 zinput = ztemp/log(ztemp) elseif @initialization == 123 zinput = log(ztemp)/ztemp elseif @initialization == 124 zinput = exp(ztemp)/ztemp elseif @initialization == 125 zinput = exp(1/ztemp)/ztemp elseif @initialization == 126 zinput = exp(ztemp^2)/ztemp elseif @initialization == 127 zinput = exp(1/(ztemp^2))/ztemp elseif @initialization == 128 zinput = ztemp * exp(ztemp^2) elseif @initialization == 129 zinput = ztemp * exp(1/(ztemp^2)) elseif @initialization == 130 zinput = exp(-(ztemp^2)) elseif @initialization == 131 zinput = exp(-1/(ztemp^2)) elseif @initialization == 132 zinput = exp(-(ztemp^2))/ztemp elseif @initialization == 133 zinput = exp(-1/(ztemp^2))/ztemp elseif @initialization == 134 zinput = ztemp * exp(-(ztemp^2)) else ; @initialization == 135 zinput = ztemp * exp(-1/(ztemp^2)) endif ; initialization if @absolutez2 zinput = abs(zinput) endif ; @absolutez2 if @absoluter4 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter4 if @absolutei4 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei4 if @initperturb zinput = @initblend * zinput + initbcomp * ztemp endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 ; Finished front end modulating initializations ; Find coordinates and angle of point on trap graph closest to zinput (i.e., modified z1) ; First, center zinput on the trap center zinput = zinput - center ; Compute rotated zinput if rotation != 0.0 zinput = zinput * exp(flip(rotation)) endif ; rotation if @absolutez3 zinput = abs(zinput) endif ; @absolutez3 if @absoluter5 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter5 if @absolutei5 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei5 ; Now find angle of 'rotated' zinput tempangle = atan2( zinput ) if ( tempangle < 0 ) tempangle = tempangle + twopi ; 0 <= tempangle <= two pi endif ; tempangle ; Spread out and offset angle of zinput, if desired ; Note that, with the offset, we can no longer count on non-negative angles if @offsetangle tempangle = tempangle + @offsetfactor endif ; @offsetangle if @sprangle tempangle = tempangle*@sprangfactor endif ; @sprangle if @screwmode != 0 if @absolutelyscrewy ztemp = abs(zinput) else ztemp = zinput endif ; @absolutelyscrewy if @screwmode == 1 tempangle = tempangle*real(ztemp) elseif @screwmode == 2 tempangle = tempangle*imag(ztemp) elseif @screwmode == 3 tempangle = real(ztemp) elseif @screwmode == 4 tempangle = imag(ztemp) elseif @screwmode == 5 tempangle = tempangle + real(ztemp) elseif @screwmode == 6 tempangle = tempangle + imag(ztemp) elseif @screwmode == 7 tempangle = real(ztemp) - tempangle elseif @screwmode == 8 tempangle = imag(ztemp) - tempangle elseif @screwmode == 9 tempangle = tempangle*real(ztemp)*imag(ztemp) endif ; @screwmode endif ; @screwmode ; Big trap loop begins here!!! index = 0 ; this var tracks how many times through each of the two subloops (func & osc set loops) index2 = 0 ; this var is a pointer into the various func/osc/result arrays while index < numberoffuncs if absoluteangle[index2] tempangle2 = abs(tempangle) else tempangle2 = tempangle endif ; absoluteangle[] ; Find trap function values ; Broken into ranges to keep the number of comparisons manageable regardless of ; the value of trapfunc[] if trapfunc[index2] < 22 if ( trapfunc[index2] == 0 ) ; nothing but optional scaling result[index2] = tempangle2 elseif ( trapfunc[index2] == 1 ) ; reciprocal result[index2] = 1/tempangle2 elseif ( trapfunc[index2] == 2 ) ;square result[index2] = tempangle2*tempangle2 elseif ( trapfunc[index2] == 3 ) ; recip sqr result[index2] = 1 / (tempangle2*tempangle2) elseif ( trapfunc[index2] == 4 ) ; log result[index2] = log(const[index2,0]*tempangle2) elseif ( trapfunc[index2] == 5 ) ; e^angle result[index2] = exp(const[index2,0]* tempangle2) elseif ( trapfunc[index2] == 6 ) ; angle^angle result[index2] = tempangle2^(const[index2,0]*tempangle2) elseif ( trapfunc[index2] == 7 ) ; sine result[index2] = sin( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 8 ) ; cosine result[index2] = cos( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 9 ) ; tangent result[index2] = tan( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 10 ) ; arcsine result[index2] = asin( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 11 ) ; arccosine result[index2] = acos( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 12 ) ; arctangent result[index2] = atan( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 13 ) ; hyperbolic sine result[index2] = sinh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 14 ) ; hyperbolic cosine result[index2] = cosh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 15 ) ; hyp tangent result[index2] = tanh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 16 ) ; hyperbolic arcsin result[index2] = asinh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 17 ) ; arccosh result[index2] = acosh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 18 ) ; arctanh result[index2] = atanh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 19 ) ; log(recip angle) result[index2] = log( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 20 ) ; log(log) result[index2] = log( const[index2,1] * log( const[index2,0]*tempangle2 )) else ; ( trapfunc[index2] == 21 ) ; e^(recip angle) result[index2] = exp( const[index2,0]/tempangle2 ) endif ; trapfunc[index2]<22 elseif trapfunc[index2] < 45 if ( trapfunc[index2] == 22 ) ; sine ^ power result[index2] = sin( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif ( trapfunc[index2] == 23 ) ; cos ^ power result[index2] = cos( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif ( trapfunc[index2] == 24 ) ; tan ^ power result[index2] = tan( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif ( trapfunc[index2] == 25 ) ; cotangent result[index2] = cotan( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 26 ) ; secant result[index2] = 1/cos( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 27 ) ; cosecant result[index2] = 1/sin( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 28 ) ;cotan ^ power result[index2] = cotan( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif ( trapfunc[index2] == 29 ) ; sec ^ power result[index2] = (1/cos( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif ( trapfunc[index2] == 30 ) ; cosec ^ power result[index2] = (1/sin( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif ( trapfunc[index2] == 31 ) ; a^a^a ftemp = tempangle2^(const[index2,0]*tempangle2) result[index2] = tempangle2^(const[index2,1]*ftemp) elseif ( trapfunc[index2] == 32 ) ; recip a^a^a ftemp = tempangle2^(const[index2,0]*tempangle2) result[index2] = 1/( tempangle2^(const[index2,1]*ftemp) ) elseif ( trapfunc[index2] == 33 ) ; recip log result[index2] = 1/log( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 34 ) ; angle*log(angle) result[index2] = tempangle2 * log( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 35 ) ; sin(a)/a result[index2] = sin( const[index2,0]*tempangle2 ) / tempangle2 elseif ( trapfunc[index2] == 36 ) ; cos(a)/a result[index2] = cos( const[index2,0]*tempangle2 ) / tempangle2 elseif ( trapfunc[index2] == 37 ) ; sin*cos result[index2] = sin( const[index2,0]*tempangle2 ) * cos( const[index2,1]*tempangle2 ) elseif ( trapfunc[index2] == 38 ) ; sin( a^n ) result[index2] = sin(const[index2,1]*(tempangle2^const[index2,0])) elseif ( trapfunc[index2] == 39 ) ; a* e^a result[index2] = tempangle2 * exp( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 40 ) ; a* e^(recip a) result[index2] = tempangle2 * exp( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 41 ) ; arccotan result[index2] = atan( const[index2,0] / tempangle2 ) elseif ( trapfunc[index2] == 42 ) ; arcsecant result[index2] = acos( const[index2,0] / tempangle2 ) elseif ( trapfunc[index2] == 43 ) ; arccosecant result[index2] = asin( const[index2,0] / tempangle2 ) else ; ( trapfunc[index2] == 44 ) ; tan(a)/a result[index2] = tan( const[index2,0]*tempangle2 ) /tempangle2 endif ; trapfunc[index2]<45 elseif trapfunc[index2] < 67 if ( trapfunc[index2] == 45 ) ; cotan(a)/a result[index2] = cotan( const[index2,0]*tempangle2 ) /tempangle2 elseif ( trapfunc[index2] == 46 ) ; secant(a)/a result[index2] = 1 / ( tempangle2 * cos( const[index2,0]*tempangle2 )) elseif ( trapfunc[index2] == 47 ) ; cosecant(a)/a result[index2] = 1 / ( tempangle2 * sin( const[index2,0]*tempangle2 )) elseif ( trapfunc[index2] == 48 ) ; a*sin(a) result[index2] = tempangle2 * sin( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 49 ) ; a*cos(a) result[index2] = tempangle2 * cos( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 50 ) ; a*tan(a) result[index2] = tempangle2 * tan( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 51 ) ; a*cotan(a) result[index2] = tempangle2 * cotan( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 52 ) ; a*secant(a) result[index2] = tempangle2/cos( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 53 ) ; a*cosecant(a) result[index2] = tempangle2/sin( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 54 ) ; sin(recip a) result[index2] = sin( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 55 ) ; cos(recip a) result[index2] = cos( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 56 ) ; tan(recip a) result[index2] = tan( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 57 ) ; cotan(recip a) result[index2] = cotan( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 58 ) ; sec(recip a) result[index2] = 1/cos( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 59 ) ; cosec(recip a) result[index2] = 1/sin( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 60 ) ; hyp cotan(a) result[index2] = cotanh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 61 ) ; hyp sec result[index2] = 1/cosh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 62 ) ; hyp csc result[index2] = 1/sinh( const[index2,0]*tempangle2 ) elseif ( trapfunc[index2] == 63 ) ; hyp arccot result[index2] = atanh( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 64 ) ; hyp arcsec result[index2] = acosh( const[index2,0]/tempangle2 ) elseif ( trapfunc[index2] == 65 ) ; hyp arccosec result[index2] = asinh( const[index2,0]/tempangle2 ) else ; trapfunc[index2] == 66 ; a^n result[index2] = tempangle2^const[index2,0] endif ; trapfunc[index2]<67 elseif trapfunc[index2] < 90 if trapfunc[index2] == 67 ; sinh ^ power result[index2] = sinh(const[index2,0]*tempangle2) ^ const[index2,1] elseif trapfunc[index2] == 68 ; cosh ^ power result[index2] = cosh( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 69 ; tanh ^ power result[index2] = tanh(const[index2,0]*tempangle2) ^ const[index2,1] elseif trapfunc[index2] == 70 ; cotanh ^ power result[index2] = cotanh( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 71 ; sech ^ power result[index2] = (1/cosh(const[index2,0]*tempangle2)) ^ const[index2,1] elseif trapfunc[index2] == 72 ; csch ^ power result[index2] = (1 / sinh( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif trapfunc[index2] == 73 ; sinh (recip a) result[index2] = sinh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 74 ; cosh(1/a) result[index2] = cosh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 75 ; tanh(1/a) result[index2] = tanh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 76 ; coth(1/a) result[index2] = cotanh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 77 ; sech(1/a) result[index2] = 1/cosh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 78 ; csch(1/a) result[index2] = 1/sinh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 79 ; sin * tan result[index2] = sin( const[index2,0]*tempangle2 ) * tan(const[index2,1]*tempangle2) elseif trapfunc[index2] == 80 ; sinh * tanh result[index2] = sinh(const[index2,0]*tempangle2) * tanh(const[index2,1]*tempangle2) elseif trapfunc[index2] == 81 ; sinh * cosh result[index2] = sinh(const[index2,0]*tempangle2) * cosh(const[index2,1]*tempangle2) elseif trapfunc[index2] == 82 ; sinh^n * cosh^n ftemp2 = sinh(const[index2,0]*tempangle2), ftemp = cosh(const[index2,1]*tempangle2) result[index2] = (ftemp2*ftemp)^const[index2,2] elseif trapfunc[index2] == 83 ; sin^n * cos^n ftemp2 = sin(const[index2,0]*tempangle2), ftemp = cos(const[index2,1]*tempangle2) result[index2] = (ftemp2*ftemp)^const[index2,2] elseif trapfunc[index2] == 84 ; sin(1/a) * cos(1/a) ftemp = 1/tempangle2 result[index2] = sin(const[index2,0]*ftemp)*cos(const[index2,1]*ftemp) elseif trapfunc[index2] == 85 ; sin(1/a) ^ power result[index2] = sin( const[index2,0]/tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 86 ; sin(a) * cos(1/a) result[index2] = sin(const[index2,0]*tempangle2) * cos(const[index2,1]/tempangle2) elseif trapfunc[index2] == 87 ; sin(a) * sin(1/a) result[index2] = sin(const[index2,0]*tempangle2) * sin(const[index2,1]/tempangle2) elseif trapfunc[index2] == 88 ; log ^ power result[index2] = log(const[index2,0]*tempangle2) ^ const[index2,1] else ; trapfunc[index2] == 89 ; sine * sine result[index2] = sin(const[index2,0]*tempangle2) * sin(const[index2,1]*tempangle2) endif ; trapfunc[index2]<90 elseif trapfunc[index2] < 112 if trapfunc[index2] == 90 ; sinh(recip a)*cosh(recip a) ftemp = 1/tempangle2 result[index2] = sinh(const[index2,0]*ftemp)*cosh(const[index2,1]*ftemp) elseif trapfunc[index2] == 91 ; sinh(recip a) ^ power result[index2] = sinh( const[index2,0]/tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 92 ; sinh(a) * cosh( recip a) result[index2] = sinh(const[index2,0]*tempangle2) * cosh(const[index2,1]/tempangle2) elseif trapfunc[index2] == 93 ; sinh(a) * sinh(recip a) result[index2] = sinh(const[index2,0]*tempangle2) * sinh(const[index2,1]/tempangle2) elseif trapfunc[index2] == 94 ; sin * sinh result[index2] = sin(const[index2,0]*tempangle2) * sinh(const[index2,1]*tempangle2) elseif trapfunc[index2] == 95 ; sin * cosh result[index2] = sin(const[index2,0]*tempangle2) * cosh(const[index2,1]*tempangle2) elseif trapfunc[index2] == 96 ; sin^n * sinh^n ftemp2 = sin(const[index2,0]*tempangle2), ftemp = sinh(const[index2,1]*tempangle2) result[index2] = (ftemp2*ftemp)^const[index2,2] elseif trapfunc[index2] == 97 ; sin * exp result[index2] = sin(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 98 ; cos * exp result[index2] = cos(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 99 ; sinh * exp result[index2] = sinh(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 100 ; cosh * exp result[index2] = cosh(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 101 ; sin * log result[index2] = sin(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 102 ; cos * log result[index2] = cos(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 103 ; sinh * log result[index2] = sinh(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 104 ; cosh * log result[index2] = cosh(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 105 ; e^(a^power) result[index2] = exp(const[index2,0]*(tempangle2^const[index2,1])) elseif trapfunc[index2] == 106 ; e^(1/(a^power)) result[index2] = exp(const[index2,0]/(tempangle2^(const[index2,1]))) elseif trapfunc[index2] == 107 ; absolute value result[index2] = abs(tempangle2) elseif trapfunc[index2] == 108 ; rounding result[index2] = round(const[index2,0]*tempangle2) elseif trapfunc[index2] == 109 ; truncation result[index2] = trunc(const[index2,0]*tempangle2) elseif trapfunc[index2] == 110 ; ceiling result[index2] = ceil(const[index2,0]*tempangle2) else ; trapfunc[index2] == 111 ; floor result[index2] = floor(const[index2,0]*tempangle2) endif ; trapfunc[index2]<112 elseif trapfunc[index2] < 135 if trapfunc[index2] == 112 ; bifolium ftemp = cos(const[index2,1]*tempangle2) result[index2] = sin(const[index2,0]*tempangle2)*ftemp*ftemp elseif trapfunc[index2] == 113 ; cardioid result[index2] = cos(const[index2,0]*tempangle2) + const[index2,1] elseif trapfunc[index2] == 114 ; circle result[index2] = const[index2,0] elseif trapfunc[index2] == 115 ; cissoid of Diocles result[index2] = sin(const[index2,0]*tempangle2)*tan(const[index2,1]*tempangle2) elseif trapfunc[index2] == 116 ; cochleoid result[index2] = sin(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 117 ; companion to the cycloid (x-coordinate) result[index2] = const[index2,0]*tempangle2 elseif trapfunc[index2] == 118 ; companion to the cycloid (y-coordinate) result[index2] = const[index2,1]-cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 119 ; conchoid of Nicomedes result[index2] = 1/sin(const[index2,0]*tempangle2) + const[index2,1] elseif trapfunc[index2] == 120 ; cycloid 1 (x-coord) result[index2] = const[index2,1]*tempangle2 - sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 121 ; cycloid 1 (y-coord) result[index2] = const[index2,1] - cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 122 ; cycloid 2 (x-coord) result[index2] = const[index2,1]*tempangle2 + sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 123 ; cycloid 2 (y-coord) result[index2] = const[index2,1] - cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 124 ; curtate cycloid (x-coord) result[index2] = const[index2,1]*tempangle2 - const[index2,2]*sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 125 ; curtate cycloid (y-coord) result[index2] = const[index2,1] - const[index2,2]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 126 ; ellipse (x-coord) result[index2] = const[index2,1]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 127 ; ellipse (y-coord) result[index2] = const[index2,1]*sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 128 ; epicycloid (x-coord) ftemp = const[index2,0]+const[index2,1] ftemp2 = ftemp/const[index2,1] result[index2] = ftemp*cos(const[index2,2]*tempangle2) - const[index2,1]*cos(ftemp2*tempangle2) elseif trapfunc[index2] == 129 ; epicycloid (y-coord) ftemp = const[index2,0]+const[index2,1] ftemp2 = ftemp/const[index2,1] result[index2] = ftemp*sin(const[index2,2]*tempangle2) - const[index2,1]*sin(ftemp2*tempangle2) elseif trapfunc[index2] == 130 ; evolute of ellipse (x-coord) ftemp = cos(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp*ftemp elseif trapfunc[index2] == 131 ; evolute of ellipse (y-coord) ftemp = sin(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp*ftemp elseif trapfunc[index2] == 132 ; folium of Descartes ftemp = sin(const[index2,0]*tempangle2) ftemp2 = cos(const[index2,1]*tempangle2) result[index2] = sin(const[index2,2]*tempangle2)*cos(tempangle2)/(ftemp*ftemp*ftemp+ftemp2*ftemp2*ftemp2) elseif trapfunc[index2] == 133 ; hyperbola (x-coord) result[index2] = const[index2,1]/cos(const[index2,0]*tempangle2) else ; trapfunc[index2] == 134 ; hyperbola (y-coord) result[index2] = const[index2,1]*tan(const[index2,0]*tempangle2) endif ; trapfunc[index2]<135 elseif trapfunc[index2] < 157 if trapfunc[index2] == 135 ; involute of circle (x-coord) result[index2] = const[index2,2]*cos(const[index2,0]*tempangle2) + tempangle2*sin(const[index2,1]*tempangle2) elseif trapfunc[index2] == 136 ; involute of circle (y-coord) result[index2] = const[index2,2]*sin(const[index2,0]*tempangle2) - tempangle2*cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 137 ; lemniscate of Bernoulli result[index2] = sqrt(cos(2*const[index2,0]*tempangle2)) elseif trapfunc[index2] == 138 ; limacon of Pascal result[index2] = const[index2,1] + const[index2,2]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 139 ; lituus result[index2] = 1/sqrt(const[index2,0]*tempangle2) elseif trapfunc[index2] == 140 ; nephroid (x-coord) result[index2] = 3*const[index2,2]*cos(const[index2,0]*tempangle2) - cos(3*const[index2,1]*tempangle2) elseif trapfunc[index2] == 141 ; nephroid (y-coord) result[index2] = 3*const[index2,2]*sin(const[index2,0]*tempangle2) - sin(3*const[index2,1]*tempangle2) elseif trapfunc[index2] == 142 ; parabola result[index2] = 1/(const[index2,1] - const[index2,2]*cos(const[index2,0]*tempangle2)) elseif trapfunc[index2] == 143 ; rose result[index2] = sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 144 ; semicubical parabola ftemp = tan(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 145 ; serpentine (x-coord) result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 146 ; serpentine (y-coord) result[index2] = const[index2,2]*sin(const[index2,0]*tempangle2)*cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 147 ; spiral of Archimedes result[index2] = const[index2,0]*tempangle2 elseif trapfunc[index2] == 148 ; hyperbolic spiral result[index2] = const[index2,0]/tempangle2 elseif trapfunc[index2] == 149 ; logarithmic spiral result[index2] = exp(const[index2,0]*tempangle2) elseif trapfunc[index2] == 150 ; parabolic spiral result[index2] = sqrt(const[index2,0]*const[index2,1]*tempangle2) + const[index2,0] elseif trapfunc[index2] == 151 ; strophoid result[index2] = cos(2*const[index2,0]*tempangle2)/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 152 ; tractrix (x-coord) result[index2] = const[index2,1]*tempangle2 - const[index2,0]*tanh(tempangle2/const[index2,0]) elseif trapfunc[index2] == 153 ; tractrix (y-coord) result[index2] = const[index2,0]/cosh(tempangle2/const[index2,0]) elseif trapfunc[index2] == 154 ; witch of Agnesi (x-coord) result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 155 ; witch of Agnesi (y-coord) ftemp = sin(const[index2,0]*tempangle2) result[index2] = const[index2,1]*ftemp*ftemp else ; trapfunc[index2] == 156 ; cubical parabola ftemp = 1/cos(const[index2,0]*tempangle2) result[index2] = sqrt(ftemp*ftemp*tan(const[index2,1]*tempangle2)) endif ; trapfunc[index2]<157 else ; trapfunc[index2] <= 178 if trapfunc[index2] == 157 ; lissajous (x-coord) result[index2] = sin(const[index2,0]*tempangle2 + const[index2,1]) elseif trapfunc[index2] == 158 ; lissajous (y-coord) result[index2] = cos(const[index2,0]*tempangle2 + const[index2,1]) elseif trapfunc[index2] == 159 ; hypocycloid (x-coord) ftemp = const[index2,0]-const[index2,1] ftemp2 = const[index2,0]/const[index2,1] - const[index2,2] result[index2] = ftemp*cos(tempangle2) + const[index2,1]*cos(ftemp2*tempangle2) elseif trapfunc[index2] == 160 ; hypocycloid (y-coord) ftemp = const[index2,0]-const[index2,1] ftemp2 = const[index2,0]/const[index2,1] - const[index2,2] result[index2] = ftemp*sin(tempangle2) - const[index2,1]*sin(ftemp2*tempangle2) elseif trapfunc[index2] == 161 ; circle 2 result[index2] = const[index2,1]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 162 ; conchoid 2 result[index2] = const[index2,2] + const[index2,1]/cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 163 ; conchoid of De Sluze result[index2] = cos(const[index2,0]*tempangle2)/const[index2,2] + const[index2,2]/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 164 ; ellipse 2 ftemp = abs(tan(tempangle2)) result[index2] = const[index2,0]*const[index2,1]*sqrt(1+ftemp*ftemp)/(const[index2,1]^const[index2,2] + \ (const[index2,0]^const[index2,2] * ftemp^const[index2,2]))^(1/const[index2,2]) elseif trapfunc[index2] == 165 ; folium of Descartes 2 (x-coord) result[index2] = 3*const[index2,0]*tempangle2/(const[index2,1]+const[index2,2]*tempangle2*tempangle2*tempangle2) elseif trapfunc[index2] == 166 ; folium of Descartes 2 (y-coord) result[index2] = 3*const[index2,0]*tempangle2*tempangle2/(const[index2,1]+const[index2,2]* \ tempangle2*tempangle2*tempangle2) elseif trapfunc[index2] == 167 ; kampyle of Eudoxus ftemp = cos(const[index2,0]*tempangle2) result[index2] = const[index2,1]/ftemp*ftemp elseif trapfunc[index2] == 168 ; kappa curve result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 169 ; wavy circle (x) ftemp = const[index2,2] + 0.1 * const[index2,1]*sin(20*const[index2,0]*tempangle2) result[index2] = ftemp * cos(tempangle2) elseif trapfunc[index2] == 170 ; wavy circle (y) ftemp = const[index2,2] + 0.1 * const[index2,1]*sin(20*const[index2,0]*tempangle2) result[index2] = ftemp * sin(tempangle2) elseif trapfunc[index2] == 171 ; a/log(a) result[index2] = tempangle2/log(const[index2,0]*tempangle2) elseif trapfunc[index2] == 172 ; log(a)/a result[index2] = log(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 173 ; e^a / a result[index2] = exp(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 174 ; e^(1/a) / a result[index2] = exp(const[index2,0]/tempangle2)/tempangle2 elseif trapfunc[index2] == 175 ; e^(a^n) / a result[index2] = exp(const[index2,0]*(tempangle2^const[index2,1]))/tempangle2 elseif trapfunc[index2] == 176 ; e^(1/(a^n)) / a result[index2] = exp(const[index2,0]/(tempangle2^const[index2,1]))/tempangle2 elseif trapfunc[index2] == 177 ; a*e^(a^n) result[index2] = tempangle2 * exp(const[index2,0]*(tempangle2^const[index2,1])) else ; trapfunc[index2] == 178 ; a*e^(1/(a^n)) result[index2] = tempangle2 * exp(const[index2,0]/(tempangle2^const[index2,1])) endif ; trapfunc[index2]<=178 endif ; trapfunc[index2] if absoluteresult[index2] result[index2] = abs(result[index2]) endif ; absoluteresult[] ; Perform any appropriate scaling (including overall)and offsetting result[index2] = scale*(coeff[index2,0,0] * result[index2] + offset[index2]) index = index + 1 index2 = index2 + 1 endwhile ; index index = 0 ; reset index for oscillator loop, but not index2 ; Find trap oscillator values while index < numberofoscsets if absoluteangle[index2] tempangle2 = abs(tempangle) else tempangle2 = tempangle endif ; absoluteangle[] ; Calculate the first oscillator of each set if oscselector[index2,0] result[index2] = coeff[index2,0,0]*sin(coeff[index2,0,1]*tempangle2) else result[index2] = coeff[index2,0,0]*cos(coeff[index2,0,1]*tempangle2) endif ; oscselector ; Now add any other oscillators of that set that have a non-zero amplitude index3 = 1 while index3 < 4 if coeff[index2, index3, 0] != 0.0 if oscselector[index2,index3] result[index2] = result[index2] + coeff[index2,index3,0]*sin(coeff[index2,index3,1]*tempangle2) else result[index2] = result[index2] + coeff[index2,index3,0]*cos(coeff[index2,index3,1]*tempangle2) endif ; oscselector else index3 = 4 ; stop computing oscillators if we find one in a set that is set to zero endif ; coeff[] index3 = index3 + 1 endwhile ; index3 if absoluteresult[index2] result[index2] = abs(result[index2]) endif ; absoluteresult[] ; Perform offset and overall scaling result[index2] = scale*(result[index2] + offset[index2]) index = index + 1 index2 = index2 + 1 endwhile ; index ; Use result to calculate the trap point(s) that was(were) identified if @coordtype == "Polar" traptemp = result[0] * exp(flip(tempangle)) if twotraps traptemp2 = result[1] * exp(flip(tempangle)) endif ; twotraps elseif @coordtype == "Parametric" traptemp = result[0] + flip(result[1]) if twotraps traptemp2 = result[2] + flip(result[3]) endif ; twotraps else ; @coordtype == "Mixed" if @traptype == "mixed 2" traptemp = result[0] + flip(result[1]) traptemp2 = result[2] * exp(flip(tempangle)) else traptemp = result[0] * exp(flip(tempangle)) traptemp2 = result[1] + flip(result[2]) endif ; @traptype endif ; @coordtype ; If more than one trap was employed, combine the points appropriately, as specified if twotraps if @twotrapsblend traptemp = @trap1weight*traptemp traptemp2 = @trap2weight*traptemp2 endif ; @trapblend if @trapcombo == "average" tempc = 0.5 * (traptemp + traptemp2) elseif @trapcombo == "sum" tempc = traptemp + traptemp2 elseif @trapcombo == "difference" tempc = traptemp - traptemp2 elseif @trapcombo == "product" tempc = traptemp * traptemp2 elseif @trapcombo == "geom. mean" tempc = sqrt(traptemp * traptemp2) elseif @trapcombo == "difference 2" tempc = traptemp2 - traptemp elseif @trapcombo == "quotient" tempc = traptemp / traptemp2 elseif @trapcombo == "quotient 2" tempc = traptemp2 / traptemp elseif @trapcombo == "exponential 1" tempc = traptemp ^ traptemp2 elseif @trapcombo == "exponential 2" tempc = traptemp2 ^ traptemp elseif @trapcombo == "splice 1" tempc = real(traptemp) + flip(imag(traptemp2)) elseif @trapcombo == "splice 2" tempc = real(traptemp2) + flip(imag(traptemp)) elseif @trapcombo == "product 2" tempc = real(traptemp)*real(traptemp2) + flip(imag(traptemp)*imag(traptemp2)) elseif @trapcombo == "quotient 3" tempc = real(traptemp)/real(traptemp2) + flip(imag(traptemp)/imag(traptemp2)) elseif @trapcombo == "splice 3" tempc = real(traptemp)*imag(traptemp) + flip(real(traptemp2)*imag(traptemp2)) elseif @trapcombo == "splice 4" tempc = real(traptemp)*imag(traptemp2) + flip(real(traptemp2)*imag(traptemp)) elseif @trapcombo == "splice 5" tempc = real(traptemp2)*imag(traptemp2) + flip(real(traptemp)*imag(traptemp)) elseif @trapcombo == "splice 6" tempc = real(traptemp2)*imag(traptemp) + flip(real(traptemp)*imag(traptemp2)) endif ; @trapcombo else tempc = traptemp endif ; twotraps if @absolutet tempc = abs(tempc) endif ; @absolutet if @absoluter6 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter6 if @absolutei6 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei6 ; Temporarily save untransmuted trap value for possible perturbation traptemp = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 ztemp = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 91 ztemp = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 ztemp = sinh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) elseif @transmogrify == 114 tempc = cosh(tempc)*log(tempc) elseif @transmogrify == 115 tempc = exp(tempc^2) elseif @transmogrify == 116 tempc = exp(1/(tempc^2)) elseif @transmogrify == 117 tempc = abs(tempc) elseif @transmogrify == 118 tempc = round(tempc) elseif @transmogrify == 119 tempc = trunc(tempc) elseif @transmogrify == 120 tempc = ceil(tempc) elseif @transmogrify == 121 tempc = floor(tempc) elseif @transmogrify == 122 tempc = tempc/log(tempc) elseif @transmogrify == 123 tempc = log(tempc)/tempc elseif @transmogrify == 124 tempc = exp(tempc)/tempc elseif @transmogrify == 125 tempc = exp(1/tempc)/tempc elseif @transmogrify == 126 tempc = exp(tempc^2)/tempc elseif @transmogrify == 127 tempc = exp(1/(tempc^2))/tempc elseif @transmogrify == 128 tempc = tempc * exp(tempc^2) elseif @transmogrify == 129 tempc = tempc * exp(1/(tempc^2)) elseif @transmogrify == 130 tempc = exp(-(tempc^2)) elseif @transmogrify == 131 tempc = exp(-1/(tempc^2)) elseif @transmogrify == 132 tempc = exp(-(tempc^2))/tempc elseif @transmogrify == 133 tempc = exp(-1/(tempc^2))/tempc elseif @transmogrify == 134 tempc = tempc * exp(-(tempc^2)) else ; @transmogrify == 135 tempc = tempc * exp(-1/(tempc^2)) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * traptemp endif ; @trapperturb ; initialize back end real, back end imag, if desired ftemp = @rbscale * real(tempc) if ( @realback == 0 ) tempx = ftemp elseif ( @realback == 1 ) tempx = 1/ftemp elseif ( @realback == 2 ) tempx = ftemp * ftemp elseif ( @realback == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realback == 4 ) tempx = log(ftemp) elseif ( @realback == 5 ) tempx = exp( ftemp) elseif ( @realback == 6 ) tempx = ftemp^ftemp elseif ( @realback == 7 ) tempx = sin( ftemp ) elseif ( @realback == 8 ) tempx = cos( ftemp ) elseif ( @realback == 9 ) tempx = tan( ftemp ) elseif ( @realback == 10 ) tempx = asin( ftemp ) elseif ( @realback == 11 ) tempx = acos( ftemp ) elseif ( @realback == 12 ) tempx = atan( ftemp ) elseif ( @realback == 13 ) tempx = sinh( ftemp ) elseif ( @realback == 14 ) tempx = cosh( ftemp ) elseif ( @realback == 15 ) tempx = tanh( ftemp ) elseif ( @realback == 16 ) tempx = asinh( ftemp ) elseif ( @realback == 17 ) tempx = acosh( ftemp ) elseif ( @realback == 18 ) tempx = atanh( ftemp ) elseif ( @realback == 19 ) tempx = log( 1/ftemp ) elseif ( @realback == 20 ) tempx = log( log( ftemp )) elseif ( @realback == 21 ) tempx = exp( -ftemp ) elseif ( @realback == 22 ) tempx = exp( 1/ftemp ) elseif ( @realback == 23 ) tempx = ftemp^(-ftemp) elseif ( @realback == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( ftemp ) elseif ( @realback == 28 ) tempx = 1/cos( ftemp ) elseif ( @realback == 29 ) tempx = 1/sin( ftemp ) elseif ( @realback == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realback == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realback == 35 ) tempx = log(-ftemp) elseif ( @realback == 36 ) tempx = 1/log( ftemp ) elseif ( @realback == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realback == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realback == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realback == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realback == 41 ) tempx = sin( ftemp^2 ) elseif ( @realback == 42 ) tempx = exp( -1/ftemp ) elseif ( @realback == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realback == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realback == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realback == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realback == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realback == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realback == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realback == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realback == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realback == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realback == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realback == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realback == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realback == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realback == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realback == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realback == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realback == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realback == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realback == 62 ) tempx = sin( 1/ftemp ) elseif ( @realback == 63 ) tempx = cos( 1/ftemp ) elseif ( @realback == 64 ) tempx = tan( 1/ftemp ) elseif ( @realback == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realback == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realback == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realback == 68 ) tempx = cotanh( ftemp ) elseif ( @realback == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realback == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realback == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realback == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realback == 73 ) tempx = asinh( 1/ftemp ) elseif @realback == 74 tempx = ftemp^@rbpower elseif @realback == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/ftemp) elseif @realback == 82 tempx = cosh(1/ftemp) elseif @realback == 83 tempx = tanh(1/ftemp) elseif @realback == 84 tempx = cotanh(1/ftemp) elseif @realback == 85 tempx = 1/cosh(1/ftemp) elseif @realback == 86 tempx = 1/sinh(1/ftemp) elseif @realback == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realback == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realback == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realback == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realback == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realback == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realback == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realback == 98 tempx = exp(2*ftemp) elseif @realback == 99 tempx = exp(-2*ftemp) elseif @realback == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realback == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realback == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realback == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realback == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realback == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realback == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realback == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realback == 111 tempx = sin(ftemp)*log(ftemp) elseif @realback == 112 tempx = cos(ftemp)*log(ftemp) elseif @realback == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realback == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realback == 115 tempx = exp(ftemp^2) elseif @realback == 116 tempx = exp(1/(ftemp^2)) elseif @realback == 117 tempx = abs(ftemp) elseif @realback == 118 tempx = round(ftemp) elseif @realback == 119 tempx = trunc(ftemp) elseif @realback == 120 tempx = ceil(ftemp) elseif @realback == 121 tempx = floor(ftemp) elseif @realback == 122 tempx = ftemp/log(ftemp) elseif @realback == 123 tempx = log(ftemp)/ftemp elseif @realback == 124 tempx = exp(ftemp)/ftemp elseif @realback == 125 tempx = exp(1/ftemp)/ftemp elseif @realback == 126 tempx = exp(ftemp^2)/ftemp elseif @realback == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realback == 128 tempx = ftemp * exp(ftemp^2) elseif @realback == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realback == 130 tempx = exp(-(ftemp^2)) elseif @realback == 131 tempx = exp(-1/(ftemp^2)) elseif @realback == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realback == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realback == 134 tempx = ftemp * exp(-(ftemp^2)) else ; @realback == 135 tempx = ftemp * exp(-1/(ftemp^2)) endif ; realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb ftemp = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = ftemp elseif ( @imagback == 1 ) tempy = 1/ftemp elseif ( @imagback == 2 ) tempy = ftemp * ftemp elseif ( @imagback == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagback == 4 ) tempy = log(ftemp) elseif ( @imagback == 5 ) tempy = exp( ftemp) elseif ( @imagback == 6 ) tempy = ftemp^ftemp elseif ( @imagback == 7 ) tempy = sin( ftemp ) elseif ( @imagback == 8 ) tempy = cos( ftemp ) elseif ( @imagback == 9 ) tempy = tan( ftemp ) elseif ( @imagback == 10 ) tempy = asin( ftemp ) elseif ( @imagback == 11 ) tempy = acos( ftemp ) elseif ( @imagback == 12 ) tempy = atan( ftemp ) elseif ( @imagback == 13 ) tempy = sinh( ftemp ) elseif ( @imagback == 14 ) tempy = cosh( ftemp ) elseif ( @imagback == 15 ) tempy = tanh( ftemp ) elseif ( @imagback == 16 ) tempy = asinh( ftemp ) elseif ( @imagback == 17 ) tempy = acosh( ftemp ) elseif ( @imagback == 18 ) tempy = atanh( ftemp ) elseif ( @imagback == 19 ) tempy = log( 1/ftemp ) elseif ( @imagback == 20 ) tempy = log( log( ftemp )) elseif ( @imagback == 21 ) tempy = exp( -ftemp ) elseif ( @imagback == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagback == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagback == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( ftemp ) elseif ( @imagback == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagback == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagback == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagback == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagback == 35 ) tempy = log(-ftemp) elseif ( @imagback == 36 ) tempy = 1/log( ftemp ) elseif ( @imagback == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagback == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagback == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagback == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagback == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagback == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagback == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagback == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagback == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagback == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagback == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagback == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagback == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagback == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagback == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagback == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagback == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagback == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagback == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagback == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagback == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagback == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagback == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagback == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagback == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagback == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagback == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagback == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagback == 68 ) tempy = cotanh( ftemp ) elseif ( @imagback == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagback == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagback == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagback == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagback == 73 ) tempy = asinh( 1/ftemp ) elseif @imagback == 74 tempy = ftemp^@ibpower elseif @imagback == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/ftemp) elseif @imagback == 82 tempy = cosh(1/ftemp) elseif @imagback == 83 tempy = tanh(1/ftemp) elseif @imagback == 84 tempy = cotanh(1/ftemp) elseif @imagback == 85 tempy = 1/cosh(1/ftemp) elseif @imagback == 86 tempy = 1/sinh(1/ftemp) elseif @imagback == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagback == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagback == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagback == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagback == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagback == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagback == 98 tempy = exp(2*ftemp) elseif @imagback == 99 tempy = exp(-2*ftemp) elseif @imagback == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagback == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagback == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagback == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagback == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagback == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagback == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagback == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagback == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagback == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagback == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagback == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagback == 115 tempy = exp(ftemp^2) elseif @imagback == 116 tempy = exp(1/(ftemp^2)) elseif @imagback == 117 tempy = abs(ftemp) elseif @imagback == 118 tempy = round(ftemp) elseif @imagback == 119 tempy = trunc(ftemp) elseif @imagback == 120 tempy = ceil(ftemp) elseif @imagback == 121 tempy = floor(ftemp) elseif @imagback == 122 tempy = ftemp/log(ftemp) elseif @imagback == 123 tempy = log(ftemp)/ftemp elseif @imagback == 124 tempy = exp(ftemp)/ftemp elseif @imagback == 125 tempy = exp(1/ftemp)/ftemp elseif @imagback == 126 tempy = exp(ftemp^2)/ftemp elseif @imagback == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagback == 128 tempy = ftemp * exp(ftemp^2) elseif @imagback == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagback == 130 tempy = exp(-(ftemp^2)) elseif @imagback == 131 tempy = exp(-1/(ftemp^2)) elseif @imagback == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagback == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagback == 134 tempy = ftemp * exp(-(ftemp^2)) else ; @imagback == 135 tempy = ftemp * exp(-1/(ftemp^2)) endif ; imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) if @absolutet2 tempc = abs(tempc) endif ; @absolutet2 if @absoluter7 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter7 if @absolutei7 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei7 tangle = atan2( tempc ) if ( tangle < 0 ) tangle = tangle + twopi endif ; tangle if @twavy ftemp = cabs( tempc ) if @twavmode == 0 ; radial mode ftemp = ftemp + @twavamp * ftemp * sin( @twavfreq * tangle ) ; vary radius tempc = ftemp * exp( flip( tangle )) ; compute new tempc else ; tangential mode tangle = tangle + @twavamp * tangle * sin( @twavfreq * ftemp ) ; vary azimuth tempc = ftemp * exp( flip( tangle )) ; compute new tempc endif ; @twavmode endif ; @twavy if @varytraptype != 0 if @varytraptype == 1 ; flip tempc = flip(tempc) elseif @varytraptype == 2 ; conjugate tempc = conj(tempc) elseif @varytraptype == 3 ; flip conjugate tempc = flip(conj(tempc)) elseif @varytraptype == 4 ; negate tempc = -tempc elseif @varytraptype == 5 ; negate flip tempc = -flip(tempc) elseif @varytraptype == 6 ; negate conjugate tempc = -conj(tempc) elseif @varytraptype == 7 ; negate flip conj = conj flip tempc = -flip(conj(tempc)) endif ; @varytraptype endif ; @varytraptype ; if @pointmode ; compare subsequent values to first trap point on trap graph ; endif ; @pointmode if @modflavor ztemp = zinput else ztemp = z1 endif ; @modflavor if ( @trapmode == 0 ) ; distance test = cabs( ztemp - tempc ) elseif ( @trapmode == 1 ) ; magnitude test = cabs( ztemp ) elseif ( @trapmode == 2 ) ; real test = abs( real( ztemp )) elseif ( @trapmode == 3 ) ; imaginary test = abs( imag( ztemp )) elseif ( @trapmode == 4 ) ; trap magnitude test = cabs( tempc ) elseif ( @trapmode == 5 ) ; angle test = tempangle elseif ( @trapmode == 6 ) ; trap angle test = tangle elseif ( @trapmode == 7 ) ; raw angle test = zangle elseif ( @trapmode == 8 ) ; difference angle test = abs( tempangle - tangle) elseif ( @trapmode == 9 ) ; difference angle 2 test = abs( zangle - tangle ) elseif ( @trapmode == 10 ) ; trap real test = abs( real( tempc )) elseif ( @trapmode == 11 ) ; trap imaginary test = abs( imag( tempc )) elseif ( @trapmode == 12 ) ; sum test = cabs( ztemp + tempc ) elseif ( @trapmode == 13 ) ; product test = cabs( ztemp * tempc ) elseif ( @trapmode == 14 ) ; quotient 1 test = cabs( ztemp / tempc ) elseif ( @trapmode == 15 ) ; quotient 2 test = cabs( tempc / ztemp ) elseif ( @trapmode == 16 ) ; power 1 test = cabs( ztemp ^ tempc ) elseif ( @trapmode == 17 ) ; power 2 test = cabs( tempc ^ ztemp ) elseif ( @trapmode == 18 ) ; arithmetic mean test = cabs( (ztemp + tempc)/2 ) elseif ( @trapmode == 19 ) ; geometric mean test = cabs( sqrt( ztemp * tempc )) elseif ( @trapmode == 20 ) ; angle 2 test = atan2( ztemp - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 21 ) ; angle 3 test = atan2( ztemp + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 22 ) ; angle 4 test = atan2( ztemp * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 23 ) ; angle 5 test = atan2( ztemp / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 24 ) ; angle 6 test = atan2( tempc / ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 25 ) ; angle 7 test = atan2( ztemp ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 26 ) ; angle 8 test = atan2( tempc ^ ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 27 ) ; real 2 test = abs( real( ztemp - tempc )) elseif ( @trapmode == 28 ) ; real 3 test = abs( real( ztemp + tempc )) elseif ( @trapmode == 29 ) ; real 4 test = abs( real( ztemp * tempc )) elseif ( @trapmode == 30 ) ; real 5 test = abs( real( ztemp / tempc )) elseif ( @trapmode == 31 ) ; real 6 test = abs( real( tempc / ztemp )) elseif ( @trapmode == 32 ) ; real 7 test = abs( real( ztemp ^ tempc )) elseif ( @trapmode == 33 ) ; real 8 test = abs( real( tempc ^ ztemp )) elseif ( @trapmode == 34 ) ; imag 2 test = abs( imag( ztemp - tempc )) elseif ( @trapmode == 35 ) ; imag 3 test = abs( imag( ztemp + tempc )) elseif ( @trapmode == 36 ) ; imag 4 test = abs( imag( ztemp * tempc )) elseif ( @trapmode == 37 ) ; imag 5 test = abs( imag( ztemp / tempc )) elseif ( @trapmode == 38 ) ; imag 6 test = abs( imag( tempc / ztemp )) elseif ( @trapmode == 39 ) ; imag 7 test = abs( imag( ztemp ^ tempc )) elseif ( @trapmode == 40 ) ; imag 8 test = abs( imag( tempc ^ ztemp )) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < tvtrapped ) tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > tvtrapped ) tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < tvtrapped ) tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < tvtrapped ) tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > tvtrapped ) tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > tvtrapped ) tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * z1, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * z1, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 15 ) ; Nth z1 iterate itercount = itercount + 1 if itercount == @nthiterate tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; itercount elseif ( @whattotrap == 16 ) ; last z1 iterate; just store them all tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif @whattotrap > 16 ; maximum/minimum combos; need to find & store both ; trapped2 will hold he max, tvtrapped the min if test < tvtrapped ; is it a new min? tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = z1, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > tvtrapped2 ; is it a new max? tvtrapped2 = test, itrapped2 = iter, zatrapped2 = zangle, tatrapped2 = tangle ztrapped2 = z1, zitrapped2 = zinput, ttrapped2 = tempc, trapped = TRUE ziatrapped2 = tempangle endif ; test endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode trapped = FALSE ; reset flag for next iteration if vary ; vary chosen parameter if set ftemp = cabs(zinput) sign = real(zinput)/abs(real(zinput)) if @varyrotation rotation = rotation + rotationstep * rotation * ftemp * sign endif ; varyrotation if @varyscale scale = scale + scalestep * scale * ftemp * sign endif ; varyscale if @varythresh thresh = thresh + threshstep * thresh * ftemp * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * ftemp * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varycenter tempx = real(center) + centerstep * real(center) * ftemp * sign tempy = imag(center) + centerstep * imag(center) * ftemp * sign center = tempx + flip( tempy ) endif ; varycenter if @varyfBm fBmmamount = fBmmamount + fBmstep * fBmmamount * ftemp * sign endif ; varyfBm endif ; vary endif ; iter final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing tvtrapped = tvtrapped2, itrapped = itrapped2, zatrapped = zatrapped2, tatrapped = tatrapped2 ztrapped = ztrapped2, zitrapped = zitrapped2, ttrapped = ttrapped2, ziatrapped = ziatrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) tvtrapped = tvtrapped3, itrapped = itrapped3, zatrapped = zatrapped3, tatrapped = tatrapped3 ztrapped = ztrapped3, zitrapped = zitrapped3, ttrapped = ttrapped3, ziatrapped = ziatrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) tvtrapped = tvtrapped4, itrapped = itrapped4, zatrapped = zatrapped4, tatrapped = tatrapped4 ztrapped = ztrapped4, zitrapped = zitrapped4, ttrapped = ttrapped4, ziatrapped = ziatrapped4 elseif @whattotrap == 17 ; max-min tvtrapped = tvtrapped2-tvtrapped, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, tatrapped = tatrapped2-tatrapped ztrapped = ztrapped2-ztrapped, zitrapped = zitrapped2-zitrapped ttrapped = ttrapped2-ttrapped, ziatrapped = ziatrapped2-ziatrapped elseif @whattotrap == 18 ; max+min tvtrapped = tvtrapped2+tvtrapped, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, tatrapped = tatrapped2+tatrapped ztrapped = ztrapped2+ztrapped, zitrapped = zitrapped2+zitrapped ttrapped = ttrapped2+ttrapped, ziatrapped = ziatrapped2+ziatrapped elseif @whattotrap == 19 ; max*min tvtrapped = tvtrapped2*tvtrapped, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, tatrapped = tatrapped2*tatrapped ztrapped = ztrapped2*ztrapped, zitrapped = zitrapped2*zitrapped ttrapped = ttrapped2*ttrapped, ziatrapped = ziatrapped2*ziatrapped elseif @whattotrap == 20 ; max/min tvtrapped = tvtrapped2/tvtrapped, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, tatrapped = tatrapped2/tatrapped ztrapped = ztrapped2/ztrapped, zitrapped = zitrapped2/zitrapped ttrapped = ttrapped2/ttrapped, ziatrapped = ziatrapped2/ziatrapped elseif @whattotrap == 21 ; max^min tvtrapped = tvtrapped2^tvtrapped, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, tatrapped = tatrapped2^tatrapped ztrapped = ztrapped2^ztrapped, zitrapped = zitrapped2^zitrapped ttrapped = ttrapped2^ttrapped, ziatrapped = ziatrapped2^ziatrapped elseif @whattotrap == 22 ; min-max tvtrapped = tvtrapped-tvtrapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, tatrapped = tatrapped-tatrapped2 ztrapped = ztrapped-ztrapped2, zitrapped = zitrapped-zitrapped2 ttrapped = ttrapped-ttrapped2, ziatrapped = ziatrapped-ziatrapped2 elseif @whattotrap == 23 ; min/max tvtrapped = tvtrapped/tvtrapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, tatrapped = tatrapped/tatrapped2 ztrapped = ztrapped/ztrapped2, zitrapped = zitrapped/zitrapped2 ttrapped = ttrapped/ttrapped2, ziatrapped = ziatrapped/ziatrapped2 elseif @whattotrap == 24 ; min^max tvtrapped = tvtrapped^tvtrapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, tatrapped = tatrapped^tatrapped2 ztrapped = ztrapped^ztrapped2, zitrapped = zitrapped^zitrapped2 ttrapped = ttrapped^ttrapped2, ziatrapped = ziatrapped^ziatrapped2 elseif @whattotrap == 25 ; average: (max+min)/2 tvtrapped = (tvtrapped+tvtrapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, tatrapped = (tatrapped+tatrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zitrapped = (zitrapped+zitrapped2)/2 ttrapped = (ttrapped+ttrapped2)/2, ziatrapped = (ziatrapped2+ziatrapped)/2 endif ; whattotrap ; If enabled, mask this point if @maskA ; check the first mask if ( @maskwhatA == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatA == 1 ) ; mod distance (distance to zinput, not z1) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatA == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatA == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatA == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatA == 6 ) ; angle ftemp = zatrapped if @maskAmod ftemp = ftemp/twopi endif ; @maskAmod elseif ( @maskwhatA == 7 ) ; modulated angle ftemp = ziatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 8 ) ; real ftemp = real( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatA == 13 ) ; trap angle ftemp = tatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 14 ) ; trap real ftemp = real( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 18 ) ; sum if @maskAmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 19 ) ; product if @maskAmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 20 ) ; quotient 1 if @maskAmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 21 ) ; quotient 2 if @maskAmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 22 ) ; power 1 if @maskAmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 23 ) ; power 2 if @maskAmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 24 ) ; arithmetic mean if @maskAmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskAmod elseif ( @maskwhatA == 25 ) ; geometric mean if @maskAmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskAmod endif ; @maskwhatA if @maskifA == "falls above" if ftemp > @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls below" if ftemp < @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls between" if (ftemp > @maskAmin) && (ftemp < @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "falls outside" if (ftemp < @maskAmin) || (ftemp > @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "equals" if ftemp == @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "not equal" if ftemp != @maskAmin maskAset = TRUE endif ; ftemp endif ; @maskifA endif ; maskA if @maskB ; check the first mask if ( @maskwhatB == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatB == 1 ) ; mod distance (distance to zinput, not z1) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatB == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatB == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatB == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatB == 6 ) ; angle ftemp = zatrapped if @maskBmod ftemp = ftemp/twopi endif ; @maskBmod elseif ( @maskwhatB == 7 ) ; modulated angle ftemp = ziatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 8 ) ; real ftemp = real( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatB == 13 ) ; trap angle ftemp = tatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 14 ) ; trap real ftemp = real( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 18 ) ; sum if @maskBmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 19 ) ; product if @maskBmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 20 ) ; quotient 1 if @maskBmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 21 ) ; quotient 2 if @maskBmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 22 ) ; power 1 if @maskBmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 23 ) ; power 2 if @maskBmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 24 ) ; arithmetic mean if @maskBmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskBmod elseif ( @maskwhatB == 25 ) ; geometric mean if @maskBmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskBmod endif ; @maskwhatB if @maskifB == "falls above" if ftemp > @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls below" if ftemp < @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls between" if (ftemp > @maskBmin) && (ftemp < @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "falls outside" if (ftemp < @maskBmin) || (ftemp > @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "equals" if ftemp == @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "not equal" if ftemp != @maskAmin maskBset = TRUE endif ; ftemp endif ; @maskifB endif ; maskB ; Mask combination logic if @maskA && @maskB if @maskcombo == "or" if maskAset || maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "and" if maskAset && maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "not" if maskAset && !maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "eor" if (maskAset && !maskBset) || (!maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nor" if !(maskAset || maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nand" if !(maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "neor" if !((maskAset && !maskBset) || (!maskAset && maskBset)) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "Aor!B" if maskAset || !maskBset #solid = TRUE solidset = TRUE endif ; maskAset endif ; @maskcombo elseif @maskA if maskAset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskB if maskBset #solid = TRUE solidset = TRUE endif ; maskBset endif ; @maskA && @maskB ; Figure amount of texture ; Texture code adapted from code of ldm & reb if !solidset if @texture if @texinit == "z" ztemp2 = ztrapped elseif @texinit == "mod z" ztemp2 = zitrapped else ; @texinit == "trap" ztemp2 = ttrapped endif ; @texinit index = 0 ztemp2 = ztemp2*10^@texpower while index < 4 if ( texfunc[index] == 0 ) ztemp = ztemp2 elseif ( texfunc[index] == 1 ) ztemp = 1/ztemp2 elseif ( texfunc[index] == 2 ) ztemp = ztemp2 * ztemp2 elseif ( texfunc[index] == 3 ) ztemp = 1 / ( ztemp2 * ztemp2 ) elseif ( texfunc[index] == 4 ) ztemp = log(ztemp2) elseif ( texfunc[index] == 5 ) ztemp = exp( ztemp2) elseif ( texfunc[index] == 6 ) ztemp = ztemp2^ztemp2 elseif ( texfunc[index] == 7 ) ztemp = sin( ztemp2 ) elseif ( texfunc[index] == 8 ) ztemp = cos( ztemp2 ) elseif ( texfunc[index] == 9 ) ztemp = tan( ztemp2 ) elseif ( texfunc[index] == 10 ) ztemp = asin( ztemp2 ) elseif ( texfunc[index] == 11 ) ztemp = acos( ztemp2 ) elseif ( texfunc[index] == 12 ) ztemp = atan( ztemp2 ) elseif ( texfunc[index] == 13 ) ztemp = sinh( ztemp2 ) elseif ( texfunc[index] == 14 ) ztemp = cosh( ztemp2 ) elseif ( texfunc[index] == 15 ) ztemp = tanh( ztemp2 ) elseif ( texfunc[index] == 16 ) ztemp = asinh( ztemp2 ) elseif ( texfunc[index] == 17 ) ztemp = acosh( ztemp2 ) elseif ( texfunc[index] == 18 ) ztemp = atanh( ztemp2 ) elseif ( texfunc[index] == 19 ) ztemp = log( 1/ztemp2 ) elseif ( texfunc[index] == 20 ) ztemp = log( log( ztemp2 )) elseif ( texfunc[index] == 21 ) ztemp = exp( -ztemp2 ) elseif ( texfunc[index] == 22 ) ztemp = exp( 1/ztemp2 ) elseif ( texfunc[index] == 23 ) ztemp = ztemp2^(-ztemp2) elseif ( texfunc[index] == 24 ) ztemp = sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 25 ) ztemp = cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 26 ) ztemp = tan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 27 ) ztemp = cotan( ztemp2 ) elseif ( texfunc[index] == 28 ) ztemp = 1/cos( ztemp2 ) elseif ( texfunc[index] == 29 ) ztemp = 1/sin( ztemp2 ) elseif ( texfunc[index] == 30 ) ztemp = cotan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 31 ) ztemp = 1/cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 32 ) ztemp = 1/sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 33 ) ztemp = ztemp2^(ztemp2) ztemp = ztemp2^ztemp elseif ( texfunc[index] == 34 ) ztemp = ztemp2^(ztemp2) ztemp = 1/( ztemp2^ztemp ) elseif ( texfunc[index] == 35 ) ztemp = log(-ztemp2) elseif ( texfunc[index] == 36 ) ztemp = 1/log( ztemp2 ) elseif ( texfunc[index] == 37 ) ztemp = ztemp2 * log( ztemp2 ) elseif ( texfunc[index] == 38 ) ztemp = sin( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 39 ) ztemp = cos( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 40 ) ztemp = sin( ztemp2 ) * cos( ztemp2 ) elseif ( texfunc[index] == 41 ) ztemp = sin( ztemp2^2 ) elseif ( texfunc[index] == 42 ) ztemp = exp( -1/ztemp2 ) elseif ( texfunc[index] == 43 ) ztemp = ztemp2 * exp( ztemp2 ) elseif ( texfunc[index] == 44 ) ztemp = ztemp2 * exp( -ztemp2 ) elseif ( texfunc[index] == 45 ) ztemp = ztemp2 * exp( 1/ztemp2 ) elseif ( texfunc[index] == 46 ) ztemp = ztemp2 * exp( -1/ztemp2 ) elseif ( texfunc[index] == 47 ) ztemp = ztemp2 * ztemp2 * ztemp2 elseif ( texfunc[index] == 48 ) ztemp = 1 / ( ztemp2 * ztemp2 * ztemp2 ) elseif ( texfunc[index] == 49 ) ztemp = atan( 1 / ztemp2 ) elseif ( texfunc[index] == 50 ) ztemp = acos( 1 / ztemp2 ) elseif ( texfunc[index] == 51 ) ztemp = asin( 1 / ztemp2 ) elseif ( texfunc[index] == 52 ) ztemp = tan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 53 ) ztemp = cotan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 54 ) ztemp = 1 / ( ztemp2 * cos( ztemp2 )) elseif ( texfunc[index] == 55 ) ztemp = 1 / ( ztemp2 * sin( ztemp2 )) elseif ( texfunc[index] == 56 ) ztemp = ztemp2 * sin( ztemp2 ) elseif ( texfunc[index] == 57 ) ztemp = ztemp2 * cos( ztemp2 ) elseif ( texfunc[index] == 58 ) ztemp = ztemp2 * tan( ztemp2 ) elseif ( texfunc[index] == 59 ) ztemp = ztemp2 * cotan( ztemp2 ) elseif ( texfunc[index] == 60 ) ztemp = ztemp2/cos( ztemp2 ) elseif ( texfunc[index] == 61 ) ztemp = ztemp2/sin( ztemp2 ) elseif ( texfunc[index] == 62 ) ztemp = sin( 1/ztemp2 ) elseif ( texfunc[index] == 63 ) ztemp = cos( 1/ztemp2 ) elseif ( texfunc[index] == 64 ) ztemp = tan( 1/ztemp2 ) elseif ( texfunc[index] == 65 ) ztemp = cotan( 1/ztemp2 ) elseif ( texfunc[index] == 66 ) ztemp = 1/cos( 1/ztemp2 ) elseif ( texfunc[index] == 67 ) ztemp = 1/sin( 1/ztemp2 ) elseif ( texfunc[index] == 68 ) ztemp = cotanh( ztemp2 ) elseif ( texfunc[index] == 69 ) ztemp = 1/cosh( ztemp2 ) elseif ( texfunc[index] == 70 ) ztemp = 1/sinh( ztemp2 ) elseif ( texfunc[index] == 71 ) ztemp = atanh( 1/ztemp2 ) elseif ( texfunc[index] == 72 ) ztemp = acosh( 1/ztemp2 ) elseif ( texfunc[index] == 73 ) ztemp = asinh( 1/ztemp2 ) elseif texfunc[index] == 74 ztemp = ztemp2^@tex2power elseif texfunc[index] == 75 ztemp = sinh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 76 ztemp = cosh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 77 ztemp = tanh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 78 ztemp = cotanh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 79 ztemp = 1/cosh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 80 ztemp = 1 / sinh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 81 ztemp = sinh(1/ztemp2) elseif texfunc[index] == 82 ztemp = cosh(1/ztemp2) elseif texfunc[index] == 83 ztemp = tanh(1/ztemp2) elseif texfunc[index] == 84 ztemp = cotanh(1/ztemp2) elseif texfunc[index] == 85 ztemp = 1/cosh(1/ztemp2) elseif texfunc[index] == 86 ztemp = 1/sinh(1/ztemp2) elseif texfunc[index] == 87 ztemp = sin( ztemp2 ) * tan(ztemp2) elseif texfunc[index] == 88 ztemp = sinh(ztemp2) * tanh(ztemp2) elseif texfunc[index] == 89 ztemp = sinh(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 90 ztemp = sinh(ztemp2) ztemp2 = cosh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 91 ztemp = sin(ztemp2) ztemp2 = cos(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 92 ztemp = 1/ztemp2 ztemp = sin(ztemp)*cos(ztemp) elseif texfunc[index] == 93 ztemp = sin( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 94 ztemp = sin(ztemp2) * cos(1/ztemp2) elseif texfunc[index] == 95 ztemp = sin(ztemp2) * sin(1/ztemp2) elseif texfunc[index] == 96 ztemp = log(ztemp2) ztemp = ztemp*ztemp elseif texfunc[index] == 97 ztemp = sin(ztemp2) * sin(2*ztemp2) elseif texfunc[index] == 98 ztemp = exp(2*ztemp2) elseif texfunc[index] == 99 ztemp = exp(-2*ztemp2) elseif texfunc[index] == 100 ztemp = 1/ztemp2 ztemp = sinh(ztemp)*cosh(ztemp) elseif texfunc[index] == 101 ztemp = sinh( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 102 ztemp = sinh(ztemp2) * cosh(1/ztemp2) elseif texfunc[index] == 103 ztemp = sinh(ztemp2) * sinh(1/ztemp2) elseif texfunc[index] == 104 ztemp = sin(ztemp2) * sinh(ztemp2) elseif texfunc[index] == 105 ztemp = sin(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 106 ztemp = sin(ztemp2) ztemp2 = sinh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 107 ztemp = sin(ztemp2)*exp(ztemp2) elseif texfunc[index] == 108 ztemp = cos(ztemp2)*exp(ztemp2) elseif texfunc[index] == 109 ztemp = sinh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 110 ztemp = cosh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 111 ztemp = sin(ztemp2)*log(ztemp2) elseif texfunc[index] == 112 ztemp = cos(ztemp2)*log(ztemp2) elseif texfunc[index] == 113 ztemp = sinh(ztemp2)*log(ztemp2) elseif texfunc[index] == 114 ztemp = cosh(ztemp2)*log(ztemp2) elseif texfunc[index] == 115 ztemp = exp(ztemp2^2) elseif texfunc[index] == 116 ztemp = exp(1/(ztemp2^2)) elseif texfunc[index] == 117 ztemp = abs(ztemp2) elseif texfunc[index] == 118 ztemp = round(ztemp2) elseif texfunc[index] == 119 ztemp = trunc(ztemp2) elseif texfunc[index] == 120 ztemp = ceil(ztemp2) elseif texfunc[index] == 121 ztemp = floor(ztemp2) elseif texfunc[index] == 122 ztemp = ztemp2/log(ztemp2) elseif texfunc[index] == 123 ztemp = log(ztemp2)/ztemp2 elseif texfunc[index] == 124 ztemp = exp(ztemp2)/ztemp2 elseif texfunc[index] == 125 ztemp = exp(1/ztemp2)/ztemp2 elseif texfunc[index] == 126 ztemp = exp(ztemp2^2)/ztemp2 elseif texfunc[index] == 127 ztemp = exp(1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 128 ztemp = ztemp2 * exp(ztemp2^2) elseif texfunc[index] == 129 ztemp = ztemp2 * exp(1/(ztemp2^2)) elseif texfunc[index] == 130 ztemp = exp(-(ztemp2^2)) elseif texfunc[index] == 131 ztemp = exp(-1/(ztemp2^2)) elseif texfunc[index] == 132 ztemp = exp(-(ztemp2^2))/ztemp2 elseif texfunc[index] == 133 ztemp = exp(-1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 134 ztemp = ztemp2 * exp(-(ztemp2^2)) else ; texfunc[index] == 135 ztemp = ztemp2 * exp(-1/(ztemp2^2)) endif ; texfunc[] if index == 0 ztemp2 = ztemp elseif index == 1 ztemp2 = ztemp * @texscale ztemp2 = ztemp2 - round(ztemp2) elseif index == 2 ztemp2 = ztemp elseif index == 3 ztemp2 = ztemp + @texoffset endif ; index index = index + 1 endwhile ; index ftemp = cabs(ztemp2) * @texmod texadjust = (ftemp - trunc(ftemp)) * @texamount endif ; @texture endif ; solidset ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if !solidset if @fBm if @fbminit == "z" ztemp2 = ztrapped elseif @fbminit == "mod z" ztemp2 = zitrapped else ; @fbminit == "trap" ztemp2 = ttrapped endif ; @fbminit complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = ztemp2 * @bscale * br float bsum = 0.0 float bfreq = 1.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd 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 ba = u1 + sx*(v1-u1) float bbb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bbb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fBmadjust = fBmmamount * (bsum + 1) endif ; @fBm if ( @colorby == 0 ) ; distance tempcolor = cabs( ztrapped - ttrapped ) if @softendistance if tempcolor > @softdistamt ftemp = tempcolor - @softdistamt ftemp2 = ftemp + 1 tempcolor = ftemp2^(@softdistpwr+@softaccel*log(ftemp2)) - 1 + @softdistamt else tempcolor = @softdistamt endif ; tempcolor endif ; @softendistance elseif ( @colorby == 1 ) ; mod distance (distance to zinput, not #z) tempcolor = cabs( zitrapped - ttrapped ) if @softendistance if tempcolor > @softdistamt ftemp = tempcolor - @softdistamt ftemp2 = ftemp + 1 tempcolor = ftemp2^(@softdistpwr+@softaccel*log(ftemp2)) - 1 + @softdistamt else tempcolor = @softdistamt endif ; tempcolor endif ; @softendistance elseif ( @colorby == 2 ) ; magnitude tempcolor = log(cabs(ztrapped)) elseif ( @colorby == 3 ) ; modulated magnitude tempcolor = cabs(zitrapped) elseif ( @colorby == 4 ) ; flavor value (formerly called 'test') tempcolor = abs(tvtrapped) elseif ( @colorby == 5 ) ; iteration tempcolor = sqrt(log(itrapped)) elseif ( @colorby == 6 ) ; angle tempcolor = zatrapped / twopi elseif ( @colorby == 7 ) ; modulated angle tempcolor = abs(ziatrapped) / twopi elseif ( @colorby == 8 ) ; real tempcolor = abs( real( ztrapped )) elseif ( @colorby == 9 ) ; modulated real tempcolor = log(abs( real( zitrapped ))) elseif ( @colorby == 10 ) ; imaginary tempcolor = abs( imag( ztrapped )) elseif ( @colorby == 11 ) ; modulated imaginary tempcolor = log(abs( imag( zitrapped ))) elseif ( @colorby == 12 ) ; trap magnitude tempcolor = cabs(ttrapped) elseif ( @colorby == 13 ) ; trap angle tempcolor = abs(tatrapped) / twopi elseif ( @colorby == 14 ) ; trap real tempcolor = abs( real( ttrapped )) elseif ( @colorby == 15 ) ; trap imaginary tempcolor = abs( imag( ttrapped )) elseif ( @colorby == 16 ) ; fBm/texture only tempcolor = 0.5 elseif ( @colorby == 17 ) ; modulated iteration tempcolor = itrapped*5%@ncol/@ncol*10*@cd endif ; colorby ; Soften coloring of maxima if ( (@whattotrap == 1) || (@whattotrap == 5) || (@whattotrap == 6) || \ (@whattotrap == 7) || (@whattotrap > 15) ) && ( (@colorby != 4) && \ (@colorby != 5) && (@colorby != 6) && (@colorby != 7) && (@colorby < 12) ) tempcolor = (log(abs(tempcolor)))^(@maxsoften) endif ; @whattotrap if @ranges == 1 tempcolor = tempcolor + fBmadjust + texadjust else if !@maskranges tempcolor = ((tempcolor + fBmadjust + texadjust) + (itrapped % @ranges) ) / @ranges else count = (itrapped % @ranges) + 1 if @whatrange == "<=" if count <= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == ">=" if count >= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "=" if count == @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "not =" if count != @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "between" if (count >= @rangemin) && (count <= @rangemax) #solid = TRUE solidset = TRUE endif ; count else ; @whatrange == "outside" if ((count <= @rangemin) || (count >= @rangemax)) #solid = TRUE solidset = TRUE endif ; count endif ; @whatrange if solidset == FALSE tempcolor = ((tempcolor + fBmadjust + texadjust) + (itrapped % @ranges) ) / @ranges endif ; solidset endif ; maskranges endif ; ranges endif ; solidset if !solidset if ( @colorwarp == 0 ) ftemp = tempcolor elseif ( @colorwarp == 1 ) ftemp = 1/tempcolor elseif ( @colorwarp == 2 ) ftemp = tempcolor * tempcolor elseif ( @colorwarp == 3 ) ftemp = 1 / ( tempcolor * tempcolor ) elseif ( @colorwarp == 4 ) ftemp = log(tempcolor) elseif ( @colorwarp == 5 ) ftemp = exp( tempcolor) elseif ( @colorwarp == 6 ) ftemp = tempcolor^tempcolor elseif ( @colorwarp == 7 ) ftemp = sin( tempcolor ) elseif ( @colorwarp == 8 ) ftemp = cos( tempcolor ) elseif ( @colorwarp == 9 ) ftemp = tan( tempcolor ) elseif ( @colorwarp == 10 ) ftemp = asin( tempcolor ) elseif ( @colorwarp == 11 ) ftemp = acos( tempcolor ) elseif ( @colorwarp == 12 ) ftemp = atan( tempcolor ) elseif ( @colorwarp == 13 ) ftemp = sinh( tempcolor ) elseif ( @colorwarp == 14 ) ftemp = cosh( tempcolor ) elseif ( @colorwarp == 15 ) ftemp = tanh( tempcolor ) elseif ( @colorwarp == 16 ) ftemp = asinh( tempcolor ) elseif ( @colorwarp == 17 ) ftemp = acosh( tempcolor ) elseif ( @colorwarp == 18 ) ftemp = atanh( tempcolor ) elseif ( @colorwarp == 19 ) ftemp = log( 1/tempcolor ) elseif ( @colorwarp == 20 ) ftemp = log( log( tempcolor )) elseif ( @colorwarp == 21 ) ftemp = exp( -tempcolor ) elseif ( @colorwarp == 22 ) ftemp = exp( 1/tempcolor ) elseif ( @colorwarp == 23 ) ftemp = tempcolor^(-tempcolor) elseif ( @colorwarp == 24 ) ftemp = sin( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 25 ) ftemp = cos( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 26 ) ftemp = tan( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 27 ) ftemp = cotan( tempcolor ) elseif ( @colorwarp == 28 ) ftemp = 1/cos( tempcolor ) elseif ( @colorwarp == 29 ) ftemp = 1/sin( tempcolor ) elseif ( @colorwarp == 30 ) ftemp = cotan( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 31 ) ftemp = 1/cos( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 32 ) ftemp = 1/sin( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 33 ) ftemp = tempcolor^(tempcolor) ftemp = tempcolor^ftemp elseif ( @colorwarp == 34 ) ftemp = tempcolor^(tempcolor) ftemp = 1/( tempcolor^ftemp ) elseif ( @colorwarp == 35 ) ftemp = log(-tempcolor) elseif ( @colorwarp == 36 ) ftemp = 1/log( tempcolor ) elseif ( @colorwarp == 37 ) ftemp = tempcolor * log( tempcolor ) elseif ( @colorwarp == 38 ) ftemp = sin( tempcolor ) / tempcolor elseif ( @colorwarp == 39 ) ftemp = cos( tempcolor ) / tempcolor elseif ( @colorwarp == 40 ) ftemp = sin( tempcolor ) * cos( tempcolor ) elseif ( @colorwarp == 41 ) ftemp = sin( tempcolor^2 ) elseif ( @colorwarp == 42 ) ftemp = exp( -1/tempcolor ) elseif ( @colorwarp == 43 ) ftemp = tempcolor * exp( tempcolor ) elseif ( @colorwarp == 44 ) ftemp = tempcolor * exp( -tempcolor ) elseif ( @colorwarp == 45 ) ftemp = tempcolor * exp( 1/tempcolor ) elseif ( @colorwarp == 46 ) ftemp = tempcolor * exp( -1/tempcolor ) elseif ( @colorwarp == 47 ) ftemp = tempcolor * tempcolor * tempcolor elseif ( @colorwarp == 48 ) ftemp = 1 / ( tempcolor * tempcolor * tempcolor ) elseif ( @colorwarp == 49 ) ftemp = atan( 1 / tempcolor ) elseif ( @colorwarp == 50 ) ftemp = acos( 1 / tempcolor ) elseif ( @colorwarp == 51 ) ftemp = asin( 1 / tempcolor ) elseif ( @colorwarp == 52 ) ftemp = tan( tempcolor ) / tempcolor elseif ( @colorwarp == 53 ) ftemp = cotan( tempcolor ) / tempcolor elseif ( @colorwarp == 54 ) ftemp = 1 / ( tempcolor * cos( tempcolor )) elseif ( @colorwarp == 55 ) ftemp = 1 / ( tempcolor * sin( tempcolor )) elseif ( @colorwarp == 56 ) ftemp = tempcolor * sin( tempcolor ) elseif ( @colorwarp == 57 ) ftemp = tempcolor * cos( tempcolor ) elseif ( @colorwarp == 58 ) ftemp = tempcolor * tan( tempcolor ) elseif ( @colorwarp == 59 ) ftemp = tempcolor * cotan( tempcolor ) elseif ( @colorwarp == 60 ) ftemp = tempcolor/cos( tempcolor ) elseif ( @colorwarp == 61 ) ftemp = tempcolor/sin( tempcolor ) elseif ( @colorwarp == 62 ) ftemp = sin( 1/tempcolor ) elseif ( @colorwarp == 63 ) ftemp = cos( 1/tempcolor ) elseif ( @colorwarp == 64 ) ftemp = tan( 1/tempcolor ) elseif ( @colorwarp == 65 ) ftemp = cotan( 1/tempcolor ) elseif ( @colorwarp == 66 ) ftemp = 1/cos( 1/tempcolor ) elseif ( @colorwarp == 67 ) ftemp = 1/sin( 1/tempcolor ) elseif ( @colorwarp == 68 ) ftemp = cotanh( tempcolor ) elseif ( @colorwarp == 69 ) ftemp = 1/cosh( tempcolor ) elseif ( @colorwarp == 70 ) ftemp = 1/sinh( tempcolor ) elseif ( @colorwarp == 71 ) ftemp = atanh( 1/tempcolor ) elseif ( @colorwarp == 72 ) ftemp = acosh( 1/tempcolor ) elseif ( @colorwarp == 73 ) ftemp = asinh( 1/tempcolor ) elseif @colorwarp == 74 ftemp = tempcolor^@cpower elseif @colorwarp == 75 ftemp = sinh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 76 ftemp = cosh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 77 ftemp = tanh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 78 ftemp = cotanh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 79 ftemp = 1/cosh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 80 ftemp = 1 / sinh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 81 ftemp = sinh(1/tempcolor) elseif @colorwarp == 82 ftemp = cosh(1/tempcolor) elseif @colorwarp == 83 ftemp = tanh(1/tempcolor) elseif @colorwarp == 84 ftemp = cotanh(1/tempcolor) elseif @colorwarp == 85 ftemp = 1/cosh(1/tempcolor) elseif @colorwarp == 86 ftemp = 1/sinh(1/tempcolor) elseif @colorwarp == 87 ftemp = sin( tempcolor ) * tan(tempcolor) elseif @colorwarp == 88 ftemp = sinh(tempcolor) * tanh(tempcolor) elseif @colorwarp == 89 ftemp = sinh(tempcolor) * cosh(tempcolor) elseif @colorwarp == 90 ftemp = sinh(tempcolor), ftemp2 = cosh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 91 ftemp = sin(tempcolor), ftemp2 = cos(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 92 ftemp = 1/tempcolor ftemp = sin(ftemp)*cos(ftemp) elseif @colorwarp == 93 ftemp = sin( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 94 ftemp = sin(tempcolor) * cos(1/tempcolor) elseif @colorwarp == 95 ftemp = sin(tempcolor) * sin(1/tempcolor) elseif @colorwarp == 96 ftemp = log(tempcolor) ftemp = ftemp*ftemp elseif @colorwarp == 97 ftemp = sin(tempcolor) * sin(2*tempcolor) elseif @colorwarp == 98 ftemp = exp(2*tempcolor) elseif @colorwarp == 99 ftemp = exp(-2*tempcolor) elseif @colorwarp == 100 ftemp = 1/tempcolor ftemp = sinh(ftemp)*cosh(ftemp) elseif @colorwarp == 101 ftemp = sinh( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 102 ftemp = sinh(tempcolor) * cosh(1/tempcolor) elseif @colorwarp == 103 ftemp = sinh(tempcolor) * sinh(1/tempcolor) elseif @colorwarp == 104 ftemp = sin(tempcolor) * sinh(tempcolor) elseif @colorwarp == 105 ftemp = sin(tempcolor) * cosh(tempcolor) elseif @colorwarp == 106 ftemp = sin(tempcolor), ftemp2 = sinh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 107 ftemp = sin(tempcolor)*exp(tempcolor) elseif @colorwarp == 108 ftemp = cos(tempcolor)*exp(tempcolor) elseif @colorwarp == 109 ftemp = sinh(tempcolor)*exp(tempcolor) elseif @colorwarp == 110 ftemp = cosh(tempcolor)*exp(tempcolor) elseif @colorwarp == 111 ftemp = sin(tempcolor)*log(tempcolor) elseif @colorwarp == 112 ftemp = cos(tempcolor)*log(tempcolor) elseif @colorwarp == 113 ftemp = sinh(tempcolor)*log(tempcolor) elseif @colorwarp == 114 ftemp = cosh(tempcolor)*log(tempcolor) elseif @colorwarp == 115 ftemp = exp(tempcolor^2) elseif @colorwarp == 116 ftemp = exp(1/(tempcolor^2)) elseif @colorwarp == 117 ftemp = abs(tempcolor) elseif @colorwarp == 118 ftemp = round(tempcolor) elseif @colorwarp == 119 ftemp = trunc(tempcolor) elseif @colorwarp == 120 ftemp = ceil(tempcolor) elseif @colorwarp == 121 ftemp = floor(tempcolor) elseif @colorwarp == 122 ftemp = tempcolor/log(tempcolor) elseif @colorwarp == 123 ftemp = log(tempcolor)/tempcolor elseif @colorwarp == 124 ftemp = exp(tempcolor)/tempcolor elseif @colorwarp == 125 ftemp = exp(1/tempcolor)/tempcolor elseif @colorwarp == 126 ftemp = exp(tempcolor^2)/tempcolor elseif @colorwarp == 127 ftemp = exp(1/(tempcolor^2))/tempcolor elseif @colorwarp == 128 ftemp = tempcolor * exp(tempcolor^2) elseif @colorwarp == 129 ftemp = tempcolor * exp(1/(tempcolor^2)) elseif @colorwarp == 130 ftemp = exp(-(tempcolor^2)) elseif @colorwarp == 131 ftemp = exp(-1/(tempcolor^2)) elseif @colorwarp == 132 ftemp = exp(-(tempcolor^2))/tempcolor elseif @colorwarp == 133 ftemp = exp(-1/(tempcolor^2))/tempcolor elseif @colorwarp == 134 ftemp = tempcolor * exp(-(tempcolor^2)) else ; @colorwarp == 135 ftemp = tempcolor * exp(-1/(tempcolor^2)) endif ; tempcolorwarp #index = abs(ftemp) endif ; solidset else #solid = TRUE endif ; itrapped default: title = "Trapestry-x" param version caption = "Version" default = 1.02 visible = FALSE endparam heading caption = "Primary Settings" endheading param showprimaries caption = "Show Primary Params?" default = TRUE endparam param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "Nth z iterate" "last z" \ "max-min" "max+min" "max*min" "max/min" "max^min" \ "min-max" "min/max" "min^max" "min,max avg" default = 0 hint = "What size of value will be trapped? 'Threshold' means first iterate value to \ fall below the 'Threshold Value' parameter; 'Limit' means the first iterate to \ exceed the 'Threshold Value'" visible = @showprimaries endparam param nthiterate caption = "Nth Iterate Value" default = 1 hint = "If 'Trap What' is set to 'Nth z iterate', then this is the value \ of 'N', the iteration that z will be trapped" visible = @showprimaries && (@whattotrap == 15) endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option" visible = ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and \ 'limit' type traps each iteration; parameter \ 'ThreshFeedback' can be used to modulate the variation" visible = ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh && ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param ringstyle caption = "Enable Bands?" default = FALSE hint = "If 'Enable Bands' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then trapping is limited to a narrow \ region near the 'Threshold Value'. \ 'Threshold Value' sets one band radius, and 'Band Width' sets the width \ of the trapping region" visible = ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param ringwidth caption = "Band Width" default = 0.25 hint = "If 'Enable Bands' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the band trap" visible = @ringstyle && ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param varyrwidth caption = "Vary Band Width?" default = FALSE hint = "If set, the value of the trap will modify the band width of 'threshold' \ and 'limit' band-type traps each iteration; parameter 'BandFeedback' can be \ used to modulate the variation" visible = @ringstyle && ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param ringstp caption = "BandFeedback" default = 1.0 hint = "If 'Vary Band Width' is set, this setting adjusts the amount of variation" visible = @varyrwidth && @ringstyle && ( @whattotrap > 7 ) && ( @whattotrap < 15 ) && @showprimaries endparam param trapmode caption = "Trap Flavor" enum = "distance" "magnitude" "real" "imaginary" "trap magnitude" "angle" \ "trap angle" "raw angle" "difference angle" "diff. angle 2" \ "trap real" "trap imaginary" "sum" "product" \ "quotient 1" "quotient 2" "power 1" "power 2" "arith. mean" "geom. mean" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" default = 0 hint = "What variable will be watched for possible trapping?" visible = @showprimaries endparam param @colorby caption = "Color By?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "fBm/texture only"\ "modulated iter" default = 0 hint = "Criterion for computing color index; index will be based on the value of this variable" visible = @showprimaries endparam float param ncol caption = "Mod Iter Ranges" default = 4.0 hint = "The number of colors that are displayed before the first is repeated. \ Decimal values are possible for special effects." visible = @colorby == 17 && @showprimaries endparam float param cd caption = "Separation" default = 1.0 hint = "Changes the points in the gradient from \ which the colors for 'Mod Iter' are taken" visible = @colorby == 17 && @showprimaries endparam param overallscale caption = "Overall Scale" default = 4.0 hint = "This parameter fixes the overall size of all traps" visible = @showprimaries endparam param history caption = "Enable History?" default = FALSE hint = "If enabled, previous iterations of z are also used to \ determine the trap. If enabled, it may also be of interest \ to set param 'Iterations to Skip' (in the 'Modifiers' section) \ to a non-zero value. Since the history array \ (containing values of previous z iterates) fills up regardless of the \ setting of 'Iterations to Skip', a non-zero value for 'Iterations to \ Skip' allows the history array to initialize with interesting values \ before trapping begins" visible = @showprimaries endparam param histype caption = "History Type" default = 1 min = 0 max = 324 hint = "Determines how previous z's are used for trapping. Range is \ an integer from 0 (no previous z used) to 324. Range types recur \ in sets of 36" visible = @history && @showprimaries endparam heading caption = "Trap Function Settings" endheading param showtrapfuncs caption = "Show Trap Func Params?" default = TRUE endparam param coordtype caption = "Coordinate Type" enum = "Polar" "Parametric" "Mixed" default = 0 hint = "This setting determines how the trapping functions are interpreted. \ 'Mixed' means that one trap is computed using polar coordinates, and \ the second trap is calculated parametrically" visible = @showtrapfuncs endparam param traptype caption = "Trap Type" enum = "functions" "oscillators" "mixed 1" "mixed 2" default = 0 hint = "This setting determines which function sets are used for the trap. \ 'mixed 1' and 'mixed 2' are equivalent unless 'Coordinate Type' is also \ set to 'Mixed'. In that case, 'mixed 1' means that the first trap \ is computed in polar coords using functions, the second parametrically \ using oscillators; 'mixed 2' means that the polar trap is computed \ using oscillators, while the parametric trap is calculated using \ functions" visible = @showtrapfuncs endparam param trapcombo caption = "Trap Combination" default = 1 enum = "average" "sum" "difference" "product" "geom. mean" "difference 2" \ "quotient" "quotient 2" "exponential 1" "exponential 2" "splice 1" \ "splice 2" "product 2" "quotient 3" "splice 3" "splice 4" "splice 5" \ "splice 6" hint = "This setting determines how the two traps will be merged" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") endparam param twotrapsblend caption = "Blend the Traps?" default = FALSE hint = "If enabled, then different weights can be assigned to the two trap functions \ that will affect the proportions in which they will be combined by 'Trap \ Combination'. Sometimes convenient so that all the different amplitudes/scales \ don't have to be individually adjusted" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") endparam param trap1weight caption = "Trap 1 Weight" default = 1.0 hint = "This value sets how much of Trap 1 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapsblend && @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") endparam param trap2weight caption = "Trap 2 Weight" default = 1.0 hint = "This value sets how much of Trap 2 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapsblend && @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") endparam param func1 caption = "Function 1" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" \ "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" \ "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" \ "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" \ "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" \ "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^n*cosh(a)^n" \ "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" \ "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" \ "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" \ "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" \ "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" \ "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" \ "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" \ "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" \ "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" \ "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" \ "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" \ "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" \ "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" \ "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" \ "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" \ "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" default = 143 hint = "If 'Trap Type' is set to 'functions', 'mixed 1', or 'mixed 2', then \ this parameter sets the first function. The 'a' function argument \ represents the angle of the iterate, z. An '(x)' or '(y)' indicates \ that that equation is designed for parametric use, but obviously \ can be used as a polar function as well, with unpredictable results. \ If 'Coordinate Type' is 'Polar', this function calculates the first radius; \ if 'Parametric', this function computes the x-coord of the first (x,y) pair. \ For the 'Mixed/mixed 1' and 'Mixed/functions' combos, it calculates \ the radius; for the 'Mixed/mixed 2' combo, an x-coordinate" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param f1scale caption = "Func1 Scale" default = 1.0 hint = "This parameter can be used to selectively adjust the scale of the \ first function" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) endparam param f1offset caption = "Func1 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 1' calculation" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param const1f1 caption = "1st Func1 Constant" default = 3.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects the shape \ of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ((@func1 > 3) && (@func1 != 107)) \ && (@f1scale != 0) endparam param const2f1 caption = "2nd Func1 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ( (@func1 == 20) || ((@func1 >= 22) && (@func1 <= 24)) || ((@func1 >= 28) && (@func1 <= 32)) \ || (@func1 == 37) || ((@func1 >= 67) && (@func1 <= 72)) || ((@func1 >= 79) && (@func1 <= 106)) \ || (@func1 == 38) || ((@func1 >= 112) && (@func1 <= 113)) || (@func1 == 115) || \ ((@func1 >= 118) && (@func1 <= 129)) || ((@func1 >= 132) && (@func1 <= 136)) || (@func1 == 138) \ || ((@func1 >= 140) && (@func1 <= 142)) || (@func1 == 144) || (@func1 == 146) || \ ((@func1 >= 150) && (@func1 <= 152)) || ((@func1 >= 155) && (@func1 <= 167)) || \ ((@func1 >= 169) && (@func1 <= 170)) || ((@func1 >= 175) && (@func1 <= 178)) ) \ && (@f1scale != 0) endparam param const3f1 caption = "3rd Func1 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ( ((@func1 >= 82) && (@func1 <= 83)) || (@func1 == 96) || ((@func1 >=124) && (@func1 <= 125)) \ || ((@func1 >= 128) && (@func1 <= 129)) || ((@func1 >= 135) && (@func1 <= 136)) || (@func1 == 132) \ || (@func1 == 138) || ((@func1 >= 140) && (@func1 <= 142)) || \ (@func1 == 146) || ((@func1 >= 159) && (@func1 <= 160)) || \ ((@func1 >= 162) && (@func1 <= 166)) || ((@func1 >= 169) && (@func1 <= 170)) ) \ && (@f1scale != 0) endparam param f1absangle caption = "Func1 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param f1absresult caption = "Func1 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param func2 caption = "Function 2" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" \ "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" \ "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" \ "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" \ "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" \ "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^n*cosh(a)^n" \ "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" \ "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" \ "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" \ "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" \ "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" \ "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" \ "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" \ "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" \ "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" \ "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" \ "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" \ "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" \ "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" \ "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" \ "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" \ "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" default = 0 hint = "This parameter sets the second function; to inactivate it, \ set 'Func2 Scale' to zero. For the active combinations, \ this function calculates: 'Polar/functions', the second radius; \ 'Parametric/anything', the first y-coordinate; 'Mixed/functions', \ the x-coordinate; and 'Mixed/mixed 2', the y-coordinate" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param f2scale caption = "Func2 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ second function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) endparam param f2offset caption = "Func2 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 2' calculation" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param const1f2 caption = "1st Func2 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ((@func2 > 3) && (@func2 != 107)) \ && (@f2scale != 0) endparam param const2f2 caption = "2nd Func2 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ( (@func2 == 20) || ((@func2 >= 22) && (@func2 <= 24)) || ((@func2 >= 28) && (@func2 <= 32)) \ || (@func2 == 37) || ((@func2 >= 67) && (@func2 <= 72)) || ((@func2 >= 79) && (@func2 <= 106)) \ || (@func2 == 38) || ((@func2 >= 112) && (@func2 <= 113)) || (@func2 == 115) || \ ((@func2 >= 118) && (@func2 <= 129)) || ((@func2 >= 132) && (@func2 <= 136)) || (@func2 == 138) \ || ((@func2 >= 140) && (@func2 <= 142)) || (@func2 == 144) || (@func2 == 146) || \ ((@func2 >= 150) && (@func2 <= 152)) || ((@func2 >= 155) && (@func2 <= 167)) || \ ((@func2 >= 169) && (@func2 <= 170)) || ((@func2 >= 175) && (@func2 <= 178)) ) \ && (@f2scale != 0) endparam param const3f2 caption = "3rd Func2 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ( ((@func2 >= 82) && (@func2 <= 83)) || (@func2 == 96) || ((@func2 >=124) && (@func2 <= 125)) \ || ((@func2 >= 128) && (@func2 <= 129)) || ((@func2 >= 135) && (@func2 <= 136)) || (@func2 == 132) \ || (@func2 == 138) || ((@func2 >= 140) && (@func2 <= 142)) || \ (@func2 == 146) || ((@func2 >= 159) && (@func2 <= 160)) || \ ((@func2 >= 162) && (@func2 <= 166)) || ((@func2 >= 169) && (@func2 <= 170)) ) \ && (@f2scale != 0) endparam param f2absangle caption = "Func2 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param f2absresult caption = "Func2 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param func3 caption = "Function 3" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" \ "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" \ "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" \ "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" \ "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" \ "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^n*cosh(a)^n" \ "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" \ "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" \ "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" \ "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" \ "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" \ "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" \ "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" \ "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" \ "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" \ "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" \ "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" \ "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" \ "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" \ "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" \ "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" \ "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" default = 0 hint = "This parameter sets the third function; to inactivate it, \ set 'Func3 Scale' to zero. For the active combinations, \ this function calculates: 'Parametric/functions', the second \ x-coordinate; 'Mixed/functions', \ the y-coordinate" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param f3scale caption = "Func3 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ third function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) endparam param f3offset caption = "Func3 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 3' calculation" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param const1f3 caption = "1st Func3 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ((@func3 > 3) && (@func3 != 107)) \ && (@f3scale != 0.0) endparam param const2f3 caption = "2nd Func3 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ( (@func3 == 20) || ((@func3 >= 22) && (@func3 <= 24)) || ((@func3 >= 28) && (@func3 <= 32)) \ || (@func3 == 37) || ((@func3 >= 67) && (@func3 <= 72)) || ((@func3 >= 79) && (@func3 <= 106)) \ || (@func3 == 38) || ((@func3 >= 112) && (@func3 <= 113)) || (@func3 == 115) || \ ((@func3 >= 118) && (@func3 <= 129)) || ((@func3 >= 132) && (@func3 <= 136)) || (@func3 == 138) \ || ((@func3 >= 140) && (@func3 <= 142)) || (@func3 == 144) || (@func3 == 146) || \ ((@func3 >= 150) && (@func3 <= 152)) || ((@func3 >= 155) && (@func3 <= 167)) || \ ((@func3 >= 169) && (@func3 <= 170)) || ((@func3 >= 175) && (@func3 <= 178)) ) \ && (@f3scale != 0) endparam param const3f3 caption = "3rd Func3 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ( ((@func3 >= 82) && (@func3 <= 83)) || (@func3 == 96) || ((@func3 >=124) && (@func3 <= 125)) \ || ((@func3 >= 128) && (@func3 <= 129)) || ((@func3 >= 135) && (@func3 <= 136)) || (@func3 == 132) \ || (@func3 == 138) || ((@func3 >= 140) && (@func3 <= 142)) || \ (@func3 == 146) || ((@func3 >= 159) && (@func3 <= 160)) || \ ((@func3 >= 162) && (@func3 <= 166)) || ((@func3 >= 169) && (@func3 <= 170)) ) \ && (@f3scale != 0) endparam param f3absangle caption = "Func3 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param f3absresult caption = "Func3 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param func4 caption = "Function 4" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" \ "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" \ "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" \ "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" \ "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" \ "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^n*cosh(a)^n" \ "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" \ "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" \ "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" \ "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" \ "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" \ "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" \ "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" \ "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" \ "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" \ "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" \ "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" \ "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" \ "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" \ "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" \ "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" \ "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" default = 0 hint = "This parameter sets the fourth function; to inactivate it, \ set 'Func4 Scale' to zero. For the active combination, \ 'Parametric/functions', this function calculates the second \ y-coordinate" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param f4scale caption = "Func4 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ fourth function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) endparam param f4offset caption = "Func4 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 4' calculation" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param const1f4 caption = "1st Func4 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ((@func4 > 3) && (@func4 != 107)) \ && (@f4scale != 0) endparam param const2f4 caption = "2nd Func4 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ( (@func4 == 20) || ((@func4 >= 22) && (@func4 <= 24)) || ((@func4 >= 28) && (@func4 <= 32)) \ || (@func4 == 37) || ((@func4 >= 67) && (@func4 <= 72)) || ((@func4 >= 79) && (@func4 <= 106)) \ || (@func4 == 38) || ((@func4 >= 112) && (@func4 <= 113)) || (@func4 == 115) || \ ((@func4 >= 118) && (@func4 <= 129)) || ((@func4 >= 132) && (@func4 <= 136)) || (@func4 == 138) \ || ((@func4 >= 140) && (@func4 <= 142)) || (@func4 == 144) || (@func4 == 146) || \ ((@func4 >= 150) && (@func4 <= 152)) || ((@func4 >= 155) && (@func4 <= 167)) || \ ((@func4 >= 169) && (@func4 <= 170)) || ((@func4 >= 175) && (@func4 <= 178)) ) \ && (@f4scale != 0) endparam param const3f4 caption = "3rd Func4 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ( ((@func4 >= 82) && (@func4 <= 83)) || (@func4 == 96) || ((@func4 >=124) && (@func4 <= 125)) \ || ((@func4 >= 128) && (@func4 <= 129)) || ((@func4 >= 135) && (@func4 <= 136)) || (@func4 == 132) \ || (@func4 == 138) || ((@func4 >= 140) && (@func4 <= 142)) || \ (@func4 == 146) || ((@func4 >= 159) && (@func4 <= 160)) || \ ((@func4 >= 162) && (@func4 <= 166)) || ((@func4 >= 169) && (@func4 <= 170)) ) \ && (@f4scale != 0) endparam param f4absangle caption = "Func4 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param f4absresult caption = "Func4 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param osc11amp caption = "SetA Osc1 Amplitude" default = 4.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's first oscillator. \ Osc Set A can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set A is used to compute the following: \ 'Polar/oscillators', the first radius; 'Polar/mixed1' and \ 'Polar/mixed 2', the second radius; 'Parametric/oscillator', the first \ x-ccordinate; 'Parametric/mixed 1' and 'Parametric/mixed 2', the second \ x-coord; 'Mixed/oscillator' and 'Mixed/mixed 2', the radius; and \ 'Mixed/mixed 1', the x-coord" visible = @showtrapfuncs && \ (@traptype != "functions") endparam param osc11freq caption = "SetA Osc1 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's first oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) endparam param osc11sin caption = "SetA Osc1 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set A's first oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) endparam param osc12amp caption = "SetA Osc2 Amplitude" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) endparam param osc12freq caption = "SetA Osc2 Frequency" default = 4.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param osc12sin caption = "SetA Osc2 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param osc13amp caption = "SetA Osc3 Amplitude" default = 0.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's third oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param osc13freq caption = "SetA Osc3 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's third oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param osc13sin caption = "SetA Osc3 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set A's third oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param osc14amp caption = "SetA Osc4 Amplitude" default = 0.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's fourth oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param osc14freq caption = "SetA Osc4 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's fourth oscillator." visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param osc14sin caption = "SetA Osc4 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set A's fourth oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param o1offset caption = "Osc SetA Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set A \ calculation" visible = @showtrapfuncs && \ (@traptype != "functions") \ && @osc11amp != 0.0 endparam param o1absangle caption = "OscA Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ (@traptype != "functions") \ && @osc11amp != 0.0 endparam param o1absresult caption = "OscA Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ (@traptype != "functions") \ && @osc11amp != 0.0 endparam param osc21amp caption = "SetB Osc1 Amplitude" default = 4.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's first oscillator. \ Osc Set B can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set B is used to compute the following: \ 'Polar/oscillators', the second radius; 'Parametric/oscillator', the first \ y-ccordinate; 'Parametric/mixed 1' and 'Parametric/mixed 2', the second \ y-coord; 'Mixed/oscillator', the x-coord; and \ 'Mixed/mixed 1', the y-coord" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) endparam param osc21freq caption = "SetB Osc1 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) endparam param osc21sin caption = "SetB Osc1 Sine?" default = TRUE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set B's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) endparam param osc22amp caption = "SetB Osc2 Amplitude" default = -1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) endparam param osc22freq caption = "SetB Osc2 Frequency" default = 4.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param osc22sin caption = "SetB Osc2 Sine?" default = TRUE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param osc23amp caption = "SetB Osc3 Amplitude" default = 0.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param osc23freq caption = "SetB Osc3 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param osc23sin caption = "SetB Osc3 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param osc24amp caption = "SetB Osc4 Amplitude" default = 0.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param osc24freq caption = "SetB Osc4 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's fourth oscillator." visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param osc24sin caption = "SetB Osc4 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set B's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param o2offset caption = "Osc SetB Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set B \ calculation" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param o2absangle caption = "OscB Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param o2absresult caption = "OscB Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param osc31amp caption = "SetC Osc1 Amplitude" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's first oscillator. \ Osc Set C can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set C is used to compute the following: \ 'Parametric/oscillator', the second \ x-ccordinate; 'Mixed/oscillator', the y-coord" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) endparam param osc31freq caption = "SetC Osc1 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) endparam param osc31sin caption = "SetC Osc1 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set C's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param osc32amp caption = "SetC Osc2 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) endparam param osc32freq caption = "SetC Osc2 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param osc32sin caption = "SetC Osc2 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param osc33amp caption = "SetC Osc3 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param osc33freq caption = "SetC Osc3 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param osc33sin caption = "SetC Osc3 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param osc34amp caption = "SetC Osc4 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param osc34freq caption = "SetC Osc4 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's fourth oscillator." visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param osc34sin caption = "SetC Osc4 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set C's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param o3offset caption = "Osc SetC Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set C \ calculation" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param o3absangle caption = "OscC Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param o3absresult caption = "OscC Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param osc41amp caption = "SetD Osc1 Amplitude" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's first oscillator. \ Osc Set D can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combination, Set D is used to compute the following: \ 'Parametric/oscillator', the second \ y-ccordinate" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) endparam param osc41freq caption = "SetD Osc1 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's first oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) endparam param osc41sin caption = "SetD Osc1 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set D's first oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param osc42amp caption = "SetD Osc2 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) endparam param osc42freq caption = "SetD Osc2 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param osc42sin caption = "SetD Osc2 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param osc43amp caption = "SetD Osc3 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param osc43freq caption = "SetD Osc3 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param osc43sin caption = "SetD Osc3 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param osc44amp caption = "SetD Osc4 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's fourth oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param osc44freq caption = "SetD Osc4 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's fourth oscillator." visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param osc44sin caption = "SetD Osc4 Sine?" default = FALSE hint = "If enabled, then the sine function, rather than cosine, is used \ for Set D's fourth oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param o4offset caption = "Osc SetD Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set D \ calculation" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param o4absangle caption = "OscD Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param o4absresult caption = "OscD Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam heading caption = "Trap Positional Settings" endheading param @showpositionals caption = "Show Positional Params?" default = FALSE endparam param varyscale caption = "Vary Scale?" default = FALSE hint = "If set, the value of the trap will modify the trap siae each iteration; \ parameter 'ScaleFeedback' can be used to modulate the variation" visible = @showpositionals endparam param scalestp caption = "ScaleFeedback" default = 1.0 hint = "If 'Vary Scale' is set, this setting adjusts the amount of variation" visible = @varyscale && @showpositionals endparam param rotate caption = "Rotation Angle" default = 0.0 min = -179.98 max = 359.98 hint = "Number of degrees (0-359) that the trap should be rotated from its default position" visible = @showpositionals endparam param varyrotation caption = "Vary Rotation?" default = FALSE hint = "If set, the value of the trap will modify the trap rotation each iteration; \ parameter 'RotationFeedback' can be used to modulate the variation" visible = @showpositionals endparam param rotationstp caption = "RotationFeedback" default = 1.0 hint = "If 'Vary Rotation' is set, this setting adjusts the amount of variation" visible = @varyrotation && @showpositionals endparam param centr caption = "Center" default = (0,0) hint = "Enter coordinates of trap center" visible = @showpositionals endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the trap center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation. Only active \ if initial trap center is NOT (0,0)" visible = @showpositionals endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter && @showpositionals endparam param offsetangle caption = "Offset Angle?" default = FALSE hint = "If enabled, a constant angle can be added to the value of \ atan(z); set param 'AngleOffset Amount' to fix the increment. \ The increment is added before any adjustment by 'Spread Angle'" visible = @showpositionals endparam param offsetfactor caption = "AngleOffset Amount" default = -3.1415926536 hint = "If param 'Offset Angle?' is enabled, this is the increment \ added to atan(z). The angle is given in radians. \ Inactive if 'Spread Angle?' is not enabled. \ The increment is added before any adjustment by 'Spread Angle'" visible = @offsetangle && @showpositionals endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range of z is stretched out or compressed, \ depending on the value of param 'AngleSpread Factor'. Active after \ 'Offset Angle'" visible = @showpositionals endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle && @showpositionals endparam heading caption = "Color Settings" endheading param showcolors caption = "Show Color Params?" default = FALSE endparam param softendistance caption = "Soften Distance?" default = FALSE hint = "If enabled, coloring by distance is modified to smear out distances that \ fall very close to the trap. The effect can be adjusted with the two \ parameters 'Soft Distance' and 'Soft Exponent'" visible = @showcolors && ( (@colorby == 0) || (@colorby == 1) ) endparam param softdistamt caption = "Soft Distance" default = 0.05 min = 1e-10 hint = "If 'Soften Distance' is enabled, this value fixes the minimum distance \ at which the effect is active. Useful values are generally very small. \ The larger the value, the greater the smearing" visible = @showcolors && @softendistance && ( (@colorby == 0) || (@colorby == 1) ) endparam param softdistpwr caption = "Soft Exponent" default = 0.5 min = 1e-10 hint = "If 'Soften Distance' is enabled, this exponent sets the rate that the \ gradient changes as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance && ( (@colorby == 0) || (@colorby == 1) ) endparam param softaccel caption = "Soft Acceleration" default = 1.0 hint = "If 'Soften Distance' is enabled, this factor sets the rate that the \ 'Soft Exponent' grows as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance && ( (@colorby == 0) || (@colorby == 1) ) endparam param maxsoften caption = "Maxima Smoothing" default = 0.05 min = 1.0e-10 hint = "This parameter smoothes out the coloring when one of the maxima \ 'Trap What' values are chosen. Smaller is smoother" visible = @showcolors && ( (@whattotrap == 1) || (@whattotrap == 5) || \ (@whattotrap == 6) || (@whattotrap == 7) || (@whattotrap > 15) ) && \ ( (@colorby != 4) && (@colorby != 5) && (@colorby != 6) && \ (@colorby != 7) && (@colorby < 12) ) endparam param ranges caption = "Color Ranges" default = 1 min = 1 hint = "Applies different parts of the color palette to various portions of \ the image" visible = @showcolors endparam param maskranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Mask What Range?' and 'Mask Range If' can be \ set to mask the appropriate pixels. Only valid if 'Color Ranges' > 1" visible = (@ranges > 1) && @showcolors endparam param whatrange caption = "Mask What Range?" enum = "<=" ">=" "=" "not =" "between" "outside" default = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemin caption = "Range Value/Minimum" default = 1 min = 1 hint = "This is the range value that will be affected. If two limits are \ required, then this value is the lower (minimum) one. Use '1' for \ the first range" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemax caption = "Range Maximum" default = 2 min = 1 hint = "When two limits are required, this is the higher (maximum) range value \ that will be affected" visible = @maskranges && @showcolors && (@ranges > 1) && ((@whatrange == 4) || (@whatrange == 5)) endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^2)" "e^(1/(c^2))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^2))/c" "(e^(1/(c^2))/c" "c*e^(c^2)" "c*e^(1/(c^2))" \ "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" "(e^(-1/(c^2))/c" \ "c*e^(-c^2)" "c*e^(1/(-c^2))" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" visible = @showcolors endparam param cpower caption = "Color Power" default = 0.25 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = (@colorwarp == "c^power") && @showcolors endparam heading caption = "Mask Settings" endheading param showmasks caption = "Show Mask Params?" default = FALSE endparam param maskcombo caption = "Mask Combination Mode" enum = "or" "and" "not" "eor" "nor" "nand" "neor" "Aor!B" default = 0 hint = "If both Mask A and Mask B are enabled, then they will be combined \ as specified by this setting. The default, 'or', corresponds to \ completely independent masks" visible = @maskA && @maskB && @showmasks endparam param maskA caption = "Enable Mask A?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(A)?' and 'Mask If(A)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatA caption = "Mask What (A)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" default = 0 hint = "If 'Enable Mask A' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (A)'" visible = @showmasks && @maskA endparam param maskifA caption = "Mask If (A)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask A' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (A)'" visible = @showmasks && @maskA endparam param maskAmin caption = "Mask A Threshold" default = 0.1 hint = "If 'Enable Mask A' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskA endparam param maskAmax caption = "Mask A Maximum" default = 1.0 hint = "If 'Enable Mask A' is active and 'Mask If (A)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskA && ( (@maskifA == 2) || (@maskifA == 3) ) endparam param maskAmod caption = "Mask A Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskA endparam param maskB caption = "Enable Mask B?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(B)?' and 'Mask If(B)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatB caption = "Mask What (B)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" default = 2 hint = "If 'Enable Mask B' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (B)'" visible = @showmasks && @maskB endparam param maskifB caption = "Mask If (B)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask B' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (B)'" visible = @showmasks && @maskB endparam param maskBmin caption = "Mask B Threshold" default = 1.0 hint = "If 'Enable Mask B' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskB endparam param maskBmax caption = "Mask B Maximum" default = 1.0 hint = "If 'Enable Mask B' is active and 'Mask If (B)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskB && ( (@maskifB == 2) || (@maskifB == 3) ) endparam param maskBmod caption = "Mask B Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskB endparam heading caption = "Modifiers" endheading param showmodifiers caption = "Show Modifiers?" default = FALSE endparam param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations. Filling the 'History' array ignores this setting, \ so if 'History' is enabled, try a non-zero value here to have the \ array fill with previous gnerations of z before trapping begins" visible = @showmodifiers endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" visible = @showmodifiers endparam param trapvariant caption = "Z Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" visible = @showmodifiers endparam param varytraptype caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(trap) and imag(trap) before testing" visible = @showmodifiers endparam param operator caption = "Enable Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each iteration \ before testing; parameter 'Operator Constant' sets the constant \ value that is used in the operation" visible = @showmodifiers endparam param operatee caption = "Operation Constant" default = (-1, 1) hint = "If 'Enable Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@operator != "none") && @showmodifiers endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Trap Variants' and 'Enable Operator'. Normally, \ the trap variation is executed AFTER the arithmetic operation; this \ param toggles the execution order" visible = ( @trapvariant != "normal" ) && ( @operator != "none" ) && @showmodifiers endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" visible = @showmodifiers endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavamp caption = "T Wave Amplitude" default = 0.1 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavfreq caption = "T Wave Frequency" default = 10.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param screwmode caption = "Screwiness Type" enum = "none" "AR" "AI" "R" "I" "A+R" "A+I" "R-A" "I-A" "ARI" default = 0 hint = "If enabled, parts of real(z) or imag(z) are combined with atan(z) \ before input to the trap routines" visible = @showmodifiers endparam param absolutelyscrewy caption = "Absolutely Screwy?" default = FALSE hint = "If 'Screwiness Type' is active, then this alters the screwiness value" visible = @showmodifiers && (@screwmode != 0) endparam param modflavor caption = "Modify Flavor Param?" default = FALSE hint = "If enabled, initialized z, rather than raw #z, is used for some \ testing purposes; does not affect 'Flavor' modes 5-12 ('trap magnitude' \ through 'trap imaginary')" visible = @showmodifiers endparam ; param pointmode ; caption = "Enable Point Mode?" ; default = FALSE ; hint = "If set, trapping occurs normally until the first #a has been \ ; trapped using the usual criteria; subsequently, trapping is \ ; relative to this first trap point, rather than to the entire curve" ; visible = @showmodifiers ; endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = @showmodifiers && \ (@varyfBm || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter) endparam heading caption = "fBm Settings" endheading param showfbm caption = "Show fBm Params?" default = FALSE endparam param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" visible = @showfbm endparam param fBmamount caption = "fBm Amount" default = 1.0 hint = "Overall degree of fBm texturing, if enabled" visible = @fBm && @showfbm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm && @showfbm endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for 'Turbulence 3', fBm noise" visible = @fBm && @showfbm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm && @showfbm endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if 'Turbulence 3' is enabled" visible = @fBm && @showfbm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the 'Turbulence 3' fBm noise function" visible = @fBm && @showfbm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param 'Turbulence 3' is enabled \ for fBm randomiaation" visible = @fBm && @showfbm endparam param fbminit caption = "fBm Initialization" enum = "z" "mod z" "trap" default = 0 hint = "This setting defines the input to the fBm algorithm" visible = @fBm && @showfbm endparam param varyfBm caption = "Vary fBm?" default = FALSE hint = "If set, the value of the trap will modify the turbulence amount each \ iteration; parameter 'TurbulenceFeedback' can be used to modulate the variation" visible = @fBm && @showfbm endparam param fBmstp caption = "fBm Feedback" default = 1.0 hint = "If 'Vary fBm' is set, this setting adjusts the amount of variation" visible = @varyfBm && @fBm && @showfbm endparam heading caption = "Texture Settings" endheading param showtex caption = "Show Texture Settings?" default = FALSE endparam param texture caption = "Enable Texture?" default = FALSE hint = "If enabled, up to four texture function scan be specified" visible = @showtex endparam param texfunc1 caption = "Texture Func 1" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 37 hint = "This is the first of four texture functions" visible = @showtex && @texture endparam param texfunc2 caption = "Texture Func 2" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 12 hint = "This is the first of four texture functions" visible = @showtex && @texture endparam param texfunc3 caption = "Texture Func 3" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 15 hint = "This is the first of four texture functions" visible = @showtex && @texture endparam param texfunc4 caption = "Texture Func 4" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 12 hint = "This is the first of four texture functions" visible = @showtex && @texture endparam param tex2power caption = "Texture Func Power" default = 4.0 hint = "This is the exponent if any of params 'Texture Func 1', \ 'Texture Func 2', 'Texture Func 3', or 'Texture Func 4' are \ set to 'x^power'" visible = @showtex && ((@texfunc1 == "x^power") || (@texfunc2 == "x^power") \ || (@texfunc3 == "x^power") || (@texfunc4 == "x^power")) && @texture endparam param texamount caption = "Texture Amount" default = 0.03 hint = "This param sets the overall amount of texture, if enabled" visible = @showtex && @texture endparam param texpower caption = "Texture Power" default = 1.0 hint = "Params 'Tex Power' & 'Tex Scale' set the initial levels in the \ texture algorithm" visible = @showtex && @texture endparam param texscale caption = "Texture Scale1" default = 20.0 hint = "Params 'Tex Power' & 'Tex Scale' set the initial levels in the \ texture algorithm; 'Tex Scale1' \ affects the size of the texture pattern" visible = @showtex && @texture endparam param texoffset caption = "Texture Offset" default = (-1,1) hint = "This param modifies the texture pattern" visible = @showtex && @texture endparam param texmod caption = "Texture Scale2" default = 5.0 hint = "This param sets the final level in the texture algorithm; \ affects the shapes made by the texture functions" visible = @showtex && @texture endparam param texinit caption = "Texture Initialization" enum = "z" "mod z" "trap" default = 0 hint = "This setting defines the input to the texture algorithm" visible = @showtex && @texture endparam heading caption = "Modulator Functions" endheading param showmodulators caption = "Show Modulator Funcs?" default = FALSE hint = "The order of the modulator functions is as follows: The two 'Front End' \ functions operate on the real and imaginary parts of the current z iterate; \ then the 'Z Initialization' function transforms the front-end modified z; \ after trapping, the trap point can be further altered with 'Trap Transmute'; \ and finally, the transmuted trap real and imaginary components can be \ modulated with the two 'Back End' functions" endparam param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "1/z^2" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" "z^power" \ "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" \ "e^(z^2)" "e^(1/(z^2))" "abs(z)" "round(z)" "trunc(z)" \ "ceil(z)" "floor(z)" "z/log(z)" "log(z)/z" "(e^z)/z" "(e^(1/z))/z" \ "(e^(z^2))/z" "(e^(1/(z^2))/z" "z*e^(z^2)" "z*e^(1/(z^2))" \ "e^(-z^2)" "e^(-1/(z^2))" "(e^(-z^2))/z" "(e^(-1/(z^2))/z" \ "z*e^(-z^2)" "z*e^(-1/(z^2))" default = 0 hint = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap, but after the two 'Front End' modulators" visible = @showmodulators endparam param zpower caption = "Z Power" default = (4,0) hint = "Z exponent if param 'Z Initialization' is set to 'z^power'" visible = (@initialization == "z^power") && @showmodulators endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate a \ before a initialization" visible = @showmodulators endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@initialization != "z") && @showmodulators endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb && (@initialization != "z") && @showmodulators endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" \ "e^(t^2)" "e^(1/(t^2))" "abs(t)" "round(t)" "trunc(t)" \ "ceil(t)" "floor(t)" "t/log(t)" "log(t)/t" "(e^t)/t" "(e^(1/t))/t" \ "(e^(t^2))/t" "(e^(1/(t^2))/t" "t*e^(t^2)" "t*e^(1/(t^2))" \ "e^(-t^2)" "e^(-1/(t^2))" "(e^(-t^2))/t" "(e^(-1/(t^2))/t" \ "t*e^(-t^2)" "t*e^(-1/(t^2))" default = 0 hint = "The point, t, on the trap can be further transformed \ prior to testing; select 't' for no transmutation. \ Transmutation does not affect a few trap flavors. Transmutation \ occurs before the two 'Back End' modulations" visible = @showmodulators endparam param tpower caption = "Trap Power" default = (4,0) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power'" visible = (@transmogrify == "t^power") && @showmodulators endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" visible = @showmodulators endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@transmogrify != "t") && @showmodulators endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb && (@transmogrify != "t") && @showmodulators endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" visible = @showmodulators endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = (@realfront == "r^power") && @showmodulators endparam param rfscale caption = "Real(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realfront != "r") && @showmodulators endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(a). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb && (@realfront != "r") && @showmodulators endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" visible = @showmodulators endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = (@imagfront == "i^power") && @showmodulators endparam param ifscale caption = "Imag(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagfront != "i") && @showmodulators endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(a). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb && (@imagfront != "i") && @showmodulators endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = (@realback == "r^power") && @showmodulators endparam param rbscale caption = "Real(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realback != "r") && @showmodulators endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb &&(@realback != "r") && @showmodulators endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = (@imagback == "i^power") && @showmodulators endparam param ibscale caption = "Imag(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagback != "i") && @showmodulators endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb && (@imagback != "i") && @showmodulators endparam heading caption = "Absolute Value Options" endheading param showabsolutes caption = "Show Absolute Options?" default = FALSE hint = "Options based on use of absolute values. Not all absolute options \ are always available, depending upon other settings" endparam param absolutez caption = "Absolute A?" default = FALSE hint = "Affects z at the top of the iteration loop" visible = @showabsolutes endparam param absoluter caption = "Absolute B?" default = FALSE hint = "Affects real(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absolutei caption = "Absolute C?" default = FALSE hint = "Affects imag(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absoluter2 caption = "Absolute D?" default = FALSE hint = "Affects input to front end real modulator function" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absoluter3 caption = "Absolute E?" default = FALSE hint = "Affects front end real modulator function output (result)" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absolutei2 caption = "Absolute F?" default = FALSE hint = "Affects input to front end imaginary modulator function" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutei3 caption = "Absolute G?" default = FALSE hint = "Affects front end imag modulator function output (result)" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutez2 caption = "Absolute H?" default = FALSE hint = "Affects z initialization modulator function result" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) endparam param absoluter4 caption = "Absolute I?" default = FALSE hint = "Affects real part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutei4 caption = "Absolute J?" default = FALSE hint = "Affects imaginary part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutez3 caption = "Absolute K?" default = FALSE hint = "Affects z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes endparam param absoluter5 caption = "Absolute L?" default = FALSE hint = "Affects real z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutei5 caption = "Absolute M?" default = FALSE hint = "Affects imag z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutet caption = "Absolute N?" default = FALSE hint = "Affects trap point coordinates before transmute" visible = @showabsolutes endparam param absoluter6 caption = "Absolute O?" default = FALSE hint = "Affects trap point real coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutei6 caption = "Absolute P?" default = FALSE hint = "Affects trap point imag coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutet2 caption = "Absolute Q?" default = FALSE hint = "Affects trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) endparam param absoluter7 caption = "Absolute R?" default = FALSE hint = "Affects real coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam param absolutei7 caption = "Absolute S?" default = FALSE hint = "Affects imaginary coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam ; ------------------------------------------------------------------- ; Morph Parameters ; ------------------------------------------------------------------- heading caption = "Morph Parameters" visible = (@change == 0 && @exp1 == (1,0) && @exp2 == (1,0) && @exp1 == (1,0) \ && @tw == (0,0) && @tw2 == (0,0) && @tw3 == (0,0) && @th2 == false) endheading heading caption = "Morph Parameters [active]" visible = (@change != 0 || @exp1 != (1,0) || @exp2 != (1,0) || @exp1 != (1,0) \ || @tw != (0,0) || @tw2 != (0,0) || @tw3 != (0,0) || @th2 == true) endheading param adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param th2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @th2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @adv && @th2 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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @adv && @th2 endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @adv && @th2 && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @adv && @th2 && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @adv && @th2 endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @adv && @th2 && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @adv && @th2 && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @th2 endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @th2 && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @adv && @th2 endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @adv && @th2 && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @adv && @th2 && @change > 5 endfunc } ******************************************************************* tm+mt+gn+sdc-painter's_traps { ; ****NOTE**** ; I suggest that for first explorations you go to "Lighting Parameters" ; and check the box marked "Invert Lighting", as this gives very nice ; 3D trap shapes. I have left it unchecked to ensure backward ; compatibility with earlier versions of the coloring. ; ; *** I *highly* recommend that you have a look at the help file ; I have included in tma.txt,(you'll find it in the "Formulas" folder ; using Windows Explorer). It goes into more detail than is possible ; in this comments section and includes one demo upr at the end. ; This is a highly complex coloring with a bewildering array of ; parameters. It might even be helpful to print put the help text and ; have it to refer to. I do think that you will get the most out of ; this UCL if you do a bit of study first. Also don't forget to check ; the parameters and functions for hints; many have them although ; they are necessarily limited in detail. ; ; This UCL renders rather slowly, so people with older machines ; are going to need some patience*** ; ; OVERVIEW ; ; This coloring is based on "Soft Gnarly" by Mark Townsend. Gilles ; Nadeau undertook to expand on that original ucl and added some ; functionality, as did Susan Chambless. I endeavored to take their ; work yet further, adding a number of features including more ; params and functions, texturing, masking and various coloring ; modes. ; ; A major step which divides this coloring from its forebear ; is the possibility of adding Plane Curve Trap shapes, with ; or without the pixel pattern overlay. ; ; This coloring is composed of nine traps, whose interaction in ; large part determines the fact that the overlaying pixel pattern ; influences the element shapes beneath--especially in 'Soft ; Gnarly' mode. I have added various modes in which these traps ; can interact, giving different effects: ; ; Separate: in this mode the Z type of each individual trap ; can be set, for varying effects. ; ; Chained: this mode is similar in effect to "Separate" but as ; a convenience all Z types are changed together. ; ; In either mode a "Spread" of 0 gives the most "solid looking" ; elements. Use "Spread" for special effects in element ; overlapping, etc. ; ; *NOTE* When using the trapping mode "Last" you need to set "No. of ; Test Points" to 1 and have "Include Root Trap" unchecked. ; ; I have included the option of choosing the "trapping ; recipe." In essence this provides different ways to trap the ; elements in coloring modes other than "Distance". The ; "Straight" option determines the elements shapes strictly ; depending on the trap shape (with whatever pixel overlay), ; so that the edges of an Iteration layer, for instance, ; should exactly correspond with those of a Distance layer. ; This is the usual method. "Funky" determines the element shapes ; in coloring modes other than Distance differently, for more ; "creative" effects. There are a number of parameters and ; functions, such as "Funky/Texture Fn", "Funky/Tx Power" and ; "Mode Intensity" which will influence this. Note that this ; option does not work well if "Toplight" is chosen as a lighting ; method (as described below), nor does it work or appear in ; "Soft Gnarly" mode. ; ; Also new is "Lighting", which in "Plane Curve Traps" mode ; changes the seeming dimensionality of the elements. In ; adjunct to this check out "Element Dimensionality", ; "Element Solidity" and "Element Shape". "Final Z Function" ; also works in tandem with "Lighting" for more effects. ; ; An interesting new feature in this coloring is the ; introduction of "Progressive Parameters". These ; implement existing parameters but instead of applying ; a constant value they increase (or decrease if you ; enter negative numbers) with each iteration. Credit ; for this nifty little feature has to go to Ken ; Childress for his coding knowledge and skill. ; And thanks too to Keith Mackay for the germ of ; the idea. ; ; Because of the number of features incorporated this ucl is ; necessarily quite complex. I have tried to rationalize ; the ordering of the parameters and functions. They become ; visible only when they apply. Most also include hints: ; be sure to check them out. ; ; Apart from "Plane Curve Traps" mode, "Soft Gnarly" offers many ; more options than the original,while retaining its look. ; For those familiar with the original "Soft Gnarly" please note ; that the Scales are now automatically linked while allowing the ; percentage of pattern overlay to vary continuously. A few param ; names have been changed and some have been moved, but all the ; original functionality remains. Try varying the "Trap Config" ; and associated type, and Morph params for interesting ; variations in the element shapes. ; ; Textures affect either traps or pixel patterns, depending on ; which variable init is chosen. Likewise coloring modes offer ; options affecting either traps or pixel patterns. ; ; Many thanks are due to many people: to Mark Townsend for so ; generously allowing his wonderful work to be tweaked, to ; Michèle Dessureault, Andreas Lober, Damien M. Jones and ; Dennis Magar for allowing their texture code to be used, ; and to Ken Childress for many of the Plane Curve Trap shapes. ; ; I feel that we have managed to expand on Mark's ingenious ; and inventive original, and hope that you find this ; version interesting, entertaining and worthwhile. ; ; Toby Marshall ; ; ver 2.32, 6 Dec. 2004 ; ver 2.33, 10 Dec. 2004 -- added a "distance function" for all trap ; configurations--a single one for "Chained" and one for each trap in ; "Separate". Added two new "Lighting" options. ; ver 2.34, 11 Dec. 2004 -- added three more "Lighting" options. Renamed ; "Final Z Function" as "Lighting Function 1" and moved it under "Lighting". ; ver 2.35, 11 Jan. 2005 -- optimized Morph code and fixed a bug in ; progressive parameters. Older uprs are backward-compatible. ; ver 2.4, 14 Mar. 2005 -- more Morph optimization, added lots of ; new parameters and functions that affect the X, Y and final Z ; variables. ; ver 2.41 -- added some new stuff to the fBm texture section. ; Check the hints. ; ver 2.5 -- changed the default lighting mode to something I ; find more useful. Added a new parameter "Trapping Mode" and ; a parameter "Element Width" to control it. For trapping mode ; "Last" you need to set "No. of Test Points" to 1 and uncheck ; "Include Root Trap". Also fixed a bug which kept Morph II ; from working correctly. ; ver 2.51 -- reset "Invert Lighting" param to false to ensure ; backward compatibility. ; ver 2.52, 15 Mar 2006 -- fixed a problem with the visibility of one param: ; (Fill Light Type). ; ver 2.53, 21 Mar 2008 -- added "Edge Definition" param. Changed default ; to show no pattern. ; ver 2.54, 8 Apr 2008 -- added "limited iterations"; many thanks to ; Damien M. Jones for letting me use this code of his. ; ver 2.55 9 Apr 2008 -- added a pattern repeat param to the limited ; iter code, adapted from Ron Barnett. ; ver 2.56 13 Apr 2008 -- rationalized and standardized limited ; iter code. ; ver 2.57 15 Apr 2008 -- added "Trap Center" param. ; init: complex zq = (0,0) complex ztt = (0,0) complex ztu = (0,0) float za = 0 float rn = real(#random) int itt = 0 complex tza = (0,0) float aaa = 0 float t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float sum = 0 float xzx = 0 float yzy = 0 float tmp = 0 int points = 0 int trap_i = 0 complex ztest = (0,0) complex p = (0,0) complex ptp = (0,0) complex trap_p = (0,0) complex trap_z = (0,0) complex trap2_z = (0,0) complex trap3_z = (0,0) complex tz = (0,0) float x = 0 float y = 0 float texture = 0.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 float xxx = 0 float yy = 0 pfb = (0,0) ppp = (0,0) int i = 0 float aaa = 0 float texture_tr = 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] complex zz = (0,0) int i = 0 bool trapped = false bool trapping = false float fiter = 0 float patnum = 0 if @addAbs == "Normal" p = #pixel / @scale1 elseif @addabs == "Symmetry" p = abs(#pixel) / @scale1 elseif @addAbs == "Flip Symmetry" p = abs(flip(#pixel)) / @scale1 endif p = @fnp(p- @pp3)^@pp2 float xx = 0 float x = real(@fnrr(p)^@exr) / @scale2 float y = imag(@fnii(p)) / @scale3 if @formula < 6 while (i < @iters) xx = x if @formula == "Martin" x = real(@fnmy1((y-@my)*@mym)^@mye) - real(@martfn((x-@mx)*@mxm)^@mxe) y = @a - real(@fnm1((xx-@mxx)*@mxxm)^@mxxe) elseif @formula == "Popcorn" x = x - @h1r * real(@popfn1(y + @popfn2(@a * y))) y = y - @h1i * real(@popfn3(xx + @popfn4(@a * xx))) elseif @formula == "Vine" if @flavor == 0 x = x - @h2r * real(@vinfn1(y + @vinfn3(@a * y ))) y = y + @h2i * real(@vinfn2(xx + @vinfn4(@a * xx))) elseif @flavor == 1 x = x - @h2r * real(@vinfn1(y^@b + @vinfn3(@a * y))) y = y + @h2i * real(@vinfn2(xx^@b + @vinfn4(@a * xx))) elseif @flavor == 2 x = x - @h2r * real(@vinfn1(y + @vinfn3(@a * (y + @vinfn5(@a * y))))) y = y + @h2i * real(@vinfn2(xx + @vinfn4(@a * \ (xx + @vinfn6(@a * xx))))) else float newx = real(@vinfn7(y)) float newy = real(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 newx = y + sin(@a * newx) newy = x + sin(@a * newy) endwhile x = x - @h3r * real(@vinfn9(newx)) y = y + @h3i * real(@vinfn10(newy)) endif elseif @formula == "Glyph" float newx = real(@glyfn11(y)) float newy = real(@glyfn12(x )) int j = 0 while j < @flavor j = j + 1 newx = real(@glyfn3(y)) + @h4r * real(@glyfn5(@a * newx)) + \ imag(flip(@h5r)) * real(@glyfn1(@a * newx)) newy = real(@glyfn4(x)) + @h4i * real(@glyfn6(@a * newy)) + \ imag(flip(@h5i)) * real(@glyfn2(@a * newy)) endwhile x = real(@glyfn9(x)) - @h6r * real(@glyfn7(newx)) - \ imag(flip(@h7r)) * real(@glyfn13(newx)) y = real(@glyfn10(y)) + @h6i * real(@glyfn8(newy)) + \ imag(flip(@h7i)) * real(@glyfn14(newy)) elseif @formula == "Gnarl" x = x - @h8r * real(@gn1(y + @gn2(@a * (y + @gn3(@b * y))))) y = y + @h8i * real(@gn1(xx + @gn2(@a * (xx + @gn3(@b * xx))))) elseif @formula == "Hopalong" float sx = 1.0 if x < 0 sx = @sx endif float tx = real(@fnhop(x)) x = y - sx * sqrt(abs(@pB * x - @pC)) y = @pA - tx endif i = i + 1 endwhile x = x * (@pvol2/100) * (@pvol/100) * @scale1 y = y * (@pvol3/100) * (@pvol/100) * @scale1 if @nuflav == true if @nuflav2 == true if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = @nufny2((flip(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^@pvol2b) endif else if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = flip((@nufny2(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @nuflav2 == true if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = @nufny2((flip(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif else if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = flip((@nufny2(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif endif z1a = 0 z2a = 0 z3a = 0 z4a = 0 z5 = 0 z6 = 0 z7 = 0 z8 = 0 complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,0) complex qwe = (0,0) complex rty = (0,0) complex uio = (0,0) complex z1p = (0,0) complex z1q = (0,0) complex nuvar = (0,0) float rat = 0 float qw =0 float er =0 float ty =0 float ui =0 float as =0 float df =0 float gh =0 float jk =0 float xc =0 float dist0 = 0 float dist1 = 0 float dist2 = 0 float dist3 = 0 float dist4 = 0 float dist5 = 0 float dist6 = 0 float dist7 = 0 float dist8 = 0 float min_dist0 = 1e20 float min_dist1 = 1e20 float min_dist2 = 1e20 float min_dist3 = 1e20 float min_dist4 = 1e20 float min_dist5 = 1e20 float min_dist6 = 1e20 float min_dist7 = 1e20 float min_dist8 = 1e20 bool masked = false rotation = @rotation size = @size rat = @rat shapeAdjust1 = @shapeAdjust1 shapeAdjust2 = @shapeAdjust2 shapeAdjust3 = @shapeAdjust3 shapeAdjust4 = @shapeAdjust4 shapeAdjust5 = @shapeAdjust5 shapeAdjust6 = @shapeAdjust6 shapeAdjust7 = @shapeAdjust7 shapeAdjust8 = @shapeAdjust8 shapeAdjust9 = @shapeAdjust9 shapeAdjust10 = @shapeAdjust10 shapeAdjust11 = @shapeAdjust11 shapeAdjust12 = @shapeAdjust12 tw = @tw tw2= @tw2 tw3 = @tw3 tw4 = @tw4 tw5 = @tw5 tw6 = @tw6 exp1 = @exp1 exp2 = @exp2 exp3 = @exp3 exp4 = @exp4 exp5 = @exp5 exp6 = @exp6 zval = @zval zval2 = @zval2 zval3 = @zval3 test2 = @test2 test3 = @test3 expx = @expx expy = @expy kp1 = @p1 kp2 = @p2 q1 = @q1 q2 = @q2 zzort = @zzort zzort2 = @zzort2 loop: complex z1 = #z if @th2 == false qwe = @nufunc(z1-tw)^exp3 rty = @nufunc2((z1-tw2)^exp1) uio = @nufunc3((z1-tw3)^exp2) if @change == "1" z1 = @nufunc(z1-tw)^exp1 elseif @change == "2" z1 = qwe+rty elseif @change == "3" z1 = qwe-rty elseif @change == "4" z1 = qwe*rty elseif @change == "5" z1 = qwe/rty elseif @change == "6" z1 = qwe^rty elseif @change == "7" if @op == "+" z1 = qwe+(rty+uio) elseif @op == "-" z1 = qwe+(rty-uio) elseif @op == "*" z1 = qwe+(rty*uio) elseif @op == "/" z1 = qwe+(rty/uio) elseif @op == "^" z1 = qwe+(rty^uio) endif elseif @change == "8" if @op == "+" z1 = qwe-(rty+uio) elseif @op == "-" z1 = qwe-(rty-uio) elseif @op == "*" z1 = qwe-(rty*uio) elseif @op == "/" z1 = qwe-(rty/uio) elseif @op == "^" z1 = qwe-(rty^uio) endif elseif @change == "9" if @op == "+" z1 = qwe*(rty+uio) elseif @op == "-" z1 = qwe*(rty-uio) elseif @op == "*" z1 = qwe*(rty*uio) elseif @op == "/" z1 = qwe*(rty/uio) elseif @op == "^" z1 = qwe*(rty^uio) endif elseif @change == "10" if @op == "+" z1 = qwe/(rty+uio) elseif @op == "-" z1 = qwe/(rty-uio) elseif @op == "*" z1 = qwe/(rty*uio) elseif @op == "/" z1 = qwe/(rty/uio) elseif @op == "^" z1 = qwe/(rty^uio) endif elseif @change == "11" if @op == "+" z1 = qwe^(rty+uio) elseif @op == "-" z1 = qwe^(rty-uio) elseif @op == "*" z1 = qwe^(rty*uio) elseif @op == "/" z1 = qwe^(rty/uio) elseif @op == "^" z1 = qwe^(rty^uio) 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+z1" nuvar = aa elseif @mmode == "z-z1" nuvar = bb elseif @mmode == "z1-z" nuvar = cc endif if @version <= 2.34 if @change == "1" z1 = nuvar^exp1 elseif @change == "2" if @mmode2 == "z+z2" z1 = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3+@nufunc5(ff/gg)^exp1 endif elseif @change == "3" if @mmode2 == "z+z2" z1 = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3-@nufunc5(ff/gg)^exp1 endif elseif @change == "4" if @mmode2 == "z+z2" z1 = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3*@nufunc5(ff/gg)^exp1 endif elseif @change == "5" if @mmode2 == "z+z2" z1 = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3/@nufunc5(ff/gg)^exp1 endif elseif @change == "6" if @mmode2 == "z+z2" z1 = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3^@nufunc5(ff/gg)^exp1 endif elseif @change == "7" if @mmode3 == "z+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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 else if @change == "1" z1 = nuvar^exp1 elseif @change == "2" if @mmode2 == "z+z2" z1 = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3+@nufunc5(ff/gg)^exp1 endif elseif @change == "3" if @mmode2 == "z+z2" z1 = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3-@nufunc5(ff/gg)^exp1 endif elseif @change == "4" if @mmode2 == "z+z2" z1 = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3*@nufunc5(ff/gg)^exp1 endif elseif @change == "5" if @mmode2 == "z+z2" z1 = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3/@nufunc5(ff/gg)^exp1 endif elseif @change == "6" if @mmode2 == "z+z2" z1 = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1 = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1 = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1 = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1 = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/z" z1 = nuvar^exp3^@nufunc5(ff/gg)^exp1 endif elseif @change == "7" if @mmode3 == "z+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3+@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3+@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3+@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3+@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3+@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3-@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3-@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3-@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3-@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3-@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3*@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3*@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3*@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3*@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3*@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3/@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3/@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3/@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3/@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3/@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^exp6-pp)^exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^exp6/pp)^exp2 endif if @mmode2 == "z+z2" z1p = nuvar^exp3^@nufunc2(kk+dd)^exp1 elseif @mmode2 == "z-z2" z1p = nuvar^exp3^@nufunc2(kk-dd)^exp1 elseif @mmode2 == "z2-z" z1p = nuvar^exp3^@nufunc5(ff-gg)^exp1 elseif @mmode2 == "z*z2" z1p = nuvar^exp3^@nufunc2(kk*dd)^exp1 elseif @mmode2 == "z/z2" z1p = nuvar^exp3^@nufunc2(kk/dd)^exp1 elseif @mmode2 == "z2/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 if i >= @skip && i < @show if @version < 2.56 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @pct == "Plane Curve Traps" ztest = @fntest(z1-test2)^test3 if @pctshape == "Normal" ztest = (ztest-@c) * exp(1i*pi/180*rotation)/size elseif @pctshape == "Acosh" ztest = (ztest-@c) * acosh(1i*pi/180*rotation)/size elseif @pctshape == "Acos" ztest = (ztest-@c) * acos(1i*pi/180*rotation)/size endif float xzx = real(@fnxzx(rat))*real(@fnxx(ztest*kp1)^kp2) float yzy = 1/real(@fnyzy(rat))*imag(@fnyy(ztest*q1)^q2) xzx = real(@fncx(xzx)^expx) yzy = real(@fncy(yzy)^expy) if @flav == true zz = @tn3(@tn1(real(ztest-@zparam1)) + \ flip(@tn2(imag(ztest-flip(@zparam2))))) else zz = @tn3(real(@tn1(ztest-@zparam1)) + \ flip(imag(@tn2(ztest-flip(@zparam2))))) endif if @trapType == "Alien Waves" zz = @fn1(@fn2(((yzy*shapeAdjust1)/@fn5(xzx*shapeAdjust4))\ ^@fn4(yzy^shapeAdjust2)-@fn6(xzx^shapeAdjust5)-\ @fn3(yzy+(1-shapeAdjust3))))-zzort elseif @trapType == "Bad Hair Day" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn5(yzy^shapeAdjust2)* \ @fn3(yzy*shapeAdjust3))+@fn4(xzx+(1-shapeAdjust4)))-zzort elseif @trapType == "Barbed Wire" zz = @fn1(abs(@fn2(xzx^shapeAdjust4*shapeAdjust1))+ \ abs(@fn3((yzy*shapeAdjust3)^@fn4(yzy*shapeAdjust2)))-1)- zzort elseif @trapType == "Baubles & Bangles" zz = @fn1((@fn2(xzx^(2*shapeAdjust1)-1))^2+@fn3 \ (yzy^2+(1-shapeAdjust2))* @fn4(yzy^(.2*shapeAdjust3)-1) \ *@fn5(yzy*shapeAdjust4-2)* @fn6(yzy+(3-shapeAdjust5)))-zzort elseif @trapType == "Bighorn Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+(@fn3(yzy^2*shapeAdjust2)* \ @fn4(yzy^2+(1-shapeAdjust6)))*@fn5(yzy^(5-shapeAdjust7))/ \ @fn6(xzx^(2*shapeAdjust3))*@fn7(xzx^2*shapeAdjust4-@fn8 \ (yzy^shapeAdjust5)))-zzort elseif @trapType == "Binary Curve" zz = @fn1((@fn2(xzx^(3-shapeAdjust5))-shapeAdjust1)/@fn3 \ (xzx^2-2*shapeAdjust3)^2+ @fn4(yzy^(2-shapeAdjust4)- \ shapeAdjust2^2)^2)-zzort elseif @trapType == "Bird of Paradise" zz = @fn1(atan(@fn4((xzx*shapeAdjust1)*@fn3(yzy^shapeAdjust3)))- \ @fn2(yzy*shapeAdjust2))-zzort elseif @trapType == "Cabuchon Curve" zz = @fn1(@fn2(xzx^(shapeAdjust3)))-@fn3(yzy^(2*shapeAdjust4))/ \ shapeAdjust1^2-@fn4((xzx^(2*shapeAdjust7)) \ +@fn6(yzy^2+(1-shapeAdjust6)))/shapeAdjust2^2-@fn5 \ (xzx*shapeAdjust5)-zzort elseif @trapType == "Cardinal Points Curve" zz = @fn1(@fn2(xzx^4+(1-shapeAdjust2))-@fn3(yzy^(3+shapeAdjust3))-2* \ @fn4(abs(xzx^(3-shapeAdjust4))-@fn5(yzy^2*shapeAdjust1)))-zzort elseif @trapType == "Chaos Adorned" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn6(yzy^shapeAdjust2)* \ @fn3(yzy*shapeAdjust3))+@fn4(xzx+(1-shapeAdjust4))^ \ @fn5(yzy^(2*shapeAdjust5)))-zzort elseif @trapType == "Chaos Unleashed" zz = @fn1(shapeAdjust1^4*@fn2((yzy^shapeAdjust3)^@fn5 \ (yzy*shapeAdjust4))-shapeAdjust2^2*@fn3((xzx^shapeAdjust5) \ ^@fn6(xzx+(1-shapeAdjust6)))* (2*shapeAdjust1-@fn4 \ (xzx^shapeAdjust7)))-zzort elseif @trapType == "Church Key Curve" zz = @fn1(@fn2((xzx*shapeAdjust4)^shapeAdjust1))+ \ @fn3(yzy*2.4*shapeAdjust2)^@fn4(yzy-(1-shapeAdjust3))-zzort elseif @trapType == "Compass Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)+ \ @fn4(yzy^2*shapeAdjust4))-shapeAdjust2^2* \ @fn5(xzx^(2*shapeAdjust5)))-zzort elseif @trapType == "Conductor's Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(@fn3((xzx*.2*shapeAdjust6)* \ @fn9(yzy*shapeAdjust2))-@fn4(yzy^2+(1-shapeAdjust7)))* \ @fn5(yzy^(4*shapeAdjust3))-@fn6(xzx^(2*shapeAdjust8))/\ @fn7(xzx^(2*shapeAdjust4)-@fn8(yzy^(.5*shapeAdjust5))))-zzort elseif @trapType == "Conjoined Circle Curve" zz = @fn1((@fn2(xzx^(2*shapeAdjust2))+@fn3(yzy^(2*shapeAdjust3)))*\ (@fn4(yzy^shapeAdjust4)/@fn5(yzy^shapeAdjust5))-shapeAdjust1- \ abs(@fn6(yzy^shapeAdjust6)))-zzort elseif @trapType == "Cooking Pot Curve" zz = @fn1(@fn2(yzy^2*shapeAdjust2)-(shapeAdjust1^2- \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*(shapeAdjust5)))+2* \ shapeAdjust4*@fn5(yzy^(2*shapeAdjust6))-shapeAdjust1^2)^2- \ zzort elseif @trapType == "Cosmic Rays" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))*@fn3(yzy^(2*shapeAdjust3))+ \ @fn4(yzy-shapeAdjust4)/@fn5(yzy^(3*shapeAdjust2)))-zzort elseif @trapType == "Crochet Hooks" zz = @fn1(@fn2(yzy^3*shapeAdjust1)+(@fn3((xzx+(1-shapeAdjust2))^ \ @fn5(yzy^shapeAdjust3)/@fn4((xzx*shapeAdjust4)^shapeAdjust5))))- \ zzort elseif @trapType == "Crosshatch Curve" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn4(yzy^shapeAdjust2)* \ @fn3(yzy+(1-shapeAdjust3))))-zzort elseif @trapType == "D&U Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))+@fn3((yzy^(2*shapeAdjust4))^ \ @fn4(yzy*shapeAdjust2))-shapeAdjust3)-zzort elseif @trapType == "Dogleg Curve" zz = @fn1(atan(@fn4((xzx*shapeAdjust1)+@fn3(yzy^shapeAdjust4)* \ shapeAdjust2))-@fn2(yzy^shapeAdjust3))-zzort elseif @trapType == "Double Circle Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2*shapeAdjust3))*\ (@fn4(yzy^shapeAdjust4)/@fn5(yzy^shapeAdjust5))-shapeAdjust1* \ abs(@fn6(yzy^shapeAdjust6)))-zzort elseif @trapType == "Double Trine" zz = @fn1(atan(@fn4((xzx*shapeAdjust1)*@fn3(yzy^shapeAdjust3)))- \ @fn2(yzy*shapeAdjust2)/@fn5(xzx^shapeAdjust4))-zzort elseif @trapType == "Dribs & Drabs" zz = @fn1((@fn2(xzx^shapeAdjust2)+@fn3(yzy^(2+shapeAdjust3))^ \ @fn6(yzy^shapeAdjust6)-4*@fn4(xzx^(3*shapeAdjust4))* \ @fn5(yzy^(2*shapeAdjust5))*shapeAdjust1^2))-zzort elseif @trapType == "Driftwood Curve" zz = @fn1(((@fn2(xzx^shapeAdjust3)-.5*shapeAdjust10)^2+ \ @fn3(yzy^2+(1-shapeAdjust4)))*(@fn4(yzy+(1-shapeAdjust5))* \ (@fn5(xzx-(shapeAdjust6-1))-shapeAdjust11)+ \ @fn6(yzy^(1+shapeAdjust7)))+4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust8-1))-1.5*shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust9)))-zzort elseif @trapType == "Dulcimer Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2*shapeAdjust3))*\ (@fn4(yzy^shapeAdjust4)*@fn5(yzy^shapeAdjust5))-shapeAdjust1* \ abs(@fn6(yzy^shapeAdjust6)))-zzort elseif @trapType == "Eye of the Needle" zz = @fn1((@fn2(yzy^(2*shapeAdjust7))-@fn3(xzx^2+(1-shapeAdjust8)))* \ @fn4((xzx^shapeAdjust9)-@fn9(yzy*shapeAdjust4))* \ (shapeAdjust1*@fn5(xzx*shapeAdjust10)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust6)+@fn7(yzy^2*shapeAdjust3)-2*@fn8 \ (xzx^shapeAdjust5))^2*shapeAdjust1)-zzort elseif @trapType == "Exclamation Point" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))/@fn3(yzy^(2*shapeAdjust3))+ \ @fn4(yzy-shapeAdjust4)*@fn5(yzy^(3*shapeAdjust2)))-zzort elseif @trapType == "Fatback" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))/@fn3(yzy^(2*shapeAdjust3))+ \ @fn4(yzy-shapeAdjust4)/@fn5(yzy^(3*shapeAdjust2)))-zzort elseif @trapType == "Floreate Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3((yzy*shapeAdjust4)^ \ @fn4(yzy*shapeAdjust2))-shapeAdjust3)-zzort elseif @trapType == "Glyph Curve" zz = @fn1(((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2- \ @fn3(yzy^2*shapeAdjust4))*(@fn4(xzx+(1-shapeAdjust5))* \ (@fn5(xzx-(shapeAdjust6-1))-shapeAdjust2)+ \ @fn6(yzy^(1+shapeAdjust7)))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust8-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust9)))-zzort elseif @trapType == "Gravity Waves" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))+@fn3(yzy^shapeAdjust4)* \ 2*shapeAdjust2))-@fn2(yzy^shapeAdjust3))-zzort elseif @trapType == "Harpoon Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust3)))*@fn3(yzy^2*shapeAdjust4)+ \ shapeAdjust1^2-@fn4((xzx*shapeAdjust7)^@fn6(yzy*shapeAdjust6))- \ shapeAdjust2^2-@fn5(xzx^shapeAdjust5)-zzort elseif @trapType == "Hook & Spar" zz = @fn1(@fn2(yzy^shapeAdjust1))-@fn3(yzy*shapeAdjust2)^ \ @fn4(xzx^shapeAdjust3)-zzort elseif @trapType == "Hoops & Plates" zz = @fn1((@fn2((xzx+(1-shapeAdjust4))^@fn5(xzx+(1-shapeAdjust4)))+ \ @fn3(yzy^2*shapeAdjust2)+shapeAdjust1)^2-4*shapeAdjust1^2* \ @fn4(xzx^shapeAdjust3)-1)-zzort elseif @trapType == "Horned Torus Curve" zz = @fn1(@fn2(yzy^2*shapeAdjust1)-(@fn3(xzx^2*shapeAdjust2)+ \ @fn4(yzy^2+(1-shapeAdjust6)))*@fn5(xzx^(4*shapeAdjust7))/ \ @fn6(xzx^(3-shapeAdjust3))/@fn7(xzx^2*shapeAdjust4/@fn8 \ (yzy^shapeAdjust5)))-zzort elseif @trapType == "Indented Parabola" zz = @fn1(@fn2(yzy^shapeAdjust1))+@fn3(xzx*.2*shapeAdjust2)- \ @fn4(yzy^(2*shapeAdjust3))-zzort elseif @trapType == "Intersecting Ovals" zz = @fn1(@fn2(xzx^(2*shapeAdjust2))-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*shapeAdjust5))+2* \ shapeAdjust4*@fn5(yzy^(2*shapeAdjust6))-.5*shapeAdjust1^2)^2- \ zzort elseif @trapType == "Leaves of Grass" zz = @fn1(@fn2(yzy^shapeAdjust1))-@fn3(xzx*shapeAdjust2)^ \ @fn4(yzy^shapeAdjust3)-zzort elseif @trapType == "Lipped Ovals" zz = @fn1(abs(@fn2(xzx^2*shapeAdjust3*shapeAdjust1))+ \ abs(@fn3(yzy^shapeAdjust2))-1)-zzort elseif @trapType == "M Curve" zz = @fn1(@fn2(yzy^shapeAdjust1))+@fn3(shapeAdjust4*xzx^(3*shapeAdjust2))-\ @fn4(yzy^(2*shapeAdjust3))-zzort elseif @trapType == "Mercury Curve" zz = @fn1(((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2+ \ @fn3(yzy^2*shapeAdjust4))*(@fn4(xzx+(1-shapeAdjust5))* \ (@fn5(xzx-(shapeAdjust6-1))-shapeAdjust2)+ \ @fn6(yzy^(1+shapeAdjust7)))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust8-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust9)))-zzort elseif @trapType == "Miscellanea" zz = @fn1((@fn2(yzy^(2*shapeAdjust7))-@fn3(xzx^2+(1-shapeAdjust8)))* \ @fn4((xzx^shapeAdjust9)-@fn9(yzy*shapeAdjust4))* \ (shapeAdjust1*@fn5((yzy*shapeAdjust10)^ \ (@fn10(xzx^shapeAdjust11)))-shapeAdjust2)+4* \ (@fn6(xzx^2*shapeAdjust6)+@fn7(yzy^2*shapeAdjust3) \ +2*@fn8(yzy^shapeAdjust5))^2*shapeAdjust1)-zzort elseif @trapType == "Moorish Fantasy" zz = @fn1(@fn2((xzx*shapeAdjust4)^shapeAdjust1))- \ @fn3(yzy*shapeAdjust2)^@fn4(yzy-(1-shapeAdjust3))-zzort elseif @trapType == "Mousehead Curve" zz = @fn1(((@fn2(xzx^shapeAdjust3)-shapeAdjust2)^2+ \ @fn3(yzy^2+(1-shapeAdjust4)))*(@fn4(xzx+(1-shapeAdjust5))* \ (@fn5(xzx-(shapeAdjust6-1))-shapeAdjust2)+ \ @fn6(yzy^(1+shapeAdjust7)))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust8-1))-shapeAdjust2))* \ @fn8(yzy^(2*shapeAdjust9)))-zzort elseif @trapType == "Nested Ovals" zz = @fn1(@fn2(yzy^2*shapeAdjust2)*(shapeAdjust1^2- \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*shapeAdjust5))+2* \ shapeAdjust4*@fn5(yzy^(2*shapeAdjust6))-shapeAdjust1^2)^2- \ zzort elseif @trapType == "Nesting Birds Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(@fn3((.2*yzy*shapeAdjust6)^ \ @fn9(yzy*shapeAdjust2))*@fn4(yzy^2+(1-shapeAdjust7)))* \ @fn5(yzy^(4*shapeAdjust3))/@fn6(xzx^(2*shapeAdjust8))* \ @fn7(xzx^2*(3*shapeAdjust4)-@fn8(.5*yzy^shapeAdjust5)))-zzort elseif @trapType == "O-nami Curve" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn6(yzy^shapeAdjust2)* \ @fn3(yzy*shapeAdjust3))+@fn4(xzx+(1-shapeAdjust4))/ \ @fn5(yzy^(2*shapeAdjust5)))-zzort elseif @trapType == "Odds 'n Ends" zz = @fn1((@fn2(yzy^(2*shapeAdjust7))-@fn3(xzx^2+(1-shapeAdjust8)))* \ @fn4((xzx^shapeAdjust9)-@fn9(yzy*shapeAdjust4))* \ (shapeAdjust1*@fn5(xzx*shapeAdjust10)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust6)+@fn7(yzy^2*shapeAdjust3)-2-@fn8 \ (xzx^shapeAdjust5))^2*shapeAdjust1)-zzort elseif @trapType == "Omega Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))/@fn3(yzy^(2*shapeAdjust4))/ \ shapeAdjust2))+@fn2(xzx^shapeAdjust3))-zzort elseif @trapType == "Ornate Curve" zz = @fn1((@fn2(yzy^(2*shapeAdjust7))/@fn3(xzx^2+(1-shapeAdjust8)))* \ @fn4((xzx^shapeAdjust9)-@fn9(yzy*shapeAdjust4))* \ (shapeAdjust1-@fn5(xzx*shapeAdjust10)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust6)+@fn7(yzy^2*shapeAdjust3)-2*@fn8 \ (xzx^shapeAdjust5))^2*shapeAdjust1)-zzort elseif @trapType == "Ovals" zz = @fn1(@fn2(xzx*shapeAdjust2-@fn6(yzy*shapeAdjust4))- \ @fn3(xzx^2*shapeAdjust3+@fn4(yzy^(2*shapeAdjust5)))-2* \ shapeAdjust1*@fn5(yzy^(2*shapeAdjust6)))-zzort elseif @trapType == "Ovate Waves" zz = @fn1(@fn2(yzy^4*shapeAdjust3)-shapeAdjust1^2* \ @fn3(yzy^2*shapeAdjust4)-@fn4((yzy*shapeAdjust7)^ \ @fn6(yzy^shapeAdjust5))+shapeAdjust2^2* \ @fn5(xzx^(2*shapeAdjust6)))-zzort elseif @trapType == "Ovate Waves 2" zz = @fn1(@fn2(yzy^4*shapeAdjust3)-shapeAdjust1^2* \ @fn3(yzy^2*shapeAdjust4)-@fn4((xzx*shapeAdjust7)^ \ @fn6(xzx^shapeAdjust5))+shapeAdjust2^2* \ @fn5(xzx^(2*shapeAdjust6)))-zzort elseif @trapType == "Pacifier Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(@fn3((xzx*.2*shapeAdjust6)* \ @fn9(yzy*shapeAdjust2))-@fn4(yzy^2+(1-shapeAdjust7)))* \ @fn5(yzy^(4*shapeAdjust3))-@fn6(xzx^(2*shapeAdjust8))/\ @fn7(xzx^(2*shapeAdjust4)/@fn8(yzy^(.5*shapeAdjust5))))-zzort elseif @trapType == "Parenthetical Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2*shapeAdjust3))-atan \ (@fn4(yzy^shapeAdjust4)/@fn5(yzy^shapeAdjust5))+shapeAdjust1* \ abs(@fn6(yzy+(1-shapeAdjust6))))-zzort elseif @trapType == "Pincers" zz = @fn1(@fn2(xzx^2*shapeAdjust1)/@fn3(yzy^(1+shapeAdjust3))+ \ @fn4((yzy^shapeAdjust4)^@fn6(yzy*shapeAdjust2))/ \ @fn5(yzy^2+(1-shapeAdjust5)))-zzort elseif @trapType == "Pisces Curve" zz = @fn1((@fn2(xzx^(2*shapeAdjust1))-1)^2-@fn3(.6*yzy^2+ \ (1-shapeAdjust2))* @fn4(yzy^shapeAdjust3-1)* \ @fn5(yzy*shapeAdjust4-1)* @fn6(3*yzy+(6-shapeAdjust5)))-zzort elseif @trapType == "Plane & Tail" zz = @fn1(shapeAdjust1^4/@fn2((xzx^(2*shapeAdjust3)) \ +@fn5(yzy^shapeAdjust4))* shapeAdjust2^2- \ @fn3((xzx^(2*shapeAdjust5))^@fn6(xzx+(1-shapeAdjust6)))/\ (2*shapeAdjust1/@fn4(yzy^shapeAdjust7)))-zzort elseif @trapType == "Plane & Tail 2" zz = @fn1(shapeAdjust1^4/@fn2((xzx^(2*shapeAdjust3)) \ +@fn5(yzy^shapeAdjust4)) *shapeAdjust2^2- \ @fn3((xzx^(2*shapeAdjust5))^ @fn6(xzx+(1-shapeAdjust6))) \ /(2*shapeAdjust1-@fn4(yzy^shapeAdjust7)))-zzort elseif @trapType == "Seagull Curve" zz = @fn1(@fn2(yzy^2*shapeAdjust2)-shapeAdjust1^2* \ (@fn3(yzy^(5-shapeAdjust3))+@fn5(xzx+(1-shapeAdjust5))+ \ @fn4(yzy^(7-shapeAdjust4))))-zzort elseif @trapType == "Simple Curve" zz = @fn1(atan(@fn4((xzx^shapeAdjust4*shapeAdjust1)- \ @fn3(yzy^shapeAdjust5)*shapeAdjust2))-@fn2(yzy^shapeAdjust3))- \ zzort elseif @trapType == "Smoke Rings" zz = @fn1(shapeAdjust1^4+@fn2((shapeAdjust8*xzx^(2*shapeAdjust3))* \ @fn5(yzy^shapeAdjust4))- shapeAdjust2^2- \ @fn3((xzx^(shapeAdjust5))^@fn6(xzx+(1-shapeAdjust6))) \ /(2*shapeAdjust1-@fn4(yzy^shapeAdjust7)))-zzort elseif @trapType == "Sneering Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(@fn3((xzx*.2*shapeAdjust6)* \ @fn9(yzy*shapeAdjust2))-@fn4(yzy^2+(1-shapeAdjust7)))* \ @fn5(yzy^(4*shapeAdjust3))-@fn6(xzx^(2*shapeAdjust8))/\ @fn7(xzx^(2*shapeAdjust4)+@fn8(yzy^(.5*shapeAdjust5))))-zzort elseif @trapType == "Space Debris" zz = @fn1(shapeAdjust1^4*@fn2((yzy^2*shapeAdjust3)/ \ @fn5(xzx^2*shapeAdjust4))- shapeAdjust2^2* \ @fn3((xzx^shapeAdjust5)^@fn6(xzx+(1-shapeAdjust6)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust7)))-zzort elseif @trapType == "Spectacles Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust2)+@fn3(yzy^4*shapeAdjust3)-2* \ shapeAdjust5*@fn4(abs(xzx^shapeAdjust4)- \ @fn5(yzy^2*shapeAdjust1)))-zzort elseif @trapType == "Spiked Cusp" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn4(yzy^shapeAdjust2)* \ @fn3(xzx*shapeAdjust3)))-zzort elseif @trapType == "Squared Circle Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)- \ @fn4(yzy^2*shapeAdjust4))-shapeAdjust2^2/2+ \ @fn5(yzy^(4*shapeAdjust5)))-zzort elseif @trapType == "Squeezed Rectangle Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust2)-shapeAdjust1* \ (@fn3(yzy^(5-shapeAdjust3))-@fn5(xzx^shapeAdjust5)- \ @fn4(yzy^(7-shapeAdjust4))))-zzort elseif @trapType == "Swallow Curve" zz = @fn1(@fn2((xzx^2*shapeAdjust2))-@fn3((yzy^2*shapeAdjust3)))^2-4* \ shapeAdjust1*@fn4((xzx^shapeAdjust5^@fn6(yzy^2*shapeAdjust4))* \ @fn5(yzy^(2*shapeAdjust5)))-zzort elseif @trapType == "Stretched Oval Curve" zz = @fn1(shapeAdjust1^4+@fn2((yzy^(2*shapeAdjust3))/@fn5 \ (xzx^(2*shapeAdjust4)))-shapeAdjust2^2* \ @fn3((xzx^(2*shapeAdjust5))*@fn6(xzx+(1-shapeAdjust6)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust7)))-zzort elseif @trapType == "Switchback Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))*@fn3(yzy^shapeAdjust4)* \ shapeAdjust2))-@fn2(xzx^shapeAdjust3))-zzort elseif @trapType == "Taurus Curve" zz = @fn1(@fn2(xzx^(shapeAdjust3)))-@fn3(yzy^(2*shapeAdjust4))/ \ shapeAdjust1^2-@fn4((xzx^(2*shapeAdjust7))+ \ @fn6(yzy^2+(1-shapeAdjust6)))/shapeAdjust2^2* \ @fn5(xzx^shapeAdjust5)-zzort elseif @trapType == "Teardrop Curve" zz = @fn1(shapeAdjust1^4*@fn2((yzy^(2*shapeAdjust3))/@fn5(xzx^2*shapeAdjust4))- \ shapeAdjust2^2*@fn3((xzx^(2*shapeAdjust5))/@fn6(xzx+(1-shapeAdjust6)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust7)))-zzort elseif @trapType == "Tennis Anyone?" zz = @fn1(@fn2(xzx^2*shapeAdjust3)+2*shapeAdjust1* \ @fn3((xzx^shapeAdjust7)-@fn6(yzy*shapeAdjust4))- \ shapeAdjust1^2)^2-@fn4(yzy^2*shapeAdjust5)* \ (shapeAdjust2^2-@fn5(xzx^2*shapeAdjust6))- zzort elseif @trapType == "Thick 'n Thin" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn4(yzy^shapeAdjust2)/ \ @fn3(yzy+(1-shapeAdjust3))))-zzort elseif @trapType == "Thorned Cross" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn5(yzy^shapeAdjust2)* \ @fn3(xzx*shapeAdjust3))+@fn4(xzx+(1-shapeAdjust4)))-zzort elseif @trapType == "Three Point Curve" zz = @fn1((@fn2(xzx^2)-shapeAdjust1^2)*@fn3(xzx^2-shapeAdjust3)^2+ \ @fn4(yzy^(4-shapeAdjust4)-shapeAdjust2^2)^2)- zzort elseif @trapType == "Tsuba curve" zz = @fn1(@fn2(yzy^(2*shapeAdjust2))-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*shapeAdjust5))+2* \ shapeAdjust4*@fn5(yzy^(2*shapeAdjust6))-.5*shapeAdjust1^2)^2- \ zzort elseif @trapType == "Wheel in Trough" zz = @fn1((@fn2((xzx*shapeAdjust4)^(1+shapeAdjust2))+ \ @fn3(yzy^2*shapeAdjust3))*atan2(@fn4(yzy^shapeAdjust7)* \ @fn5(xzx^(1+shapeAdjust5)))-shapeAdjust1* \ @fn6(yzy^shapeAdjust6))-zzort elseif @trapType == "Whip Curve" zz = @fn1(@fn2((yzy*shapeAdjust1)^@fn6(yzy^shapeAdjust2)* \ @fn3(yzy*shapeAdjust3))+@fn4(xzx+(1-shapeAdjust4))- \ @fn5(yzy^(2*shapeAdjust5)))-zzort elseif @trapType == "Ampersand Curve" zz = @fn1((@fn2(yzy^(2*shapeAdjust3))-@fn3(xzx^2+(1-shapeAdjust4)))* \ @fn4((xzx^shapeAdjust5)-1)*(shapeAdjust1* \ @fn5(xzx)-shapeAdjust2)- 4*(@fn6(xzx^2*shapeAdjust6)+ \ @fn7(yzy^(2*shapeAdjust7))-2* @fn8(xzx^shapeAdjust8))^2)-zzort elseif @trapType == "ArcTangent" zz = @fn1(atan(@fn2(xzx^shapeAdjust1*shapeAdjust3))- \ @fn3(yzy^shapeAdjust2))-zzort elseif @trapType == "Bean Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust1)+@fn3(xzx^(2*shapeAdjust2))* \ @fn4(yzy^(2*shapeAdjust3))+@fn5(yzy^4*shapeAdjust4)- \ @fn6(xzx^shapeAdjust5)*@fn7(xzx^(2*shapeAdjust6)+ \ @fn8(yzy^2+(1-shapeAdjust7))))-zzort elseif @trapType == "Bicorn Curve" zz = @fn1(@fn2(yzy^2*shapeAdjust2)*(shapeAdjust1^2-@fn3(xzx^2)))- \ (@fn4(xzx^(2*shapeAdjust3))+2*shapeAdjust1* \ @fn5(yzy^shapeAdjust4)-shapeAdjust1^2)^2-zzort elseif @trapType == "Bicuspid Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust2)-shapeAdjust1^2)* \ @fn3(xzx^shapeAdjust3-shapeAdjust1)^2+ \ @fn4(yzy^(2*shapeAdjust4)-shapeAdjust1^2)^2)-zzort elseif @trapType == "Bifoliate" zz = @fn1(@fn2(xzx^4*shapeAdjust2)+@fn3(yzy^4*shapeAdjust3)- \ 2*shapeAdjust1*@fn4(abs(xzx^shapeAdjust4)* \ @fn5(yzy^(2*shapeAdjust5))))-zzort elseif @trapType == "Bifolium" zz = @fn1(@fn2(xzx^(1+shapeAdjust2))+@fn3(yzy^2+(1-shapeAdjust3)))^2- \ 4*shapeAdjust1*@fn4(abs(xzx^shapeAdjust4)* \ @fn5(yzy^(3-shapeAdjust5)))-zzort elseif @trapType == "Bow" zz = @fn1(@fn2(xzx^4*shapeAdjust1)-@fn3(xzx^2+(1-shapeAdjust2))* \ @fn4(yzy^shapeAdjust3)+@fn5(yzy^3*shapeAdjust4))-zzort elseif @trapType == "Butterfly Curve" zz = @fn1(@fn2(yzy^(6*shapeAdjust1))-(@fn3(xzx^2+(1-shapeAdjust2))- \ @fn4(xzx^6+(1-shapeAdjust3))))-zzort elseif @trapType == "Cassini Ovals" zz = @fn1((@fn2(xzx^2*shapeAdjust3)+@fn3(yzy^2*shapeAdjust4)+ \ shapeAdjust1^2)^2-4*shapeAdjust1^2* \ @fn4(xzx^(3-shapeAdjust5))-shapeAdjust2^4)-zzort elseif @trapType == "Circle" zz = @fn1(@fn2((xzx*shapeAdjust1)^(3-shapeAdjust2))+ \ @fn3((yzy*shapeAdjust3)^(3-shapeAdjust4))-1)-zzort elseif @trapType == "Cissoid of Diocles" zz = @fn1(@fn2(xzx^shapeAdjust2)*@fn3(xzx^2+(1-shapeAdjust3)+ \ @fn4(yzy^2*shapeAdjust4))-2*shapeAdjust1* \ @fn5(yzy^2+(1-shapeAdjust5)))-zzort elseif @trapType == "Cochleoid" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2*shapeAdjust3))* \ atan(@fn4(yzy^shapeAdjust4)/@fn5(xzx^shapeAdjust5))- \ shapeAdjust1*abs(@fn6(yzy^shapeAdjust6)))-zzort elseif @trapType == "Cocked Hat" zz = @fn1(@fn2(xzx^2*shapeAdjust3)+2*shapeAdjust1*@fn3(yzy^shapeAdjust4)- \ shapeAdjust1^2)^2-@fn4(yzy^(3-shapeAdjust5))* \ (shapeAdjust2^2-@fn5(xzx^2*shapeAdjust6))-zzort elseif @trapType == "Conchoid of Nicomedes" zz = @fn1((@fn2(xzx-shapeAdjust1))^2*(@fn3(xzx^(2*shapeAdjust3))+ \ @fn4(yzy^2*shapeAdjust4))-shapeAdjust2^2* \ @fn5(xzx^2*shapeAdjust5))-zzort elseif @trapType == "Cruciform" zz = @fn1(@fn2(xzx^2*shapeAdjust3)*@fn3(yzy^(1+shapeAdjust4))- \ shapeAdjust1^2*@fn4(xzx^(1+shapeAdjust5))-shapeAdjust2^2* \ @fn5(yzy^(3-shapeAdjust6)))-zzort elseif @trapType == "Devil's Curve" zz = @fn1(@fn2(yzy^(3+shapeAdjust4))-shapeAdjust1^2* \ @fn3(yzy^2+(1-shapeAdjust5))-@fn4(xzx^4*shapeAdjust3)+ \ shapeAdjust2^2*@fn5(xzx^(1+shapeAdjust6)))-zzort elseif @trapType == "Diamond" zz = @fn1(abs(@fn2(xzx*shapeAdjust1))+abs(@fn3(yzy^shapeAdjust2))-1)- \ zzort elseif @trapType == "Dumbbell Curve" zz = @fn1(@fn2(yzy^2*shapeAdjust2)-shapeAdjust1^2* \ (@fn3(xzx^(5-shapeAdjust3))-@fn4(xzx^(7-shapeAdjust4))))-zzort elseif @trapType == "Dürer's Conchoid" zz = @fn1(2*@fn2(yzy^(1+shapeAdjust3))*(@fn3(xzx^(1+shapeAdjust4))+ \ @fn4(yzy^2*shapeAdjust5))-2*shapeAdjust2* \ @fn5(yzy^2+(1-shapeAdjust6))*(@fn6(xzx^shapeAdjust7)+ \ @fn7(yzy+(1-shapeAdjust8)))+(shapeAdjust2^2-3*shapeAdjust1^2)* \ @fn8(yzy^(1+shapeAdjust9))-shapeAdjust1^2* \ @fn9(xzx^2*shapeAdjust10)+2*shapeAdjust1^2*shapeAdjust2* \ (@fn10(xzx^shapeAdjust11)+@fn11(yzy^shapeAdjust12))+ \ shapeAdjust1^2*(shapeAdjust1^2-shapeAdjust2^2))-zzort elseif @trapType == "Eight Curve" zz = @fn1(@fn2(xzx^(3+shapeAdjust2))-shapeAdjust1^2* \ (@fn3(xzx^2*shapeAdjust3)-@fn4(yzy^2*shapeAdjust4)))-zzort elseif @trapType == "Happy Accident" zz = @fn1((@fn2((xzx*shapeAdjust4)^(1+shapeAdjust2))+ \ @fn3(yzy^2*shapeAdjust3))*atan2(@fn4(yzy^shapeAdjust7)* \ @fn5(xzx^shapeAdjust5))-shapeAdjust1*@fn6 \ (yzy^shapeAdjust6))-zzort elseif @trapType == "Hyperbola" zz = @fn1(@fn2((xzx*shapeAdjust1)^(1+shapeAdjust2))- \ @fn3((yzy*shapeAdjust3)^(1+shapeAdjust4)) + 1)-zzort elseif @trapType == "Kappa Curve" zz = @fn1((@fn2(xzx^(3-shapeAdjust2))+@fn3(yzy^2*shapeAdjust3))* \ @fn4(yzy^(1+shapeAdjust4))-shapeAdjust1^2* \ @fn5(xzx^2*shapeAdjust5))-zzort elseif @trapType == "Keppler's Folium" zz = @fn1(((@fn2(xzx^shapeAdjust3)-shapeAdjust2)^2+ \ @fn3(yzy^2+(1-shapeAdjust4)))*(@fn4(xzx+(1-shapeAdjust5))* \ (@fn5(xzx-(shapeAdjust6-1))-shapeAdjust2)+@fn6 \ (yzy^(1+shapeAdjust7)))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust8-1)))-shapeAdjust2)* \ @fn8(yzy^(2*shapeAdjust9)))-zzort elseif @trapType == "Keratoid Cusp" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))*@fn3(yzy^shapeAdjust2)+ \ @fn4(xzx^(5*shapeAdjust3))-@fn5(yzy^(3-shapeAdjust4)))-zzort elseif @trapType == "Knot Curve" zz = @fn1((@fn2(xzx^(1+shapeAdjust1)-1)^2)-@fn3(yzy^2*shapeAdjust2)* \ (3+2*@fn4(yzy*shapeAdjust3)))-zzort elseif @trapType == "Lemniscate" zz = @fn1((@fn2(xzx^2+(1-shapeAdjust2))+@fn3(yzy^(1+shapeAdjust3)))^2- \ 2*shapeAdjust1*(@fn4(xzx^(2*shapeAdjust4))- \ @fn5(yzy^2*shapeAdjust5)))-zzort elseif @trapType == "Lemniscate Corrected" zz = @fn1(@fn2(xzx^4+(1-shapeAdjust2))+@fn3(yzy^4+(3-shapeAdjust3))* \ @fn4(xzx^2*shapeAdjust4)*@fn5(yzy^(2*shapeAdjust5))-2* \ shapeAdjust1^2*(@fn6(xzx^(2*shapeAdjust6))- \ @fn7(yzy^(1+shapeAdjust7))))-zzort elseif @trapType == "Limacon" zz = @fn1((@fn2(xzx^(2*shapeAdjust3))+@fn3(yzy^2+(1-shapeAdjust4))-2* \ shapeAdjust1*@fn4(xzx^shapeAdjust5))^2-shapeAdjust2^2* \ (@fn5(xzx^2*shapeAdjust6)+@fn6(yzy^2*shapeAdjust7)))-zzort elseif @trapType == "Line" zz = @fn1(yzy^shapeAdjust1)-zzort elseif @trapType == "Links Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^(2*shapeAdjust2))-3* \ @fn4(xzx^shapeAdjust3))^2-4*@fn5(xzx^(2*shapeAdjust4))* \ (2-abs(@fn6(xzx^shapeAdjust5))))-zzort elseif @trapType == "Maltese Cross Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^(2*shapeAdjust2))-abs \ (@fn4(xzx^shapeAdjust3))*abs(@fn5(yzy+(1-shapeAdjust4)))* \ (@fn6(xzx^(2+(1-shapeAdjust5))-@fn7(yzy^(2*shapeAdjust6)))))- \ zzort elseif @trapType == "Parabola" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))-@fn3(yzy^shapeAdjust2))-zzort elseif @trapType == "Pear-Shaped Curve" zz = @fn1(@fn2(xzx^(4-shapeAdjust3))* \ (shapeAdjust1-@fn3(xzx^shapeAdjust4))-shapeAdjust2^2* \ @fn4(yzy^(2*shapeAdjust5)))-zzort elseif @trapType == "Piriform" zz = @fn1(shapeAdjust1^4*@fn2(yzy^(2*shapeAdjust3))-shapeAdjust2^2* \ @fn3(xzx^(3*shapeAdjust4))*(2*shapeAdjust1-@fn4(xzx/shapeAdjust5)))- \ zzort elseif @trapType == "Quadrifolium" zz = @fn1((@fn2(xzx^(2*shapeAdjust2))+@fn3(yzy^2*shapeAdjust3))^3-4* \ @fn4(xzx^2+(1-shapeAdjust4))*@fn5(yzy^(3-shapeAdjust5))* \ shapeAdjust1^2)-zzort elseif @trapType == "Rose Curve" complex tz = atan2(xzx + flip(yzy)) zz = @fn1(shapeAdjust1*cos(@fn2(tz^shapeAdjust3)) + \ shapeAdjust2*sin(@fn3(tz^shapeAdjust4)))-zzort elseif @trapType == "Serpentine Curve" zz = @fn1(shapeAdjust1*shapeAdjust2*@fn2(xzx^shapeAdjust3)/ \ @fn3((xzx+1-shapeAdjust3)^2+shapeAdjust1^2)- \ @fn4(yzy^shapeAdjust4))-zzort elseif @trapType == "sin(x)/x" zz = @fn1(10*@fn2(sin(xzx^shapeAdjust1))/@fn3(xzx*shapeAdjust2)- \ @fn4(yzy^shapeAdjust3))-zzort elseif @trapType == "Sinus + Cosinus" zz = @fn1(sin(shapeAdjust1*@fn2(xzx^shapeAdjust3))+ \ cos(shapeAdjust2*@fn3(xzx+(1-shapeAdjust4)))+ \ @fn4(yzy^shapeAdjust5))-zzort elseif @trapType == "Spiral" zz = abs((xzx^(2*@shapeAdjust2)+yzy^(2*@shapeAdjust3))^ \ @shapeAdjust1%1-.5+atan2(xzx*@shapeAdjust4+ \ (flip(yzy^@shapeAdjust5)))/(2*pi)) zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+ \ atan2(xzx+flip(yzy))/(2*pi)+1) if real(zz2) < real(zz) zz = real(zz2) endif zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+atan2 \ (xzx+flip(yzy))/(2*pi)-1) if real(zz2) < real(zz) zz = real(zz2) endif elseif @trapType == "Square" if abs(xzx) > abs(yzy) zz = @fn1(@fn2(abs(xzx^shapeAdjust1))-1)-zzort else zz = @fn3(@fn4(abs(yzy^shapeAdjust2))-1)-zzort2 endif elseif @trapType == "Stirrup Curve" zz = @fn1(@fn2((xzx^2-1)^2)-@fn3(yzy^2)*@fn4(yzy-1)*@fn5(yzy-2)* \ @fn6(yzy+5))-zzort elseif @trapType == "Strange Shape" zz = @fn1((@fn2(xzx^(2*shapeAdjust2))+@fn3((yzy*shapeAdjust8)^ \ (2*shapeAdjust3)))*atan2(@fn4(xzx*shapeAdjust4)^ \ shapeAdjust7+flip(@fn5(yzy^shapeAdjust5)))- \ shapeAdjust1*@fn6(yzy^shapeAdjust6))-zzort elseif @trapType == "Swastika Curve" zz = @fn1(@fn2(yzy^(4*shapeAdjust1))-@fn3(xzx^4*shapeAdjust2)- \ @fn4(xzx^shapeAdjust3)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Tangent" zz = @fn1(tan(@fn2((xzx*shapeAdjust1)^shapeAdjust2))- \ @fn3(yzy*shapeAdjust3)^shapeAdjust4)-zzort elseif @trapType == "Trefoil" zz = @fn1(@fn2(xzx^(5-shapeAdjust1))+@fn3(xzx^(2*shapeAdjust2))* \ @fn4(yzy^2*shapeAdjust3)+@fn5(yzy^(4*shapeAdjust4))- \ @fn6(xzx^shapeAdjust5)*(@fn7(xzx^2*shapeAdjust6)- \ @fn8(yzy^2+(1-shapeAdjust7))))-zzort elseif @trapType == "Trident" zz = @fn1(@fn2(xzx^3*shapeAdjust2)-shapeAdjust1^3- \ @fn3(xzx^shapeAdjust3)*@fn4(yzy*shapeAdjust4))-zzort elseif @trapType == "Trident of Descartes" zz = @fn1((shapeAdjust1+@fn2(xzx^shapeAdjust2))* \ (shapeAdjust1-@fn3(xzx*shapeAdjust3))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust4))/ \ (shapeAdjust1*@fn5(xzx+(1-shapeAdjust5)))- \ @fn6(yzy^shapeAdjust6))-zzort elseif @trapType == "Trifolium" zz = @fn1((@fn2(xzx^2*shapeAdjust3)+@fn3(yzy^(2*shapeAdjust4)))* \ (@fn4(yzy^(2*shapeAdjust5))+@fn5(xzx^shapeAdjust6)* \ @fn6(xzx+shapeAdjust1))-4*shapeAdjust2* \ @fn7(xzx^shapeAdjust7)*@fn8(yzy^2+(1-shapeAdjust8)))-zzort elseif @trapType == "Trisectrix of Maclaurin" zz = @fn1(@fn2(yzy^2*shapeAdjust2)*(shapeAdjust1+ \ @fn3(xzx^shapeAdjust3))-@fn4(xzx^(2*shapeAdjust4))* \ (3*shapeAdjust1-@fn5(xzx*shapeAdjust5)))-zzort elseif @trapType == "Twisted Cross" zz = @fn1(@fn2(yzy^(5-shapeAdjust1))-@fn3(xzx^(5-shapeAdjust2))- \ @fn4(xzx^shapeAdjust3)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Witch of Agnesi" zz = @fn1(8*shapeAdjust2*shapeAdjust1^3/ \ @fn2(xzx^(2*shapeAdjust3)+4*shapeAdjust1^2)- \ @fn3(yzy^shapeAdjust4))-zzort endif if @nuflavPct == true if @varTypePct == "Normal" zz = zz elseif @varTypePct == "Modulus" zz = |zz| elseif @varTypePct == "Atan2" zz = atan2(zz) elseif @varTypePct == "Real" zz = real(zz) elseif @varTypePct == "Imag" zz = imag(zz) endif if @opaddPct == "None" zz = zz elseif @opaddPct == "+(X+Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X+Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X-Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X-Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y-X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y-X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X*Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X*Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X/Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X/Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y/X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y/X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X^Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X^Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y^X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y^X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) endif else if @varTypePct == "Normal" zz = (@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Modulus" zz = (@zzpctfn(|zz|-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Atan2" zz = atan2(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Real" zz = real(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Imag" zz = imag(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 endif if @opaddPct == "None" zz = zz elseif @opaddPct == "+(X+Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X+Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X-Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X-Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y-X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y-X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X*Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X*Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X/Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X/Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y/X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y/X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X^Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X^Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opadd == "+(Y^X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y^X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) endif endif if @light == false if @zchoice == "Toplight" zz = atan(atanh(@fnzzz(zz*zval-zval3)^zval2)) elseif @zchoice == "Edgelight" zz = atanh(@fnzzz(zz*zval-zval3)^zval2) elseif @zchoice == "Widelight" zz = atan(@fnzzz(zz*zval-zval3)^zval2) elseif @zchoice == "Sidelight" zz = acosh(@fnzzz(zz*zval-zval3)^zval2) elseif @zchoice == "Innerlight" zz = acosh(@fnzzz(acos(zz*zval-zval3)^zval2)) elseif @zchoice == "Outerlight" zz = acosh(@fnzzz(acosh(zz*zval-zval3)^zval2)) elseif @zchoice == "Glow" zz = log(@fnzzz(zz*zval-zval3)^zval2) elseif @zchoice == "Diffuse Glow" zz = log(atan(@fnzzz(zz*zval-zval3)^zval2)) elseif @zchoice == "Function" zz = acosh(@zchfn(@fnzzz(zz*zval-zval3)^zval2)) endif else if @ztraptyp == "Normal" ztt = z1 elseif @ztraptyp == "Modulus" ztt = |z1| elseif @ztraptyp == "Atan2" ztt = atan2(z1) elseif @ztraptyp == "Real" ztt = real(z1) elseif @ztraptyp == "Imag" ztt = imag(z1) endif ztu = flip(@fnztt(((ztt-@ztt1)*@ztt2)^@ztt3)) if @zchoice == "Toplight" zz = ztu-@lastfn(cabs(@gofn((atan(atanh(@fnzzz(zz*zval-zval3)^zval2)))))^@ltexp) elseif @zchoice == "Edgelight" zz = ztu-@lastfn(cabs(@gofn((atanh(@fnzzz(zz*zval-zval3)^zval2))))^@ltexp) elseif @zchoice == "Widelight" zz = ztu-@lastfn(cabs(@gofn(atan(@fnzzz(zz*zval-zval3)^zval2)))^@ltexp) elseif @zchoice == "Sidelight" zz = ztu-sqrt(@lastfn(cabs(@gofn((acosh(@fnzzz(zz*zval-zval3)^zval2)))))^@ltexp) elseif @zchoice == "Innerlight" zz = ztu-@lastfn(cabs(@gofn((acosh(@fnzzz(acos(zz*zval-zval3)^zval2)))))^@ltexp) elseif @zchoice == "Outerlight" zz = ztu-(@lastfn(cabs(@gofn((acosh(@fnzzz(acosh(zz*zval-zval3)^zval2)))))^@ltexp)) elseif @zchoice == "Glow" zz = ztu-sqrt(@lastfn(cabs(@gofn((log(@fnzzz(zz*zval-zval3)^zval2)))))^@ltexp) elseif @zchoice == "Diffuse Glow" zz = ztu-@lastfn(cabs(@gofn(log(atan(@fnzzz(zz*zval-zval3)^zval2))))^@ltexp) elseif @zchoice == "Function" zz = ztu-@lastfn(cabs(@gofn(acosh(@zchfn(@fnzzz(zz*zval-zval3)^zval2))))^@ltexp) endif endif z1a = zz + -@spread + flip(-@spread) z2a = zz + flip(-@spread) z3a = zz + @spread + flip(-@spread) z4a = zz + -@spread z5 = zz + @spread z6 = zz + -@spread + flip(@spread) z7 = zz + flip(@spread) z8 = zz + @spread + flip(@spread) ptp = p if @draw == "Separate" if @distyp0 == "Normal" qw = cabs(zz-ptp) elseif @distyp0 == "Modulus" qw = |zz-ptp| elseif @distyp0 == "Real" qw = real(abs(zz-ptp)) elseif @distyp0 == "Imag" qw = imag(abs(zz-ptp)) elseif @distyp0 == "Zero" qw = 0 elseif @distyp0 == "Function" qw = cabs(@fncorr0(zz-ptp)) endif if @distyp1 == "Normal" er = cabs(z1a-ptp) elseif @distyp1 == "Modulus" er = |z1a-ptp| elseif @distyp1 == "Real" er = real(abs(z1a-ptp)) elseif @distyp1 == "Imag" er = imag(abs(z1a-ptp)) elseif @distyp1 == "Zero" er = 0 elseif @distyp1 == "Function" er = cabs(@fncorr1(z1a-ptp)) endif if @distyp2 == "Normal" if @version < 2.50 ty = cabs(z2-ptp) else ty = cabs(z2a-ptp) endif elseif @distyp2 == "Modulus" ty = |z2a-ptp| elseif @distyp2 == "Real" ty = real(abs(z2a-ptp)) elseif @distyp2 == "Imag" ty = imag(abs(z2a-ptp)) elseif @distyp2 == "Zero" ty = 0 elseif @distyp2 == "Function" ty = cabs(@fncorr2(z2a-ptp)) endif if @distyp3 == "Normal" ui = cabs(z3a-ptp) elseif @distyp3 == "Modulus" ui = |z3a-ptp| elseif @distyp3 == "Real" ui = real(abs(z3a-ptp)) elseif @distyp3 == "Imag" ui = imag(abs(z3a-ptp)) elseif @distyp3 == "Zero" ui = 0 elseif @distyp3 == "Function" ui = cabs(@fncorr3(z3a-ptp)) endif if @distyp4 == "Normal" as = cabs(z4a-ptp) elseif @distyp4 == "Modulus" as = |z4a-ptp| elseif @distyp4 == "Real" as = real(abs(z4a-ptp)) elseif @distyp4 == "Imag" as = imag(abs(z4a-ptp)) elseif @distyp4 == "Zero" as = 0 elseif @distyp4 == "Function" as = cabs(@fncorr4(z4a-ptp)) endif if @distyp5 == "Normal" df = cabs(z5-ptp) elseif @distyp5 == "Modulus" df = |z5-ptp| elseif @distyp5 == "Real" df = real(abs(z5-ptp)) elseif @distyp5 == "Imag" df = imag(abs(z5-ptp)) elseif @distyp5 == "Zero" df = 0 elseif @distyp5 == "Function" df = cabs(@fncorr5(z5-ptp)) endif if @distyp6 == "Normal" gh = cabs(z6-ptp) elseif @distyp6 == "Modulus" gh = |z6-ptp| elseif @distyp6 == "Real" gh = real(abs(z6-ptp)) elseif @distyp6 == "Imag" gh = imag(abs(z6-ptp)) elseif @distyp6 == "Zero" gh = 0 elseif @distyp6 == "Function" gh = cabs(@fncorr6(z6-ptp)) endif if @distyp7 == "Normal" jk = cabs(z7-ptp) elseif @distyp7 == "Modulus" jk = |z7-ptp| elseif @distyp7 == "Real" jk = real(abs(z7-ptp)) elseif @distyp7 == "Imag" jk = imag(abs(z7-ptp)) elseif @distyp7 == "Zero" jk = 0 elseif @distyp7 == "Function" jk = cabs(@fncorr7(z7-ptp)) endif if @distyp8 == "Normal" xc = cabs(z8-ptp) elseif @distyp8 == "Modulus" xc = |z8-ptp| elseif @distyp8 == "Real" xc = real(abs(z8-ptp)) elseif @distyp8 == "Imag" xc = imag(abs(z8-ptp)) elseif @distyp8 == "Zero" xc = 0 elseif @distyp8 == "Function" xc = cabs(@fncorr8(z8-ptp)) endif dist0 = qw dist1 = er dist2 = ty dist3 = ui dist4 = as dist5 = df dist6 = gh dist7 = jk dist8 = xc elseif @draw == "Chained" if @dist == "Normal" dist0 = cabs(zz - ptp) dist1 = cabs(z1a - ptp) dist2 = cabs(z2a - ptp) dist3 = cabs(z3a - ptp) dist4 = cabs(z4a - ptp) dist5 = cabs(z5 - ptp) dist6 = cabs(z6 - ptp) dist7 = cabs(z7 - ptp) dist8 = cabs(z8 - ptp) elseif @dist == "Imag" dist0 = imag(abs(zz - ptp)) dist1 = imag(abs(z1a - ptp)) dist2 = imag(abs(z2a - ptp)) dist3 = imag(abs(z3a - ptp)) dist4 = imag(abs(z4a - ptp)) dist5 = imag(abs(z5 - ptp)) dist6 = imag(abs(z6 - ptp)) dist7 = imag(abs(z7 - ptp)) dist8 = imag(abs(z8 - ptp)) elseif @dist == "Real" dist0 = real(abs(zz - ptp)) dist1 = real(abs(z1a - ptp)) dist2 = real(abs(z2a - ptp)) dist3 = real(abs(z3a - ptp)) dist4 = real(abs(z4a - ptp)) dist5 = real(abs(z5 - ptp)) dist6 = real(abs(z6 - ptp)) dist7 = real(abs(z7 - ptp)) dist8 = real(abs(z8 - ptp)) elseif @dist == "Modulus" dist0 = |zz - ptp| dist1 = |z1a - ptp| dist2 = |z2a - ptp| dist3 = |z3a - ptp| dist4 = |z4a - ptp| dist5 = |z5 - ptp| dist6 = |z6 - ptp| dist7 = |z7 - ptp| dist8 = |z8 - ptp| elseif @dist == "Function" dist0 = cabs(@fncorr(zz - ptp)) dist1 = cabs(@fncorr(z1a - ptp)) dist2 = cabs(@fncorr(z2a - ptp)) dist3 = cabs(@fncorr(z3a - ptp)) dist4 = cabs(@fncorr(z4a - ptp)) dist5 = cabs(@fncorr(z5 - ptp)) dist6 = cabs(@fncorr(z6 - ptp)) dist7 = cabs(@fncorr(z7 - ptp)) dist8 = cabs(@fncorr(z8 - ptp)) endif endif if @ipat == false complex zq = zz + z1a + z2a + z3a + z4a + z5 + z6 + z7 + z8 else complex zq = (zz-ptp) + (z1a-ptp) + (z2a-ptp) + (z3a-ptp) + (z4a-ptp) + \ (z5-ptp) + (z6-ptp) + (z7-ptp) + (z8-ptp) endif float sum = 0 int points = @points if @trapping == "Closest" if @trapMode == "Straight" if @sumMode == "Normal" if @center if dist0 < min_dist0 min_dist0 = dist0 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = dist1 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = dist2 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = dist3 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = dist4 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = dist5 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = dist6 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = dist7 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = dist8 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 1" if @center if dist0 < min_dist0 min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 2" if @center if dist0 < min_dist0 min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif elseif @trapmode == "Funky" if @sumMode == "Normal" if @center if dist0 < min_dist0 min_dist0 = dist0 + @edge/3 endif endif if dist1 < min_dist1 min_dist1 = dist1 + @edge/3 endif if dist2 < min_dist2 min_dist2 = dist2 + @edge/3 endif if dist3 < min_dist3 min_dist3 = dist3 + @edge/3 endif if dist4 < min_dist4 min_dist4 = dist4 + @edge/3 endif if dist5 < min_dist5 min_dist5 = dist5 + @edge/3 endif if dist6 < min_dist6 min_dist6 = dist6 + @edge/3 endif if dist7 < min_dist7 min_dist7 = dist7 + @edge/3 endif if dist8 < min_dist8 min_dist8 = dist8 + @edge/3 endif elseif @sumMode == "Flavor 1" if @center if dist0 < min_dist0 min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 endif endif if dist1 < min_dist1 min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < min_dist2 min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < min_dist3 min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < min_dist4 min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < min_dist5 min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < min_dist6 min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < min_dist7 min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < min_dist8 min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 endif elseif @sumMode == "Flavor 2" if @center if dist0 < min_dist0 min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 endif endif if dist1 < min_dist1 min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < min_dist2 min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < min_dist3 min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < min_dist4 min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < min_dist5 min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < min_dist6 min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < min_dist7 min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < min_dist8 min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif endif if @fixit == "Funky" if @pflavor == "Sum Z" if real(@txtifn(zq) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((|p|-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if real(@txtifn(zz) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if real(@txtifn(|z1|) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if real(@txtifn(z1) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if real(@txtifn(#z) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif elseif @fixit == "Straight" if @pflavor == "Sum Z" if cabs(@txtifn(zq) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if cabs(@txtifn(zz) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if cabs(@txtifn(|z1|) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if cabs(@txtifn(z1) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if cabs(@txtifn(#z) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif endif elseif @trapping == "First" if @trapMode == "Straight" if @sumMode == "Normal" if @center if dist0 < @threshold min_dist0 = dist0 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold min_dist1 = dist1 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold min_dist2 = dist2 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold min_dist3 = dist3 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold min_dist4 = dist4 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold min_dist5 = dist5 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold min_dist6 = dist6 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold min_dist7 = dist7 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold min_dist8 = dist8 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 1" if @center if dist0 < @threshold min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 2" if @center if dist0 < @threshold min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif elseif @trapmode == "Funky" if @sumMode == "Normal" if @center if dist0 < @threshold min_dist0 = dist0 + @edge/3 endif endif if dist1 < @threshold min_dist1 = dist1 + @edge/3 endif if dist2 < @threshold min_dist2 = dist2 + @edge/3 endif if dist3 < @threshold min_dist3 = dist3 + @edge/3 endif if dist4 < @threshold min_dist4 = dist4 + @edge/3 endif if dist5 < @threshold min_dist5 = dist5 + @edge/3 endif if dist6 < @threshold min_dist6 = dist6 + @edge/3 endif if dist7 < @threshold min_dist7 = dist7 + @edge/3 endif if dist8 < @threshold min_dist8 = dist8 + @edge/3 endif elseif @sumMode == "Flavor 1" if @center if dist0 < @threshold min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 endif endif if dist1 < @threshold min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < @threshold min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < @threshold min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < @threshold min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < @threshold min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < @threshold min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < @threshold min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < @threshold min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 endif elseif @sumMode == "Flavor 2" if @center if dist0 < @threshold min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 endif endif if dist1 < @threshold min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < @threshold min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < @threshold min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < @threshold min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < @threshold min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < @threshold min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < @threshold min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < @threshold min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif endif if @fixit == "Funky" if @pflavor == "Sum Z" if real(@txtifn(zq) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((|p|-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if real(@txtifn(zz) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if real(@txtifn(|z1|) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if real(@txtifn(z1) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if real(@txtifn(#z) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif elseif @fixit == "Straight" if @pflavor == "Sum Z" if cabs(@txtifn(zq) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if cabs(@txtifn(zz) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if cabs(@txtifn(|z1|) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if cabs(@txtifn(z1) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if cabs(@txtifn(#z) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif endif elseif @trapping == "Last" if @trapMode == "Straight" if @sumMode == "Normal" if @center if dist0 < @threshold && !trapped min_dist0 = dist0 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold && !trapped min_dist1 = dist1 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold && !trapped min_dist2 = dist2 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold && !trapped min_dist3 = dist3 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold && !trapped min_dist4 = dist4 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold && !trapped min_dist5 = dist5 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold && !trapped min_dist6 = dist6 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold && !trapped min_dist7 = dist7 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold && !trapped min_dist8 = dist8 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 1" if @center if dist0 < @threshold && !trapped min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold && !trapped min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold && !trapped min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold && !trapped min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold && !trapped min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold && !trapped min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold && !trapped min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold && !trapped min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold && !trapped min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 2" if @center if dist0 < @threshold && !trapped min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < @threshold && !trapped min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < @threshold && !trapped min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < @threshold && !trapped min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < @threshold && !trapped min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < @threshold && !trapped min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < @threshold && !trapped min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < @threshold && !trapped min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < @threshold && !trapped min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif elseif @trapmode == "Funky" if @sumMode == "Normal" if @center if dist0 < @threshold && !trapped min_dist0 = dist0 + @edge/3 endif endif if dist1 < @threshold && !trapped min_dist1 = dist1 + @edge/3 endif if dist2 < @threshold && !trapped min_dist2 = dist2 + @edge/3 endif if dist3 < @threshold && !trapped min_dist3 = dist3 + @edge/3 endif if dist4 < @threshold && !trapped min_dist4 = dist4 + @edge/3 endif if dist5 < @threshold && !trapped min_dist5 = dist5 + @edge/3 endif if dist6 < @threshold && !trapped min_dist6 = dist6 + @edge/3 endif if dist7 < @threshold && !trapped min_dist7 = dist7 + @edge/3 endif if dist8 < @threshold && !trapped min_dist8 = dist8 + @edge/3 endif elseif @sumMode == "Flavor 1" if @center if dist0 < @threshold && !trapped min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 endif endif if dist1 < @threshold && !trapped min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < @threshold && !trapped min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < @threshold && !trapped min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < @threshold && !trapped min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < @threshold && !trapped min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < @threshold && !trapped min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < @threshold && !trapped min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < @threshold && !trapped min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 endif elseif @sumMode == "Flavor 2" if @center if dist0 < @threshold && !trapped min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 endif endif if dist1 < @threshold && !trapped min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 endif if dist2 < @threshold && !trapped min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 endif if dist3 < @threshold && !trapped min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 endif if dist4 < @threshold && !trapped min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 endif if dist5 < @threshold && !trapped min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 endif if dist6 < @threshold && !trapped min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 endif if dist7 < @threshold && !trapped min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 endif if dist8 < @threshold && !trapped min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif endif if @fixit == "Funky" if @pflavor == "Sum Z" if real(@txtifn(zq) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((|p|-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if real(@txtifn(zz) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if real(@txtifn(|z1|) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if real(@txtifn(z1) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if real(@txtifn(#z) ^ @ints) < real(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif elseif @fixit == "Straight" if @pflavor == "Sum Z" if cabs(@txtifn(zq) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Trap Z" if cabs(@txtifn(zz) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Modulus Z" if cabs(@txtifn(|z1|) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "Morph Z" if cabs(@txtifn(z1) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((|z1|-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif elseif @pflavor == "#Z" if cabs(@txtifn(#z) ^ @ints) < cabs(ptp * @pval2) + @pval if @trap == "#Z" p = @testfnz((#z-@distz1)*@distz2)^@distz elseif @trap == "Morph Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Modulus Z" p = @testfnz((z1-@distz1)*@distz2)^@distz elseif @trap == "Trap Z" p = @testfnz((zz-@distz1)*@distz2)^@distz elseif @trap == "Sum Z" p = @testfnz ((zq-@distz1)*@distz2)^@distz elseif @trap == "None" p = @testfnz((p-@distz1)*@distz2)^@distz endif trap_i = i trap_z = z1 trap2_z = zz trap3_z = zq trap_p = p endif endif endif endif elseif @pct == "Soft Gnarly" if @flav == true zz = @tn3(@tn1(real(z1-@zparam1)) + flip(@tn2(imag(z1-flip(@zparam2))))) else zz = @tn3(real(@tn1(z1-@zparam1)) + flip(imag(@tn2(z1-flip(@zparam2))))) endif z1a = zz + -@spread + flip(-@spread) z2a = zz + flip(-@spread) z3a = zz + @spread + flip(-@spread) z4a = zz + -@spread z5 = zz + @spread z6 = zz + -@spread + flip(@spread) z7 = zz + flip(@spread) z8= zz + @spread + flip(@spread) ptp = p if @draw == "Separate" if @distyp0 == "Normal" qw = cabs(zz-ptp) elseif @distyp0 == "Modulus" qw = |zz-ptp| elseif @distyp0 == "Real" qw = real(abs(zz-ptp)) elseif @distyp0 == "Imag" qw = imag(abs(zz-ptp)) elseif @distyp0 == "Zero" qw = 0 elseif @distyp0 == "Function" qw = cabs(@fncorr0(zz-ptp)) endif if @distyp1 == "Normal" er = cabs(z1a-ptp) elseif @distyp1 == "Modulus" er = |z1a-ptp| elseif @distyp1 == "Real" er = real(abs(z1a-ptp)) elseif @distyp1 == "Imag" er = imag(abs(z1a-ptp)) elseif @distyp1 == "Zero" er = 0 elseif @distyp1 == "Function" er = cabs(@fncorr1(z1a-ptp)) endif if @distyp2 == "Normal" if @version < 2.50 ty = cabs(z2-ptp) else ty = cabs(z2a-ptp) endif elseif @distyp2 == "Modulus" ty = |z2a-ptp| elseif @distyp2 == "Real" ty = real(abs(z2a-ptp)) elseif @distyp2 == "Imag" ty = imag(abs(z2a-ptp)) elseif @distyp2 == "Zero" ty = 0 elseif @distyp2 == "Function" ty = cabs(@fncorr2(z2a-ptp)) endif if @distyp3 == "Normal" ui = cabs(z3a-ptp) elseif @distyp3 == "Modulus" ui = |z3a-ptp| elseif @distyp3 == "Real" ui = real(abs(z3a-ptp)) elseif @distyp3 == "Imag" ui = imag(abs(z3a-ptp)) elseif @distyp3 == "Zero" ui = 0 elseif @distyp3 == "Function" ui = cabs(@fncorr3(z3a-ptp)) endif if @distyp4 == "Normal" as = cabs(z4a-ptp) elseif @distyp4 == "Modulus" as = |z4a-ptp| elseif @distyp4 == "Real" as = real(abs(z4a-ptp)) elseif @distyp4 == "Imag" as = imag(abs(z4a-ptp)) elseif @distyp4 == "Zero" as = 0 elseif @distyp4 == "Function" as = cabs(@fncorr4(z4a-ptp)) endif if @distyp5 == "Normal" df = cabs(z5-ptp) elseif @distyp5 == "Modulus" df = |z5-ptp| elseif @distyp5 == "Real" df = real(abs(z5-ptp)) elseif @distyp5 == "Imag" df = imag(abs(z5-ptp)) elseif @distyp5 == "Zero" df = 0 elseif @distyp5 == "Function" df = cabs(@fncorr5(z5-ptp)) endif if @distyp6 == "Normal" gh = cabs(z6-ptp) elseif @distyp6 == "Modulus" gh = |z6-ptp| elseif @distyp6 == "Real" gh = real(abs(z6-ptp)) elseif @distyp6 == "Imag" gh = imag(abs(z6-ptp)) elseif @distyp6 == "Zero" gh = 0 elseif @distyp6 == "Function" gh = cabs(@fncorr6(z6-ptp)) endif if @distyp7 == "Normal" jk = cabs(z7-ptp) elseif @distyp7 == "Modulus" jk = |z7-ptp| elseif @distyp7 == "Real" jk = real(abs(z7-ptp)) elseif @distyp7 == "Imag" jk = imag(abs(z7-ptp)) elseif @distyp7 == "Zero" jk = 0 elseif @distyp7 == "Function" jk = cabs(@fncorr7(z7-ptp)) endif if @distyp8 == "Normal" xc = cabs(z8-ptp) elseif @distyp8 == "Modulus" xc = |z8-ptp| elseif @distyp8 == "Real" xc = real(abs(z8-ptp)) elseif @distyp8 == "Imag" xc = imag(abs(z8-ptp)) elseif @distyp8 == "Zero" xc = 0 elseif @distyp8 == "Function" xc = cabs(@fncorr8(z8-ptp)) endif dist0 = qw dist1 = er dist2 = ty dist3 = ui dist4 = as dist5 = df dist6 = gh dist7 = jk dist8 = xc elseif @draw == "Chained" if @dist == "Normal" dist0 = cabs(zz - ptp) dist1 = cabs(z1a - ptp) dist2 = cabs(z2a - ptp) dist3 = cabs(z3a - ptp) dist4 = cabs(z4a - ptp) dist5 = cabs(z5 - ptp) dist6 = cabs(z6 - ptp) dist7 = cabs(z7 - ptp) dist8 = cabs(z8 - ptp) elseif @dist == "Imag" dist0 = imag(abs(zz - ptp)) dist1 = imag(abs(z1a - ptp)) dist2 = imag(abs(z2a - ptp)) dist3 = imag(abs(z3a - ptp)) dist4 = imag(abs(z4a - ptp)) dist5 = imag(abs(z5 - ptp)) dist6 = imag(abs(z6 - ptp)) dist7 = imag(abs(z7 - ptp)) dist8 = imag(abs(z8 - ptp)) elseif @dist == "Real" dist0 = real(abs(zz - ptp)) dist1 = real(abs(z1a - ptp)) dist2 = real(abs(z2a - ptp)) dist3 = real(abs(z3a - ptp)) dist4 = real(abs(z4a - ptp)) dist5 = real(abs(z5 - ptp)) dist6 = real(abs(z6 - ptp)) dist7 = real(abs(z7 - ptp)) dist8 = real(abs(z8 - ptp)) elseif @dist == "Modulus" dist0 = |zz - ptp| dist1 = |z1a - ptp| dist2 = |z2a - ptp| dist3 = |z3a - ptp| dist4 = |z4a - ptp| dist5 = |z5 - ptp| dist6 = |z6 - ptp| dist7 = |z7 - ptp| dist8 = |z8 - ptp| elseif @dist == "Function" dist0 = cabs(@fncorr(zz - ptp)) dist1 = cabs(@fncorr(z1a - ptp)) dist2 = cabs(@fncorr(z2a - ptp)) dist3 = cabs(@fncorr(z3a - ptp)) dist4 = cabs(@fncorr(z4a - ptp)) dist5 = cabs(@fncorr(z5 - ptp)) dist6 = cabs(@fncorr(z6 - ptp)) dist7 = cabs(@fncorr(z7 - ptp)) dist8 = cabs(@fncorr(z8 - ptp)) endif endif if @ipat == false complex zq = zz + z1a + z2a + z3a + z4a + z5 + z6 + z7 + z8 else complex zq = (zz-ptp) + (z1a-ptp) + (z2a-ptp) + (z3a-ptp) + (z4a-ptp) + \ (z5-ptp) + (z6-ptp) + (z7-ptp) + (z8-ptp) endif float sum = 0 int points = @points if @sumMode == "Normal" if @center if dist0 < min_dist0 min_dist0 = dist0 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = dist1 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = dist2 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = dist3 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = dist4 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = dist5 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = dist6 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = dist7 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = dist8 + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 1" if @center if dist0 < min_dist0 min_dist0 = real((@fnsum(dist0)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = real((@fnsum(dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = real((@fnsum(dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = real((@fnsum(dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = real((@fnsum(dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = real((@fnsum(dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = real((@fnsum(dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = real((@fnsum(dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = real((@fnsum(dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif elseif @sumMode == "Flavor 2" if @center if dist0 < min_dist0 min_dist0 = real(@fnsum((dist0*@distMult)^@distExp)) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if dist1 < min_dist1 min_dist1 = real(@fnsum((dist1)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist2 < min_dist2 min_dist2 = real(@fnsum((dist2)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist3 < min_dist3 min_dist3 = real(@fnsum((dist3)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist4 < min_dist4 min_dist4 = real(@fnsum((dist4)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist5 < min_dist5 min_dist5 = real(@fnsum((dist5)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist6 < min_dist6 min_dist6 = real(@fnsum((dist6)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist7 < min_dist7 min_dist7 = real(@fnsum((dist7)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif if dist8 < min_dist8 min_dist8 = real(@fnsum((dist8)*@distMult)^@distExp) + @edge/3 trap_i = i trap_z = ((z1-@distz1)*@distz2)^@distz trap2_z = ((zz-@distz1)*@distz2)^@distz trap3_z = ((zq-@distz1)*@distz2)^@distz trap_p = ((p-@distz1)*@distz2)^@distz trapped = true endif endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif if @points == 1 sum = min_dist1 elseif @points == 2 sum = min_dist1 + min_dist2 elseif @points == 3 sum = min_dist1 + min_dist2 + min_dist3 elseif @points == 4 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 elseif @points == 5 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 elseif @points == 6 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 elseif @points == 7 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 elseif @points == 8 sum = min_dist1 + min_dist2 + min_dist3 + min_dist4 \ + min_dist5 + min_dist6 + min_dist7 + min_dist8 endif if @center points = points + 1 sum = sum + min_dist0 endif endif endif endif i = i + 1 z_values[i] = #z if @linear == "Linear" if @incRot rotation = rotation + @rotDegree endif if @incSize size = size + @sizeDegree endif if @incRat rat = rat + @ratDegree endif 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 if @incSa1 shapeAdjust1 = shapeAdjust1 + @sa1Degree endif if @incSa2 shapeAdjust2 = shapeAdjust2 + @sa2Degree endif if @incSa3 shapeAdjust3 = shapeAdjust3 + @sa3Degree endif if @incSa4 shapeAdjust4 = shapeAdjust4 + @sa4Degree endif if @incSa5 shapeAdjust5 = shapeAdjust5 + @sa5Degree endif if @incSa6 shapeAdjust6 = shapeAdjust6 + @sa6Degree endif if @incSa7 shapeAdjust7 = shapeAdjust7 + @sa7Degree endif if @incSa8 shapeAdjust8 = shapeAdjust8 + @sa8Degree endif if @incSa9 shapeAdjust9 = shapeAdjust9 + @sa9Degree endif if @incSa10 shapeAdjust10 = shapeAdjust10 + @sa10Degree endif if @incSa11 shapeAdjust11 = shapeAdjust11 + @sa11Degree endif if @incSa12 shapeAdjust12 = shapeAdjust12 + @sa12Degree endif if @incZval zval = zval + @zvalDegree endif if @incZval2 zval2 = zval2 + @zval2Degree endif if @incZval3 zval3 = zval3 + @zval3Degree endif if @incTest2r test2 = test2 + @test2rDegree endif if @incTest2i test2 = test2 + @test2iDegree*(0,1) endif if @incTest3r test3 = test3 + @test3rDegree endif if @incTest3i test2 = test2 + @test3iDegree *(0,1) endif if @incExpxr expx = expx + @expxrDegree endif if @incExpxi expx = expx + @expxiDegree*(0,1) endif if @incExpyr expy = expy + @expyrDegree endif if @incExpyi expy = expy + @expyiDegree*(0,1) endif if @incP1r kp1 = kp1 + @p1rDegree endif if @incP1i kp1 = kp1 + @p1iDegree*(0,1) endif if @incP2r kp2 = kp2 + @p2rDegree endif if @incQ1r q1 = q1 + @q1rDegree endif if @incQ1i q1 = q1 + @q1iDegree*(0,1) endif if @incQ2r q2 = q2 + @q2rDegree endif if @incQ2i q2 = q2 + @q2iDegree*(0,1) endif if @incZzort zzort = zzort + @zzortDegree endif if @incZzort2 zzort2 = zzort2 + @zzort2Degree endif elseif @linear == "Non-Linear 1" if @incRot rotation = rotation + @rotDegree /(@rotDegree-@speed) endif if @incSize size = size + @sizeDegree /(@sizeDegree-@speed) endif if @incRat rat = rat + @ratDegree /(@ratDegree-@speed) endif 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 if @incSa1 shapeAdjust1 = shapeAdjust1 + @sa1Degree /(@sa1Degree-@speed) endif if @incSa2 shapeAdjust2 = shapeAdjust2 + @sa2Degree /(@sa2Degree-@speed) endif if @incSa3 shapeAdjust3 = shapeAdjust3 + @sa3Degree /(@sa3Degree-@speed) endif if @incSa4 shapeAdjust4 = shapeAdjust4 + @sa4Degree /(@sa4Degree-@speed) endif if @incSa5 shapeAdjust5 = shapeAdjust5 + @sa5Degree /(@sa5Degree-@speed) endif if @incSa6 shapeAdjust6 = shapeAdjust6 + @sa6Degree /(@sa6Degree-@speed) endif if @incSa7 shapeAdjust7 = shapeAdjust7 + @sa7Degree /(@sa7Degree-@speed) endif if @incSa8 shapeAdjust8 = shapeAdjust8 + @sa8Degree /(@sa8Degree-@speed) endif if @incSa9 shapeAdjust9 = shapeAdjust9 + @sa9Degree /(@sa9Degree-@speed) endif if @incSa10 shapeAdjust10 = shapeAdjust10 + @sa10Degree /(@sa10Degree-@speed) endif if @incSa11 shapeAdjust11 = shapeAdjust11 + @sa11Degree /(@sa11Degree-@speed) endif if @incSa12 shapeAdjust12 = shapeAdjust12 + @sa12Degree /(@sa12Degree-@speed) endif if @incZval zval = zval + @zvalDegree /(@zvalDegree-@speed) endif if @incZval2 zval2 = zval2 + @zval2Degree/(@zval2Degree-@speed) endif if @incZval3 zval3 = zval3 + @zval3Degree /(@zval3Degree-@speed) endif if @incTest2r test2 = test2 + @test2rDegree /(@test2rDegree-@speed) endif if @incTest2i test2 = test2 + @test2iDegree /(@test2iDegree-@speed)*(0,1) endif if @incTest3r test3 = test3 + @test3rDegree /(@test3rDegree-@speed) endif if @incTest3i test3 = test3 + @test3iDegree /(@test3iDegree-@speed)*(0,1) endif if @incExpxr expx = expx + @expxrDegree /(@expxrDegree-@speed) endif if @incExpxi expx = expx + @expxiDegree /(@expxiDegree-@speed)*(0,1) endif if @incExpyr expy = expy + @expyrDegree /(@expyrDegree-@speed) endif if @incExpyi expy = expy + @expyiDegree /(@expyiDegree-@speed)*(0,1) endif if @incP1r kp1 = kp1 + @p1rDegree/(@p1rDegree-@speed) endif if @incP1i kp1 = kp1 + @p1iDegree /(@p1iDegree-@speed)*(0,1) endif if @incP2r kp2 = kp2 + @p2rDegree/(@p2rDegree-@speed) endif if @incQ1r q1 = q1 + @q1rDegree /(@q1rDegree-@speed) endif if @incQ1i q1 = q1 + @q1iDegree /(@q1iDegree-@speed)*(0,1) endif if @incQ2r q2 = q2 + @q2rDegree /(@q2rDegree-@speed) endif if @incQ2i q2 = q2 + @q2iDegree /(@q2iDegree-@speed)*(0,1) endif if @incZzort zzort = zzort + @zzortDegree/(@zzortDegree-@speed) endif if @incZzort2 zzort2 = zzort2 + @zzort2Degree/(@zzort2Degree-@speed) endif elseif @linear == "Non-Linear 2" if @incRot rotation = rotation + @rotDegree /(@rotDegree-1i*pi*@speed) endif if @incSize size = size + @sizeDegree /(@sizeDegree-1i*pi*@speed) endif if @incRat rat = rat + @ratDegree /(@ratDegree-pi*@speed) endif 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 if @incSa1 shapeAdjust1 = shapeAdjust1 + @sa1Degree /(@sa1Degree-1i*pi*@speed) endif if @incSa2 shapeAdjust2 = shapeAdjust2 + @sa2Degree /(@sa2Degree-1i*pi*@speed) endif if @incSa3 shapeAdjust3 = shapeAdjust3 + @sa3Degree /(@sa3Degree-1i*pi*@speed) endif if @incSa4 shapeAdjust4 = shapeAdjust4 + @sa4Degree /(@sa4Degree-1i*pi*@speed) endif if @incSa5 shapeAdjust5 = shapeAdjust5 + @sa5Degree /(@sa5Degree-1i*pi*@speed) endif if @incSa6 shapeAdjust6 = shapeAdjust6 + @sa6Degree /(@sa6Degree-1i*pi*@speed) endif if @incSa7 shapeAdjust7 = shapeAdjust7 + @sa7Degree /(@sa7Degree-1i*pi*@speed) endif if @incSa8 shapeAdjust8 = shapeAdjust8 + @sa8Degree /(@sa8Degree-1i*pi*@speed) endif if @incSa9 shapeAdjust9 = shapeAdjust9 + @sa9Degree /(@sa9Degree-1i*pi*@speed) endif if @incSa10 shapeAdjust10 = shapeAdjust10 + @sa10Degree /(@sa10Degree-1i*pi*@speed) endif if @incSa11 shapeAdjust11 = shapeAdjust11 + @sa11Degree /(@sa11Degree-1i*pi*@speed) endif if @incSa12 shapeAdjust12 = shapeAdjust12 + @sa12Degree /(@sa12Degree-1i*pi*@speed) endif if @incZval zval = zval + @zvalDegree /(@zvalDegree-1i*pi*@speed) endif if @incZval2 zval2 = zval2 + @zval2Degree/(@zval2Degree-1i*pi*@speed) endif if @incZval3 zval3 = zval3 + @zval3Degree /(@zval3Degree-1i*pi*@speed) endif if @incTest2r test2 = test2 + @test2rDegree /(@test2rDegree-1i*pi*@speed) endif if @incTest2i test2 = test2 + @test2iDegree /(@test2iDegree-1i*pi*@speed)*(0,1) endif if @incTest3r test3 = test3 + @test3rDegree /(@test3rDegree-1i*pi*@speed) endif if @incTest3i test3 = test3 + @test3iDegree /(@test3iDegree-1i*pi*@speed)*(0,1) endif if @incExpxr expx = expx + @expxrDegree /(@expxrDegree-1i*pi*@speed) endif if @incExpxi expx = expx + @expxiDegree /(@expxiDegree-1i*pi*@speed)*(0,1) endif if @incExpyr expy = expy + @expyrDegree /(@expyrDegree-1i*pi*@speed) endif if @incExpyi expy = expy + @expyiDegree /(@expyiDegree-1i*pi*@speed)*(0,1) endif if @incP1r kp1 = kp1 + @p1rDegree/(@p1rDegree-1i*pi*@speed) endif if @incP1i kp1 = kp1 + @p1iDegree /(@p1iDegree-1i*pi*@speed)*(0,1) endif if @incP2r kp2 = kp2 + @p2rDegree/(@p2rDegree-1i*pi*@speed) endif if @incQ1r q1 = q1 + @q1rDegree /(@q1rDegree-1i*pi*@speed) endif if @incQ1i q1 = q1 + @q1iDegree /(@q1iDegree-1i*pi*@speed)*(0,1) endif if @incQ2r q2 = q2 + @q2rDegree /(@q2rDegree-1i*pi*@speed) endif if @incQ2i q2 = q2 + @q2iDegree /(@q2iDegree-1i*pi*@speed)*(0,1) endif if @incZzort zzort = zzort + @zzortDegree/(@zzortDegree-pi*@speed) endif if @incZzort2 zzort2 = zzort2 + @zzort2Degree/(@zzort2Degree-1i*pi*@speed) endif elseif @linear == "Non-Linear 3" if @incRot rotation = rotation + @rotDegree /(@rotDegree-pi*@speed) endif if @incSize size = size + @sizeDegree /(@sizeDegree-pi*@speed) endif if @incRat rat = rat + @ratDegree /(@ratDegree-pi*@speed) endif 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 if @incSa1 shapeAdjust1 = shapeAdjust1 + @sa1Degree /(@sa1Degree-pi*@speed) endif if @incSa2 shapeAdjust2 = shapeAdjust2 + @sa2Degree /(@sa2Degree-pi*@speed) endif if @incSa3 shapeAdjust3 = shapeAdjust3 + @sa3Degree /(@sa3Degree-pi*@speed) endif if @incSa4 shapeAdjust4 = shapeAdjust4 + @sa4Degree /(@sa4Degree-pi*@speed) endif if @incSa5 shapeAdjust5 = shapeAdjust5 + @sa5Degree /(@sa5Degree-pi*@speed) endif if @incSa6 shapeAdjust6 = shapeAdjust6 + @sa6Degree /(@sa6Degree-pi*@speed) endif if @incSa7 shapeAdjust7 = shapeAdjust7 + @sa7Degree /(@sa7Degree-pi*@speed) endif if @incSa8 shapeAdjust8 = shapeAdjust8 + @sa8Degree /(@sa8Degree-pi*@speed) endif if @incSa9 shapeAdjust9 = shapeAdjust9 + @sa9Degree /(@sa9Degree-pi*@speed) endif if @incSa10 shapeAdjust10 = shapeAdjust10 + @sa10Degree /(@sa10Degree-pi*@speed) endif if @incSa11 shapeAdjust11 = shapeAdjust11 + @sa11Degree /(@sa11Degree-pi*@speed) endif if @incSa12 shapeAdjust12 = shapeAdjust12 + @sa12Degree /(@sa12Degree-pi*@speed) endif if @incZval zval = zval + @zvalDegree /(@zvalDegree-pi*@speed) endif if @incZval2 zval2 = zval2 + @zval2Degree/(@zval2Degree-pi*@speed) endif if @incZval3 zval3 = zval3 + @zval3Degree /(@zval3Degree-pi*@speed) endif if @incTest2r test2 = test2 + @test2rDegree /(@test2rDegree-pi*@speed) endif if @incTest2i test2 = test2 + @test2iDegree /(@test2iDegree-pi*@speed)*(0,1) endif if @incTest3r test3 = test3 + @test3rDegree /(@test3rDegree-pi*@speed) endif if @incTest3i test3 = test3 + @test3iDegree /(@test3iDegree-pi*@speed)*(0,1) endif if @incExpxr expx = expx + @expxrDegree /(@expxrDegree-pi*@speed) endif if @incExpxi expx = expx + @expxiDegree /(@expxiDegree-pi*@speed)*(0,1) endif if @incExpyr expy = expy + @expyrDegree /(@expyrDegree-pi*@speed) endif if @incExpyi expy = expy + @expyiDegree /(@expyiDegree-pi*@speed)*(0,1) endif if @incP1r kp1 = kp1 + @p1rDegree/(@p1rDegree-pi*@speed) endif if @incP1i kp1 = kp1 + @p1iDegree /(@p1iDegree-pi*@speed)*(0,1) endif if @incP2r kp2 = kp2 + @p2rDegree/(@p2rDegree-pi*@speed) endif if @incQ1r q1 = q1 + @q1rDegree /(@q1rDegree-pi*@speed) endif if @incQ1i q1 = q1 + @q1iDegree /(@q1iDegree-pi*@speed)*(0,1) endif if @incQ2r q2 = q2 + @q2rDegree /(@q2rDegree-pi*@speed) endif if @incQ2i q2 = q2 + @q2iDegree /(@q2iDegree-pi*@speed)*(0,1) endif if @incZzort zzort = zzort + @zzortDegree/(@zzortDegree-pi*@speed) endif if @incZzort2 zzort2 = zzort2 + @zzort2Degree/(@zzort2Degree-pi*@speed) endif endif final: if trapped ;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 == "Trap2 Z" tz = ((trap2_z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap3 Z" tz = ((trap3_z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap X" tz = ((xzx-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap Y" tz = ((yzy-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Pixel" tz = ((#pixel-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Pattern" tz = ((p-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist" tz = ((sum-@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 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 + @pttsc) % 256 float by1 = (by0 + @pttsd) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @pttsa float ry1 = ry0 - @pttsb 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 == "Trap2 Z" tz = ((trap2_z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap X" tz = ((xzx-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap Y" tz = ((yzy-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Pixel" tz = ((#pixel-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Pattern" tz = ((p-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist" tz = ((sum-@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 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 == "Trap2 Z" tz = ((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap3 Z" tz = ((trap3_z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap X" tz = ((xzx-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap Y" tz = ((yzy-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Pixel" tz = ((#pixel-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Pattern" tz = ((p-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist" tz = ((sum-@txia3)*@txib3)^@txic3 endif if @gnarl_init == 0 ppp = @fntx7(@fntx6(tz))^@exad6 elseif @gnarl_init == 1 ppp = @fntx6(real(tz))^@exad6+@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 2 ppp = @fntx6(real(tz))^@exad6-@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 3 ppp = @fntx6(real(tz))^@exad6*@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 4 ppp = @fntx6(imag(tz))^@exad6-@fntx7(real(tz))^@exad7 elseif @gnarl_init == 5 ppp = @fntx7(@fntx6(x))^@exad6 elseif @gnarl_init == 6 ppp = @fntx7(@fntx6(y))^@exad6 elseif @gnarl_init == 7 ppp = @fntx6(x)^@exad6+@fntx7(y)^@exad7 elseif @gnarl_init == 8 ppp = @fntx6(x)^@exad6-@fntx7(y)^@exad7 elseif @gnarl_init == 9 ppp = @fntx7(y)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 10 ppp = @fntx6(x)^@exad6*@fntx7(y)^@exad7 elseif @gnarl_init == 11 ppp = @fntx6(x)^@exad6/@fntx7(y)^@exad7 elseif @gnarl_init == 12 ppp = @fntx7(y)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 13 ppp = @fntx6(x)^@exad6^@fntx7(y)^@exad7 elseif @gnarl_init == 14 ppp = @fntx7(y)^@exad6^@fntx6(x)^@exad7 elseif @gnarl_init == 15 ppp = @fntx6(x)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init == 16 ppp = @fntx6(x)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init == 17 ppp = @fntx7(tz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 18 ppp = @fntx6(x)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init == 19 ppp = @fntx6(x)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init == 20 ppp = @fntx7(tz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 21 ppp = @fntx6(y)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init == 22 ppp = @fntx6(y)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init == 23 ppp = @fntx7(tz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init == 24 ppp = @fntx6(y)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init == 25 ppp = @fntx6(y)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init == 26 ppp = @fntx7(tz)^@exad6/@fntx6(y)^@exad7 elseif @gnarl_init == 27 ppp = @fntx7(@fntx6(pixel))^@exad6 endif if @gnarl_scaling == 0 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 1 ppp = ppp-floor(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 2 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 3 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 4 ppp = ppp-real(@fngnarl(ppp*@gnarl_scale))/@gnarl_scale elseif @gnarl_scaling == 5 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale-ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 6 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 7 ppp = ppp+round(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 8 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale-trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 9 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale*trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 10 ppp = ppp+round(ppp*@gnarl_scale)/@gnarl_scale*trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 11 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale-floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 12 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 13 ppp = ppp+trunc(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 14 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale-ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 15 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 16 ppp = ppp+trunc(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 17 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale-floor(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 18 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 19 ppp = ppp+ceil(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale) \ /@gnarl_scale2 endif if @gnarl_size != 0 ppp = ppp/@gnarl_size endif xxx = real(ppp) yy = imag(ppp) float xOld = 0 int iter3 = @gnarl_octaves while (iter3 > 0) iter3 = iter3-1 xOld = xxx if @gnarl_form == 0 xxx = xxx - sin(yy + sin(yy)) yy = yy - sin(xOld + sin(xOld)) elseif @gnarl_form == 1 xxx = xxx - sin(yy + log(yy + cos(yy))) yy = yy - sin(xOld + log(xOld + cos(xOld))) elseif @gnarl_form == 2 xxx = xxx - sin(yy + cos(yy)) yy = yy - sin(xOld + cos(xOld)) elseif @gnarl_form == 3 xxx = xxx - sin(yy + log(yy + tan(yy))) yy = yy - sin(xOld + log(xOld + tan(xOld))) elseif @gnarl_form == 4 xxx = xxx - sin(yy + log(yy + sin(yy))) yy = yy - sin(xOld + log(xOld + sin(xOld))) endif endwhile if (@gnarl_type == 0) texture_gna = real(@fng(xxx)) elseif (@gnarl_type == 1) texture_gna = real(@fng(yy)) elseif (@gnarl_type == 2) texture_gna = real(@fng(xxx+yy)) elseif (@gnarl_type == 3) texture_gna = real(@fng(xxx*yy)) elseif (@gnarl_type == 4) texture_gna = real(@fng(xxx-yy)) elseif (@gnarl_type == 5) texture_gna = real(@fng(xxx/yy)) elseif (@gnarl_type == 6) texture_gna = real(@fng(yy/xxx)) elseif (@gnarl_type == 7) texture_gna = real(@fng(xxx^yy)) elseif (@gnarl_type == 8) texture_gna = real(@fng(yy^xxx)) elseif (@gnarl_type == 9) texture_gna = real(@fng(1/xxx)) elseif (@gnarl_type == 10) texture_gna = real(@fng(1/yy)) elseif (@gnarl_type == 11) texture_gna = atan2(xxx+1i*yy)/(2*#pi) if (texture_gna < 0) texture_gna = texture_gna + 1 endif elseif (@gnarl_type == 12) texture_gna = |xxx+1i*yy| elseif (@gnarl_type == 13) texture_gna = (xxx+yy+|xxx+1i*yy|)/3 elseif (@gnarl_type == 14) texture_gna = (xxx*yy*|xxx+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-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Morph z" tz = ((z1-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap Z" tz = ((trap_z-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap2 Z" tz = ((trap2_z-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap3 Z" tz = ((trap3_z-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap X" tz = ((xzx-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap Y" tz = ((yzy-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Pixel" tz = ((#pixel-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Pattern" tz = ((p-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Dist" tz = ((sum-@txia5)*@txib5)^@txic5 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] 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 = 10* (zaza-trunc(zaza)^@exp*2)*@trtxt if @geo_limit != 0 texture_tr = 10* ((zaza-trunc(zaza)^@exp*2)% @geo_limit)*@trtxt endif if @geo_sgn == true texture_tr = abs(texture_tr) endif ; Additional Texture if tx != 0 if @tp != 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 == "Trap2 Z" tz = ((trap2_z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap3 Z" tz = ((trap3_z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap X" tz = ((xzx-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap Y" tz = ((yzy-@txia1)*@txib1)^@txic1 elseif @ztyp == "Pixel" tz = ((#pixel-@txia1)*@txib1)^@txic1 elseif @ztyp == "Pattern" tz = ((p-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist" tz = ((sum-@txia1)*@txib1)^@txic1 endif if @tt == 0 tza = @fntx2(@fntx1(tz))^@exad1 elseif @tt == 1 tza = @fntx1(real(tz))^@exad1+@fntx2(imag(tz))^@exad2 elseif @tt == 2 tza = @fntx1(real(tz))^@exad1-@fntx2(imag(tz))^@exad2 elseif @tt == 3 tza = @fntx1(real(tz))^@exad1*@fntx2(imag(tz))^@exad2 elseif @tt == 4 tza = @fntx1(imag(tz))^@exad1-@fntx2(real(tz))^@exad2 elseif @tt == 5 tza = @fntx2(@fntx1(x))^@exad1 elseif @tt == 6 tza = @fntx2(@fntx1(y))^@exad1 elseif @tt == 7 tza = @fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @tt == 8 tza = @fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @tt == 9 tza = @fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @tt == 10 tza = @fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @tt == 11 tza = @fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @tt == 12 tza = @fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @tt == 13 tza = @fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @tt == 14 tza = @fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @tt == 15 tza = @fntx1(x)^@exad1+@fntx2(tz)^@exad2 elseif @tt == 16 tza = @fntx1(x)^@exad1-@fntx2(tz)^@exad2 elseif @tt == 17 tza = @fntx2(tz)^@exad2-@fntx1(x)^@exad1 elseif @tt == 18 tza = @fntx1(x)^@exad1*@fntx2(tz)^@exad2 elseif @tt == 19 tza = @fntx1(x)^@exad1/@fntx2(tz)^@exad2 elseif @tt == 20 tza = @fntx2(tz)^@exad2/@fntx1(x)^@exad1 elseif @tt == 21 tza = @fntx1(y)^@exad1+@fntx2(tz)^@exad2 elseif @tt == 22 tza = @fntx1(y)^@exad1-@fntx2(tz)^@exad2 elseif @tt == 23 tza = @fntx2(tz)^@exad2-@fntx1(y)^@exad1 elseif @tt == 24 tza = @fntx1(y)^@exad1*@fntx2(tz)^@exad2 elseif @tt == 25 tza = @fntx1(y)^@exad1/@fntx2(tz)^@exad2 elseif @tt == 26 tza = @fntx2(tz)^@exad2/@fntx1(y)^@exad1 endif endif float zr = real(tza)%(@tv/10)/@ts*10 float zi = imag(tza)%(@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 itt = 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 itt = itt + 1 until itt >= 20 endif t2 = abs(za-real(@fntx3(za))) if @add_sgn == false t2 = (za-real(@fntx3(za))) endif texture = (texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10000 if real(1/@msk*10) < sum && @msk != 0 masked = true endif if @inv masked = !masked endif if masked #solid = true endif if @colorby == "Distance" tmp = sum / points elseif @colorby == "Iteration" tmp = real(@colorFn((trap_i-@tz1)*@tz2)^@tz3) elseif @colorby == "Modulated Iter" tmp = ((real(@colorFn((trap_i-@tz1)*@tz2)^@tz3) % @iter_mod) / @iter_mod ) elseif @colorby == "Magnitude" tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @colorby == "Real" tmp = real(abs(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) elseif @colorby == "Imag" tmp = imag(abs(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) elseif @colorby == "Angle" float angle = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle elseif @colorby == "Angle to Trap" float angle = atan2(@colorFn(((trap_z-trap_p)-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle elseif @colorby == "Martin" trap_p = @fnma(trap_p) ; Use that z as the starting point float x = real(@colorfn((trap_p-@tz1)*@tz2)^@tz3) * 1/@mscale float y = imag(@colorfn((trap_p-@tz1)*@tz2)^@tz3) * 1/@mscale ; Iterate the Martin formula i = 0 while i < @m_iterations float xx = x x = y - sin(x) y = @a2 - xx i = i + 1 endwhile trap_p = x + flip(y) tmp = cabs(trap_p) elseif @colorby == "Pattern Magnitude" tmp = cabs(@colorFn((trap_p-@tz1)*@tz2)^@tz3) elseif @colorby == "Pattern Real" tmp = real(abs(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) elseif @colorby == "Pattern Imag" tmp = imag(abs(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) elseif @colorby == "Pattern Angle" float angle = atan2(@colorFn((trap_p-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle endif if @indx == "Normal" #index = tmp + (texture) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r* (tx * @txamt / 10) / 100 elseif @indx == "Variation 1" #index = real(atanh(tmp + (texture))) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r * (tx * @txamt / 10) / 100 elseif @indx == "Variation 2" #index = real(acos(tmp + (texture))) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r * (tx * @txamt / 10) / 100 elseif @indx == "Function" #index = real(@indexFn(tmp + (texture))) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r * (tx * @txamt / 10) / 100 endif else #solid = true endif default: title = "Painter's Traps" param version caption = "Version" default = 2.57 visible = false endparam int param begex caption = "Mode" enum = "Basic""Advanced" default = 1 endparam param pct caption = "Coloring Type" enum = "Soft Gnarly" "Plane Curve Traps" default = 1 endparam int param trapping caption = "Trapping Mode" enum = "Closest""First""Last" default = 0 hint = "'Closest' is the normal mode. 'First' creates discrete elements \ with sharp edges determined by the 'Element Width' values. 'Last' \ places later, larger elements over earlier ones. 'Last' can only \ be used by unchecking 'Include Root Trap' and using '1' as 'No. of \ Test Points'" visible = @pct == "Plane Curve Traps" endparam float param threshold caption = "Element Width" default = 0.7 visible = @pct == "Plane Curve Traps" && @trapping != "Closest" hint = "Controls the edge cutoff of the elements using trapping mode \ 'First' or 'Last'" endparam float param edge caption = "Edge Definition" default = 0 min = 0 hint = "Increasing this value adds an edge to the elements. \ You will need to adjust your gradient. Minimum value is 0" endparam param colorby caption = "Coloring Mode" enum = "Distance" "Iteration" "Modulated Iter" "Magnitude" "Real" "Imag" \ "Angle" "Angle to Trap" "Martin" "Pattern Magnitude" "Pattern Real" \ "Pattern Imag" "Pattern Angle" default = 0 endparam float param iter_mod caption = "Color Ranges" default = 4.0 hint = "Determines the number of color ranges in the 'Modulated Iter' \ coloring mode. Decimal values can be used to vary the colors \ within individual ranges" visible = @colorby == "Modulated Iter" endparam param m_iterations caption = "Martin iterations" hint = "This is the number of iterations for the Martin formula." default = 12 visible = @colorby == "Martin" endparam float param a2 caption = "Martin Color Param" default = 3.14159 visible = @colorby == "Martin" endparam float param mscale caption = "Martin Color Scale" default = 5 visible = @colorby == "Martin" endparam func fnma caption = "Martin Color Fn" default = ident() visible = @colorby == "Martin" endfunc func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @colorby > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endparam heading caption = "Global Parameters" endheading float param spread caption = "Spread" hint = "Determines the width of the elements in 'Separate' and 'Chained' \ drawing modes, as well as 'Soft Gnarly'" default = 0 endparam int param points caption = "No. of Test Points" default = 8 min = 0 max = 8 hint = "Determines the dimensional look of the elements in 'Separate' and \ 'Chained' drawing modes, as well as 'Soft Gnarly'" endparam bool param center caption = "Include Root Trap" default = true hint = "Adds the root trap. This must be checked when using 'Combined' \ trap drawing mode" endparam int param draw caption = "Trap Config" enum = "Separate""Chained" default = 1 hint = "Determines how the nine traps interact" visible = @begex == 1 endparam int param dist caption = "Chained Type" enum = "Normal""Modulus""Real""Imag""Function" default = 0 hint = "All traps are separate but change together for convenience" visible = @draw == "Chained" endparam func fncorr caption = "Chained Function" default = ident () hint = "Allows you to add a function to the traps in 'Chained' mode" visible = @draw == "Chained" && @dist == "Function" endfunc int param distyp0 caption = "Root Trap" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the root trap" visible = @draw == "Separate" && @begex == 1 && @center endparam func fncorr0 caption = "Root Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @center && \ @distyp0 == "Function" endfunc int param distyp1 caption = "Trap 1" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 1st trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr1 caption = "Trap 1 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp1 == "Function" endfunc int param distyp2 caption = "Trap 2" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 visible = @draw == "Separate" && @begex == 1 hint = "Determines the mode of the 2nd trap" endparam func fncorr2 caption = "Trap 2 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp2 == "Function" endfunc int param distyp3 caption = "Trap 3" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 3rd trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr3 caption = "Trap 3 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp3 == "Function" endfunc int param distyp4 caption = "Trap 4" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 4th trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr4 caption = "Trap 4 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp4 == "Function" endfunc int param distyp5 caption = "Trap 5" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 5th trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr5 caption = "Trap 5 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp5 == "Function" endfunc int param distyp6 caption = "Trap 6" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 6th trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr6 caption = "Trap 6 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp6 == "Function" endfunc int param distyp7 caption = "Trap 7" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 7th trap" visible = @draw == "Separate" && @begex == 1 endparam func fncorr7 caption = "Trap 7 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp7 == "Function" endfunc int param distyp8 caption = "Trap 8" enum = "Normal""Modulus""Real""Imag""Zero""Function" default = 0 hint = "Determines the mode of the 8th trap in 'Separate' mode" visible = @draw == "Separate" && @begex == 1 endparam func fncorr8 caption = "Trap 8 Function" default = ident () hint = "Allows you to add a function to this trap" visible = @draw == "Separate" && @begex == 1 && @distyp8 == "Function" endfunc int param sumMode caption = "Tonality" enum = "Normal""Flavor 1""Flavor 2" default = 0 hint = "Brings 'Tonality Function' into play. Flavor 1 differs from 2 \ in the interaction of Edge 1 and 2, when the values are not 1 (and \ not in many of the functions using 'Soft Gnarly' mode)" visible = @begex == 1 endparam func fnsum caption = "Tonality Function" default = recip() hint = "Changes the tonality of the elements in the image depending on \ the function chosen. Some functions work better than others. \ You may have to adjust the gradient depending on which is chosen" visible = @sumMode != "Normal" && @begex == 1 endfunc param indx caption = "Element Shading" enum = "Normal""Variation 1""Variation 2""Function" default = 0 hint = "This parameter varies the appearance of the elements. Generally \ 'Normal' should be used for coloring modes other than 'Distance'" visible = @begex == 1 && @pct == 1 endparam func indexFn caption = "Shading Function" default = ident() hint = "Changes the shading and cutoff of the elements" visible = @indx == "Function" && @begex == 1 && @pct == 1 endfunc float param distExp caption = "Edge 1" default = 1.0 hint = "Changes the tonality of the elements or the edge definition \ depending on the trapping mode. You may have to adjust the gradient" visible = @sumMode != "Normal" && @begex == 1 endparam float param distMult caption = "Edge 2" default = 1.0 hint = "Changes the tonality of the elements or the edge definition \ depending on the trapping mode. You may have to adjust the gradient" visible = @sumMode != "Normal" && @begex == 1 endparam float param zparam1 caption = "Offset Re" default = 0 visible = @pct == 0 endparam float param zparam2 caption = "Offset Im" default = 0 visible = @pct == 0 endparam int param skip caption = "Start Iter*" default = 0 endparam $ifdef VER40 heading text = "*! Pattern iterations precede trap iterations, even when pattern \ percent is 0. If you have 20 pattern iterations the first \ iteration that will be skipped in trap shapes is number 20. This \ does not affect the patterns." endheading $endif int param show caption = "Iterations to Show" default = 100000 endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif heading caption = "Plane Curve Traps" visible = @pct == 1 endheading param trapType caption = "Trap Type" enum = "Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day" \ "Barbed Wire""Baubles & Bangles""Bean Curve""Bicorn Curve" \ "Bicuspid Curve""Bifoliate""Bifolium" "Bighorn Curve""Binary Curve" \ "Bird of Paradise""Bow""Butterfly Curve""Cabuchon Curve" \ "Cardinal Points Curve""Cassini Ovals""Chaos Adorned""Chaos Unleashed" \ "Church Key Curve""Circle""Cissoid of Diocles""Cochleoid""Cocked Hat" \ "Compass Curve""Conchoid of Nicomedes""Conjoined Circle Curve" \ "Conductor's Curve""Cooking Pot Curve""Cosmic Rays""Crochet Hooks" \ "Crosshatch Curve""Cruciform""D&U Curve""Devil's Curve""Diamond" \ "Dogleg Curve""Double Circle Curve""Double Trine""Dribs & Drabs" \ "Driftwood Curve""Dulcimer Curve""Dumbbell Curve""Dürer's Conchoid" \ "Eight Curve""Eye of the Needle""Exclamation Point""Fatback" \ "Floreate Curve""Glyph Curve""Gravity Waves""Happy Accident" \ "Harpoon Curve" "Hook & Spar""Hoops & Plates""Horned Torus Curve" \ "Hyperbola""Indented Parabola""Intersecting Ovals""Kappa Curve" \ "Keppler's Folium""Keratoid Cusp""Knot Curve""Leaves of Grass" \ "Lemniscate""Lemniscate Corrected""Limacon""Line" "Links Curve" \ "Lipped Ovals""M curve""Maltese Cross Curve""Mercury Curve""Miscellanea" \ "Moorish Fantasy""Mousehead Curve""Nested Ovals""Nesting Birds Curve" \ "O-nami Curve""Odds 'n Ends""Omega Curve""Ornate Curve""Ovals" \ "Ovate Waves""Ovate Waves 2""Pacifier Curve""Parabola" \ "Parenthetical Curve""Pear-Shaped Curve""Pincers" "Piriform" \ "Pisces Curve""Plane & Tail""Plane & Tail 2""Quadrifolium""Rose Curve" \ "Seagull Curve" "Serpentine Curve""Simple Curve""sin(x)/x" \ "Sinus + Cosinus""Smoke Rings""Sneering Curve""Space Debris" \ "Spectacles Curve""Spiked Cusp""Spiral""Square""Squared Circle Curve" \ "Squeezed Rectangle Curve""Stirrup Curve""Strange Shape" \ "Stretched Oval Curve""Swallow Curve""Swastika Curve""Switchback Curve" \ "Tangent""Taurus Curve""Teardrop Curve""Tennis Anyone?""Thick 'n Thin" \ "Thorned Cross""Three Point Curve""Trefoil""Trident" \ "Trident of Descartes""Trifolium""Trisectrix of Maclaurin""Tsuba Curve" \ "Twisted Cross""Wheel in Trough""Whip Curve""Witch of Agnesi" default = 1 hint = "The trap type." visible = @pct == 1 endparam heading caption = "Lighting Parameters" visible = @pct == 1 && @lightPar endheading bool param lightPar caption = "Lighting Parameters" default = true visible = @pct == 1 endparam int param zchoice caption = "Lighting" enum = "Toplight""Edgelight""Widelight""Sidelight""Innerlight"\ "Outerlight""Glow""Diffuse Glow""Function" default = 2 hint = "Changes the way the gradient maps to the elements. Some may seem \ similar but react very differently when formula patterns are \ applied. Go to 'Lighting Function 1' for more choices" visible = @pct == 1 && @lightPar endparam bool param light caption = "Invert Lighting" default = false visible = @pct == 1 && @lightPar endparam func fnzzz caption = "Lighting Function 1" default = ident () hint = "Further varies the 'Lighting' permutations" visible = @pct == 1 && @lightPar endfunc func zchfn caption = "Lighting Function 2" default = ident() hint = "Further varies the 'Lighting' permutations. Appears when \ 'Lighting' is set to 'Function'" visible = @pct == 1 && @lightPar && @zchoice == "Function" endfunc int param ztraptyp caption = "Fill Light Type" enum = "Normal""Modulus""Atan2""Real""Imag" default = 1 visible = @light == true && @pct == 1 && @lightPar endparam func fnztt caption = "Fill Light Fn 1" default = log () visible = @light == true && @pct == 1 && @lightPar endfunc func gofn caption = "Fill Light Fn 2" default = ident () visible = @light == true && @pct == 1 && @lightPar endfunc func lastfn caption = "Fill Adjust Fn" default = ident () visible = @light == true && @pct == 1 && @lightPar endfunc complex param ltexp caption = "Fill Light Intensity" default = (2,0) visible = @light == true && @pct == 1 && @lightPar endparam complex param ztt1 caption = "Fill Light Offset" default = (0,0) visible = @light == true && @pct == 1 && @lightPar && @begex == 1 endparam complex param ztt2 caption = "Fill Light Strength" default = (1,0) visible = @light == true && @pct == 1 && @lightPar && @begex == 1 endparam complex param ztt3 caption = "Fill Light Power" default = (1,0) visible = @light == true && @pct == 1 && @lightPar && @begex == 1 endparam ;............................................................ heading caption = "PCT Global Parameters" visible = @pct == 1 && @trpParFn endheading bool param trpParFn caption = "PCT Global and Shaping Parameters" default = true visible = @pct == 1 endparam float param rotation caption = "Trap Rotation" default = 0 visible = @pct == 1 && @trpParFn endparam float param size caption = "Trap Size" default = 1 visible = @pct == 1 && @trpParFn endparam float param rat caption = "Ratio Width/Heigh" default = 1.0 visible = @pct == 1 && @trpParFn endparam complex param c caption = "Trap Center" default = (0,0) endparam int param pctshape caption = "Trap Flavor" enum = "Normal""Acosh""Acos" default = 0 visible = @pct == 1 && @trpParFn endparam float param zval2 caption = "Element Dimension" default = 2 hint = "Changes the dimensionality of the trap elements. A value of 2 \ gives maximum definition with 'Sidelight'" visible = @pct == 1 && @trpParFn endparam float param zval caption = "Element Focus" default = 4 min = 0 hint = "Higher values make the elements thinner and bring the shape more \ in focus" visible = @pct == 1 && @trpParFn endparam float param zval3 caption = "Element Fission" default = 0 min = 0 hint = "Changes the solidity of the trap elements" visible = @pct == 1 && @trpParFn endparam complex param test2 caption = "Move/Spread" default = (0,0) hint = "Real and Imag changes alter the X and Y positions of the elements \ and spread them without changing their shapes" visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param test3 caption = "Kaleido/Split" default = (1,0) hint = "Real changes (integer) add full element shapes equidistant \ around the center of the element. Decimal values add partial \ element shapes. Imaginary changes fracture the elements" visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param expx caption = "X Exponent" default = (1.0,0.0) visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param expy caption = "Y Exponent" default = (1.0,0.0) visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param p1 caption = "Super Shaper 1" default = (1.0,0.0) visible = @pct == 1 && @trpParFn && @begex == 1 endparam float param p2 caption = "Super Shaper 2" default = 1.0 visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param q1 caption = "Super Shaper 3" default = (1.0,0.0) visible = @pct == 1 && @trpParFn && @begex == 1 endparam complex param q2 caption = "Super Shaper 4" default = (1.0,0.0) visible = @pct == 1 && @trpParFn && @begex == 1 endparam heading caption = "More PCT Shaping Parameters" visible = @pct == 1 && @trpParFn && @pctPar endheading bool param pctPar caption = "More PCT Shaping Parameters" default = false visible = @pct == 1 && @trpParFn endparam int param varTypePct caption = "Trap X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @pct == 1 && @trpParFn && @pctPar endparam func zzpctfn caption = "Trap X/Y Function" default = ident() visible = @pct == 1 && @trpParFn && @pctPar endfunc complex param zzpct1 caption = "Trap X/Y Offset" default = (0,0) visible = @pct == 1 && @trpParFn && @pctPar endparam complex param zzpct2 caption = "Trap X/Y Strength" default = (1,0) visible = @pct == 1 && @trpParFn && @pctPar endparam complex param zzpct3 caption = "Trap X/Y Power" default = (1,0) visible = @pct == 1 && @trpParFn && @pctPar endparam int param opaddPct caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @pct == 1 && @trpParFn && @pctPar endparam func nufuncxtxp caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endfunc func nufuncxtyp caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endfunc bool param nuflavPct caption = "Change Extra Y Fn Flavor" default = false visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam complex param xtra1xp caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam complex param xtra2xp caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn endparam complex param xtra3xp caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam complex param xtra1yp caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam complex param xtra2yp caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam complex param xtra3yp caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct == 1 && @trpParFn && @pctPar endparam heading caption = "Advanced Trapping and Texture" visible = @trpParFn && @pct == 1 endheading param trapmode caption = "Trapping Recipe" enum = "Straight""Funky" default = 0 hint = "Determines how coloring modes other than 'Distance' are realized. \ With 'Straight' other coloring mode elements follow the shapes \ drawn by 'Distance'. 'Funky' is more liberal, and the shapes \ can be varied by varying 'Funky/Texture Fn' and 'Funky/Tx Power'" visible = @begex == 1 && @pct == 1 && @trpParFn && @colorby != "Distance" endparam int param fixit caption = "Mode Recipe" enum = "Straight""Funky" default = 0 hint = "'Straight' gives the correct trapping of elements in all coloring \ modes, but limits options possible in using \ 'Trapping Mode' and 'Mode Flavor'. 'Straight' should be used when \ changing the individual trap functions." visible = @begex == 1 && @pct == 1 && @trpParFn endparam param trap caption = "Trapping Mode" enum = "None""Sum Z""Trap Z""Modulus Z""Morph Z""#Z" default = 0 hint = "Determines which type of variable is used to calculate the trapped \ Z" visible = @begex == 1 && @pct == 1 && @trpParFn endparam int param pflavor caption = "Mode Flavor" enum = "Sum Z""Trap Z""Modulus Z""Morph Z""#Z" default = 0 hint = "Determines which variable is used to calculate the distance for \ trapping. Sometimes does not affect image in 'Distance' mode but \ affects textures. Does not work well with all mode combinations, \ and works best with 'Sidelight'" visible = @begex == 1 && @pct == 1 && @trpParFn endparam bool param ipat caption = "Add Pattern (Fix Sum Z)" default = true hint = "Adds the pixel pattern into coloring modes other than 'Distance' \ using 'Sidelight'. Also helps create clean trap shapes when \ 'Trapping Mode' and 'Mode Flavor' are both set to 'Sum Z" visible = @begex == 1 && @pct == 1 && @trpParFn && (@trap == "Sum Z" || \ @pflavor == "Sum Z") endparam func testfnz caption = "Trapping Function" default = ident () hint = "Applies a function to the trapped elements" visible = @begex == 1 && @pct == 1 && @trpParFn && @fixit == "Funky" endfunc complex param distz1 caption = "Trapping Shift" default = (0,0) hint = "Affects the trapped elements in coloring modes other than \ Distance. Has only a small effect if 'Mode Recipe' is set to \ 'Straight'" visible = @begex == 1 && @pct == 1 && @trpParFn endparam complex param distz2 caption = "Trapping Strength" default = (1,0) hint = "Affects the trapped elements in coloring modes other than \ Distance. Has only a small effect if 'Mode Recipe' is set to \ 'Straight'" visible = @begex == 1 && @pct == 1 && @trpParFn endparam complex param distz caption = "Trapping Power" default = (1,0) hint = "Affects the trapped elements in coloring modes other than \ Distance. Has only a small effect if 'Mode Recipe' is set to \ 'Straight'" visible = @begex == 1 && @pct == 1 && @trpParFn endparam float param pval caption = "Thickness/Pattern" default = 0 hint = "Determines the thickness of trapped elements in coloring modes \ other than Distance with the 'Funky' trapping recipe. Also affects \ the pattern thickness when pixel patterns are present. Both \ negative and positive values can be used" visible = @begex == 1 && @pct == 1 && @trpParFn endparam float param pval2 caption = "Pattern Distribution" default = 1 hint = "Determines the amount and distribution of pixel pattern in \ coloring modes other than 'Distance' using the 'Funky' trapping \ recipe. Both negative and positive values can be used" visible = @begex == 1 && @pct == 1 && @trpParFn && @pvol != 0 endparam func txtifn caption = "Color Mode/Tx Fn" default = round() hint = "Use to vary the way the elements in coloring modes other than \ 'Distance' are drawn. Also useful in varying textures in all \ 'Trap Z' texture init modes" visible = @begex == 1 && @pct == 1 && @trpParFn && @fixit == "Funky" endfunc float param ints caption = "Color Mode/Tx Power" default = 2.0 hint = "Use to vary the way the elements in coloring modes other than \ 'Distance' are drawn. Also useful in varying textures in all \ 'Trap Z' texture init modes" visible = @begex == 1 && @pct == 1 && @trpParFn && @fixit == "Funky" endparam heading caption = "Global Trap Functions" visible = @pct == 1 && @trpParFn endheading func fntest caption = "Pre-trap Function" default = ident () hint = "Alters the Z variable before trapping" visible = @pct == 1 && @trpParFn && @begex == 1 endfunc func fncx caption = "Global X Function" default = ident () hint = "Applied to the initial definition of X" visible = @pct == 1 && @trpParFn && @begex == 1 endfunc func fncy caption = "Global Y Function" default = ident () hint = "Applied to the initial definition of Y" visible = @pct == 1 && @trpParFn && @begex == 1 endfunc func fnxx caption = "Trap X Function" default = ident () hint = "Applied to the final definition of X" visible = @pct == 1 && @trpParFn && @begex == 1 endfunc func fnyy caption = "Trap Y Function" default = ident () hint = "Applied to the final definition of Y" visible = @pct == 1 && @trpParFn && @begex == 1 endfunc func fnxzx caption = "Another X Function" default = sqrt() visible = @pct == 1 && @trpParFn endfunc func fnyzy caption = "Another Y Function" default = sqrt() visible = @pct == 1 && @trpParFn endfunc heading caption = "Individual Trap Parameters" visible = @adv1 && (@shapeAdjust1 == 1.0 \ && @shapeAdjust2 == 1.0 && @shapeAdjust3 == 1.0 && @shapeAdjust4 == 1.0 \ && @shapeAdjust5 == 1.0 && @shapeAdjust6 == 1.0 && @shapeAdjust7 == 1.0 \ && @shapeAdjust8 == 1.0 && @shapeAdjust9 == 1.0 && @shapeAdjust10 == 1.0 \ && @shapeAdjust11 == 1.0 && @shapeAdjust12 == 1.0 && @zzort == 0 \ && @zzort2 == 0 && @pct == 1) endheading heading caption = "Individual Trap Parameters [active]" visible = @adv1 && ( @shapeAdjust1 != 1.0 \ || @shapeAdjust2 != 1.0 || @shapeAdjust3 != 1.0 || @shapeAdjust4 != 1.0 \ || @shapeAdjust5 != 1.0 || @shapeAdjust6 != 1.0 || @shapeAdjust7 != 1.0 \ || @shapeAdjust8 != 1.0 || @shapeAdjust9 != 1.0 || @shapeAdjust10 != 1.0 \ || @shapeAdjust11 != 1.0 || @shapeAdjust12 != 1.0 || @zzort != 0 \ || @zzort2 != 0 && @pct == 1) endheading param adv1 caption = "Individual Trap Parameters" hint = "Additional shaping parameters and functions." default = false visible = @pct == 1 endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") || (@trapType == "Cosmic Rays") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Double Trine") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") ||\ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") ||(@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") || (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Spiral") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin")) endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Strange Shape") || (@trapType == "Trifolium")) endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium")) endparam float param shapeAdjust10 caption = "Shape Adj. X" default = 1.0 hint = "Shape adjustment parameter X." visible = @adv1 && @pct == 1 &&\ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Miscellanea") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust11 caption = "Shape Adj. XI" default = 1.0 hint = "Shape adjustment parameter XI." visible = @adv1 && @pct == 1 &&((@trapType == "Driftwood Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust12 caption = "Shape Adj. XII" default = 1.0 hint = "Shape adjustment parameter XII." visible = @adv1 && @pct == 1 &&(@trapType == "Dürer's Conchoid") endparam float param zzort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param zzort2 caption = "Fission 2" hint = "Shifts some of the lines in 'Square'" default = 0 visible = @adv1 && @pct == 1 &&(@trapType == "Square") endparam func fn1 default = abs () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn2 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") ||\ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn3 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn4 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "O-nami Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Omega Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Quadrifolium") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")|| \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") ||(@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Maltese Cross Curve")||\ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn9 caption = "Function 9" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Conductor's Curve")||(@trapType == "Eye of the Needle")||\ (@trapType == "Miscellanea") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Dürer's Conchoid")) endfunc func fn10 caption = "Function 10" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && \ ((@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endfunc func fn11 caption = "Function 11" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct == 1 && (@trapType == "Dürer's Conchoid") endfunc ; Progressive ###################################################### bool param progress caption = "Progressive Parameters" default = false visible = @begex == 1 && @pct == 1 endparam int param linear caption = "Progression Type" enum = "Linear""Non-Linear 1""Non-Linear 2""Non-Linear 3" default = 0 visible = @progress && @begex == 1 && @pct == 1 endparam float param speed caption = "Non-Linear Amount" default = 1 visible = @progress && @begex == 1 && @pct == 1 && @linear != "Linear" endparam bool param incRot caption = "> Rotation" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param rotDegree caption = "Increment by" default = 0 visible = @progress && @incRot && @begex == 1 && @pct == 1 endparam bool param incSize caption = "> Size" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param sizeDegree caption = "Increment by" default = 0 visible = @progress && @incSize && @begex == 1 && @pct == 1 endparam bool param incRat caption = "> H/W ratio" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param ratDegree caption = "Increment by" default = 0 visible = @progress && @incRat && @begex == 1 && @pct == 1 endparam bool param incSa1 caption = "> Shape Adj 1" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") || (@trapType == "Cosmic Rays") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Double Trine") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") ||\ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param sa1Degree caption = "Increment by" default = 0 visible = @progress && @incSa1 && @begex == 1 && @pct == 1 endparam bool param incSa2 caption = "> Shape Adj II" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") ||(@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param sa2Degree caption = "Increment by" default = 0 visible = @progress && @incSa2 && @begex == 1 && @pct == 1 endparam bool param incSa3 caption = "> Shape Adj III" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") || (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param sa3Degree caption = "Increment by" default = 0 visible = @progress && @incSa3 && @begex == 1 && @pct == 1 endparam bool param incSa4 caption = "> Shape Adj IV" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Spiral") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param sa4Degree caption = "Increment by" default = 0 visible = @progress && @incSa4 && @begex == 1 && @pct == 1 endparam bool param incSa5 caption = "> Shape Adj V" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin")) endparam float param sa5Degree caption = "Increment by" default = 0 visible = @progress && @incSa5 && @begex == 1 && @pct == 1 endparam bool param incSa6 caption = "> Shape Adj VI" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param sa6Degree caption = "Increment by" default = 0 visible = @progress && @incSa6 && @begex == 1 && @pct == 1 endparam bool param incSa7 caption = "> Shape Adj VII" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endparam float param sa7Degree caption = "Increment by" default = 0 visible = @progress && @incSa7 && @begex == 1 && @pct == 1 endparam bool param incSa8 caption = "> Shape Adj VIII" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Strange Shape") || (@trapType == "Trifolium")) endparam float param sa8Degree caption = "Increment by" default = 0 visible = @progress && @incSa8 && @begex == 1 && @pct == 1 endparam bool param incSa9 caption = "> Shape Adj IX" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium")) endparam float param sa9Degree caption = "Increment by" default = 0 visible = @progress && @incSa9 && @begex == 1 && @pct == 1 endparam bool param incSa10 caption = "> Shape Adj X" default = false visible = @progress && @begex == 1 && @pct == 1 && \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Miscellanea") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Dürer's Conchoid") endparam float param sa10Degree caption = "Increment by" default = 0 visible = @progress && @incSa10 && @begex == 1 && @pct == 1 endparam bool param incSa11 caption = "> Shape Adj XI" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endparam float param sa11Degree caption = "Increment by" default = 0 visible = @progress && @incSa11 && @begex == 1 && @pct == 1 endparam bool param incSa12 caption = "> Shape Adj XII" default = false visible = @progress && @begex == 1 && @pct == 1 && \ (@trapType == "Dürer's Conchoid") endparam float param sa12Degree caption = "Increment by" default = 0 visible = @progress && @incSa12 && @begex == 1 && @pct == 1 endparam bool param incZzort caption = "> Fission" default = false visible = @progress && @begex == 1 && @pct == 1 && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param zzortDegree caption = "Increment by" default = 0 visible = @progress && @incZzort && @begex == 1 && @pct == 1 endparam bool param incZzort2 caption = "> Fission 2" default = false visible = @progress && @begex == 1 && @pct == 1 && @trapType == "Square" endparam float param zzort2Degree caption = "Increment by" default = 0 visible = @progress && @incZzort2 && @begex == 1 && @pct == 1 endparam bool param incTwr caption = "> Twist 1 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param twistrDegree caption = "Increment by" default = 0 visible = @progress && @incTwr && @begex == 1 && @pct == 1 endparam bool param incTwi caption = "> Twist 1 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param twistiDegree caption = "Increment by" default = 0 visible = @progress && @incTwi && @begex == 1 && @pct == 1 endparam bool param incTw2r caption = "> Twist 2 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 0 endparam float param twist2rDegree caption = "Increment by" default = 0 visible = @progress && @incTw2r && @begex == 1 && @pct == 1 endparam bool param incTw2i caption = "> Twist 2 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 0 endparam float param twist2iDegree caption = "Increment by" default = 0 visible = @progress && @incTw2i && @begex == 1 && @pct == 1 endparam bool param incTw3r caption = "> Twist 3 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 5 endparam float param twist3rDegree caption = "Increment by" default = 0 visible = @progress && @incTw3r && @begex == 1 && @pct == 1 endparam bool param incTw3i caption = "> Twist 3 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 5 endparam float param twist3iDegree caption = "Increment by" default = 0 visible = @progress && @incTw3i && @begex == 1 && @pct == 1 endparam bool param incTw4r caption = "> Twist Z1 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 endparam float param twist4rDegree caption = "Increment by" default = 0 visible = @progress && @incTw4r && @begex == 1 && @pct == 1 endparam bool param incTw4i caption = "> Twist Z1 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 endparam float param twist4iDegree caption = "Increment by" default = 0 visible = @progress && @incTw4i && @begex == 1 && @pct == 1 endparam bool param incTw5r caption = "> Twist Z2 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 0 endparam float param twist5rDegree caption = "Increment by" default = 0 visible = @progress && @incTw5r && @begex == 1 && @pct == 1 endparam bool param incTw5i caption = "> Twist Z2 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 0 endparam float param twist5iDegree caption = "Increment by" default = 0 visible = @progress && @incTw5i && @begex == 1 && @pct == 1 endparam bool param incTw6r caption = "> Twist Z3 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 5 endparam float param twist6rDegree caption = "Increment by" default = 0 visible = @progress && @incTw6r && @begex == 1 && @pct == 1 endparam bool param incTw6i caption = "> Twist Z3 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 5 endparam float param twist6iDegree caption = "Increment by" default = 0 visible = @progress && @incTw6i && @begex == 1 && @pct == 1 endparam bool param incExp1r caption = "> Bias 1 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param exp1rDegree caption = "Increment by" default = 0 visible = @progress && @incExp1r && @begex == 1 && @pct == 1 endparam bool param incExp1i caption = "> Bias 1 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param exp1iDegree caption = "Increment by" default = 0 visible = @progress && @incExp1i && @begex == 1 && @pct == 1 endparam bool param incExp3r caption = "> Bias 2 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 0 endparam float param exp3rDegree caption = "Increment by" default = 0 visible = @progress && @incExp3r && @begex == 1 && @pct == 1 endparam bool param incExp3i caption = "> Bias 2 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 0 endparam float param exp3iDegree caption = "Increment by" default = 0 visible = @progress && @incExp3i && @begex == 1 && @pct == 1 endparam bool param incExp2r caption = "> Bias 3 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 5 endparam float param exp2rDegree caption = "Increment by" default = 0 visible = @progress && @incExp2r && @begex == 1 && @pct == 1 endparam bool param incExp2i caption = "> Bias 3 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @change > 5 endparam float param exp2iDegree caption = "Increment by" default = 0 visible = @progress && @incExp2i && @begex == 1 && @pct == 1 endparam bool param incExp4r caption = "> Bias Z1 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 endparam float param exp4rDegree caption = "Increment by" default = 0 visible = @progress && @incExp4r && @begex == 1 && @pct == 1 endparam bool param incExp4i caption = "> Bias Z1 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 endparam float param exp4iDegree caption = "Increment by" default = 0 visible = @progress && @incExp4i && @begex == 1 && @pct == 1 endparam bool param incExp5r caption = "> Bias Z2 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 0 endparam float param exp5rDegree caption = "Increment by" default = 0 visible = @progress && @incExp5r && @begex == 1 && @pct == 1 endparam bool param incExp5i caption = "> Bias Z2 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 0 endparam float param exp5iDegree caption = "Increment by" default = 0 visible = @progress && @incExp5i && @begex == 1 && @pct == 1 endparam bool param incExp6r caption = "> Bias Z3 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 5 endparam float param exp6rDegree caption = "Increment by" default = 0 visible = @progress && @incExp6r && @begex == 1 && @pct == 1 endparam bool param incExp6i caption = "> Bias Z3 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 && @th2 && @change > 5 endparam float param exp6iDegree caption = "Increment by" default = 0 visible = @progress && @incExp6i && @begex == 1 && @pct == 1 endparam bool param incZval caption = "> Element Shape" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param zvalDegree caption = "Increment by" default = 0 visible = @progress && @incZval && @begex == 1 && @pct == 1 endparam bool param incZval2 caption = "> Element Dimension" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param zval2Degree caption = "Increment by" default = 0 visible = @progress && @incZval2 && @begex == 1 && @pct == 1 endparam bool param incZval3 caption = "> Element Fission" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param zval3Degree caption = "Increment by" default = 0 visible = @progress && @incZval3 && @begex == 1 && @pct == 1 endparam bool param incTest2r caption = "> Move" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param test2rDegree caption = "Increment by" default = 0 visible = @progress && @incTest2r && @begex == 1 && @pct == 1 endparam bool param incTest2i caption = "> Spread" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param test2iDegree caption = "Increment by" default = 0 visible = @progress && @incTest2i && @begex == 1 && @pct == 1 endparam bool param incTest3r caption = "> Kaleido" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param test3rDegree caption = "Increment by" default = 0 visible = @progress && @incTest3r && @begex == 1 && @pct == 1 endparam bool param incTest3i caption = "> Split" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param test3iDegree caption = "Increment by" default = 0 visible = @progress && @incTest3i && @begex == 1 && @pct == 1 endparam bool param incExpxr caption = "> X Exponent (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param expxrDegree caption = "Increment by" default = 0 visible = @progress && @incExpxr && @begex == 1 && @pct == 1 endparam bool param incExpxi caption = "> X Exponent (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param expxiDegree caption = "Increment by" default = 0 visible = @progress && @incExpxi && @begex == 1 && @pct == 1 endparam bool param incExpyr caption = "> Y Exponent (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param expyrDegree caption = "Increment by" default = 0 visible = @progress && @incExpyr && @begex == 1 && @pct == 1 endparam bool param incExpyi caption = "> Y Exponent (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param expyiDegree caption = "Increment by" default = 0 visible = @progress && @incExpyi && @begex == 1 && @pct == 1 endparam bool param incP1r caption = "> Super Shaper 1 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param p1rDegree caption = "Increment by" default = 0 visible = @progress && @incP1r && @begex == 1 && @pct == 1 endparam bool param incP1i caption = "> Super Shaper 1 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param p1iDegree caption = "Increment by" default = 0 visible = @progress && @incP1i && @begex == 1 && @pct == 1 endparam bool param incP2r caption = "> Super Shaper 2 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param p2rDegree caption = "Increment by" default = 0 visible = @progress && @incP2r && @begex == 1 && @pct == 1 endparam bool param incQ1r caption = "> Super Shaper 3 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param q1rDegree caption = "Increment by" default = 0 visible = @progress && @incQ1r && @begex == 1 && @pct == 1 endparam bool param incQ1i caption = "> Super Shaper 3 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param q1iDegree caption = "Increment by" default = 0 visible = @progress && @incQ1i && @begex == 1 && @pct == 1 endparam bool param incQ2r caption = "> Super Shaper 4 (re)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param q2rDegree caption = "Increment by" default = 0 visible = @progress && @incQ2r && @begex == 1 && @pct == 1 endparam bool param incQ2i caption = "> Super Shaper 4 (im)" default = false visible = @progress && @begex == 1 && @pct == 1 endparam float param q2iDegree caption = "Increment by" default = 0 visible = @progress && @incQ2i && @begex == 1 && @pct == 1 endparam heading caption = "Soft Gnarly Functions" visible = @pct == 0 endheading func tn3 caption = "Overall Function" default = ident() visible = @pct == 0 endfunc func tn1 caption = "Real Function" default = ident() visible = @pct == 0 endfunc func tn2 caption = "Imag Function" default = ident() visible = @pct == 0 endfunc bool param flav caption = "Change Re/Im Fn Flavor" default = false hint = "Changes the flavor of the Real and Imag functions when they \ are not set to 'ident'" visible = @pct == 0 endparam ; Masking-------------------------------------------------------------- heading caption = "Masking" visible = @msk == 0 endheading heading caption = "Masking [active]" visible = @msk != 0 endheading float param msk caption = "Masking" default = 0.0 endparam param inv caption = "Invert Mask" default = false endparam heading caption = "Pixel Patterns" endheading param formula caption = "Pixel Pattern Type" enum = "Martin" "Popcorn" "Vine" "Glyph" "Gnarl" "Hopalong" default = 1 visible = (@pvol != 0 || @colorby > 7) endparam float param pvol caption = "Pattern Percent" default = 0 hint = "Determines the overall strength of the pixel pattern overlay" endparam float param pvol2 caption = "Pattern % Real" default = 100 hint = "Changes the pattern distribution on the real axis--inactive when \ trap drawing is set to 'Imag'" visible = @begex == 1 && @pvol != 0 endparam float param pvol3 caption = "Pattern % Imag" default = 100 hint = "Changes the pattern distribution on the imaginary axis--inactive \ when trap drawing is set to 'Real'" visible = @begex == 1 && @pvol != 0 endparam heading caption = "Martin Parameters" visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endheading complex param mx caption = "Martin X1" default = (0,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam float param mxm caption = "Martin X2" default = 1 visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param mxe caption = "Martin X3" default = (1,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param my caption = "Martin Y1" default = (0,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param mym caption = "Martin Y2" default = (1,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param mye caption = "Martin Y3" default = (1,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param mxx caption = "Martin XX1" default = (0,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam float param mxxm caption = "Martin XX2" default = 1 visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam complex param mxxe caption = "Martin XX3" default = (1,0) visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endparam func martfn caption = "Martin X Func" default = sin() visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endfunc func fnmy1 caption = "Martin Y Func" default = ident() visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endfunc func fnm1 caption = "Martin XX Func" default = ident() visible = (@formula == 0 && @pvol != 0) || (@formula == 0 && @colorby > 7) endfunc heading caption = "Vine Parameters" visible = (@formula == 2 && @pvol != 0) || (@formula == 2 && @colorby > 7) endheading param flavor caption = "Vine flavor" default = 2 min = 0 visible = (@formula == 2 && @pvol != 0) || (@formula == 2 && @colorby > 7) endparam float param h2r caption = "Step Size Re" default = 0.05 visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endparam float param h2i caption = "Step Size Im" default = 0.05 visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endparam float param h3r caption = "Step Size Re" default = 0.05 visible = (@formula == 2 && @flavor > 2 && @pvol != 0) || \ (@formula == 2 && @flavor > 2 && @colorby > 7) endparam float param h3i caption = "Step Size Im" default = 0.05 visible = (@formula == 2 && @flavor > 2 && @pvol != 0) || \ (@formula == 2 && @flavor > 2 && @colorby > 7) endparam func vinfn1 caption = "Vine Fn 1" default = sin() visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endfunc func vinfn2 caption = "Vine Fn 2" default = sin() visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endfunc func vinfn3 caption = "Vine Fn 3" default = sin() visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endfunc func vinfn4 caption = "Vine Fn 4" default = sin() visible = (@formula == 2 && @flavor < 3 && @pvol != 0) || \ (@formula == 2 && @flavor < 3 && @colorby > 7) endfunc func vinfn5 caption = "Vine Fn 5" default = sin() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc func vinfn6 caption = "Vine Fn 6" default = sin() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc func vinfn7 caption = "Vine Fn 7" default = ident() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc func vinfn8 caption = "Vine Fn 8" default = ident() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc func vinfn9 caption = "Vine Fn 9" default = sin() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc func vinfn10 caption = "Vine Fn 10" default = sin() visible = (@formula == 2 && @flavor == 2 && @pvol != 0) || \ (@formula == 2 && @flavor == 2 && @colorby > 7) endfunc heading caption = "Popcorn Parameters" visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endheading float param h1r caption = "Step Size Re" default = 0.05 visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endparam float param h1i caption = "Step Size Im" default = 0.05 visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endparam func popfn1 caption = "Popcorn Fn 1" default = sin() visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endfunc func popfn2 caption = "Popcorn Fn 2" default = tan() visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endfunc func popfn3 caption = "Popcorn Fn 3" default = sin() visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endfunc func popfn4 caption = "Popcorn Fn 4" default = tan() visible = (@formula == 1 && @pvol != 0) || (@formula == 1 && @colorby > 7) endfunc heading caption = "Glyph Parameters" visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endheading float param h4r caption = "Step Size 1 Re" default = .8 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h4i caption = "Step Size 1 Im" default = .8 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h5r caption = "Step Size 2 Re" default = .8 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h5i caption = "Step Size 2 Im" default = .8 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h6r caption = "Step Size 3 Re" default = .05 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h6i caption = "Step Size 3 Im" default = .05 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h7r caption = "Step Size 4 Re" default = .05 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam float param h7i caption = "Step Size 4 Im" default = .05 visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endparam func glyfn1 caption = "Glyph Fn 1" default = cos() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn2 caption = "Glyph Fn 2" default = cos() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn3 caption = "Glyph Fn 3" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn4 caption = "Glyph Fn 4" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn5 caption = "Glyph Fn 5" default = sin() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn6 caption = "Glyph Fn 6" default = sin() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn7 caption = "Glyph Fn 7" default = sin() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn8 caption = "Glyph Fn 8" default = sin() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn9 caption = "Glyph Fn 9" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn10 caption = "Glyph Fn 10" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn11 caption = "Glyph Fn 11" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn12 caption = "Glyph Fn 12" default = ident() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn13 caption = "Glyph Fn 13" default = cos() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc func glyfn14 caption = "Glyph Fn 14" default = cos() visible = (@formula == 3 && @pvol != 0) || (@formula == 3 && @colorby > 7) endfunc heading caption = "Gnarl Functions" visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endheading float param h8r caption = "Step Size Re" default = 0.05 visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endparam float param h8i caption = "Step Size Im" default = 0.05 visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endparam func gn1 caption = "Gnarl Fn 1" default = sin() visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endfunc func gn2 caption = "Gnarl Fn 2" default = tan() visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endfunc func gn3 caption = "Gnarl Fn 3" default = cos() visible = (@formula == 4 && @pvol != 0) || (@formula == 4 && @colorby > 7) endfunc heading caption = "Hopalong Parameters" visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endheading float param pA caption = "A" default = 0.4 visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endparam float param pB caption = "B" default = 1.0 visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endparam float param pC caption = "C" default = 0.0 visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endparam float param sx caption = "Spread" default = -1 visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endparam func fnhop caption = "Hopalong Function" default = ident () visible = (@formula == 5 && @pvol != 0) || (@formula == 5 && @colorby > 7) endfunc heading caption = "Global Pattern Parameters" visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) endheading bool param patPar caption = "Global Pattern Parameters" default = true visible = @pvol != 0 || @colorby > 7 endparam int param iters caption = "# of Pattern Iters" default = 20 visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) endparam complex param pp3 caption = "Offset" default = (0,0) hint = "Moves the pattern across the X and Y axes (horizontal \ and vertical at an angle of 0 degrees) without changing it" visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) endparam float param scale1 caption = "Overall Scale" default = 1.0 visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) hint = "Determines the size of the pattern" endparam float param scale2 caption = "X Scale" default = 1.0 visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endparam float param scale3 caption = "Y Scale" default = 1.0 visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endparam float param a caption = "Alpha" default = 3.0 visible = @formula != "Martin" && ((@pvol != 0 && @patPar) || \ (@colorby > 7 && @patPar)) endparam float param b caption = "Beta" default = 2.0 visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) && \ ((@formula == "Vine" && @flavor == 1)|| @formula == "Gnarl") endparam float param exr caption = "Deform 1" default = 1 hint = "Deforms the elements" visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endparam float param pp2 caption = "Deform 2" default = 1 hint = "An exponential value that changes the relationships and sizes of \ the pattern elements" visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endparam int param addAbs caption = "Pattern Symmetry" enum = "Normal""Symmetry""Flip Symmetry" default = 0 hint = "Makes the pixel pattern bilaterally symmetrical" visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) endparam heading caption = "Pattern Functions" visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) endheading func fnp caption = "Overall Pattern Fn" default = ident() visible = (@pvol != 0 && @patPar) || (@colorby > 7 && @patPar) endfunc func fnrr caption = "Pattern R Function" default = ident () visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endfunc func fnii caption = "Pattern I Function" default = ident () visible = ((@pvol != 0 && @patPar) || (@colorby > 7 && @patPar)) \ && @begex == 1 endfunc heading caption = "More Formula Parameters" visible = @pat endheading bool param pat caption = "More Formula Parameters" default = false endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @pat endparam int param opxy caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "The last two choices add an extra set of X and Y values to the \ definition of Z whose strength and associated functions can \ be varied according to the parameters below" visible = @pat && @varType != "Modulus" endparam func pvfn caption = "X/Y Function" default = ident() visible = @pat endfunc complex param pv1 caption = "X/Y Offset" default = (0,0) visible = @pat endparam complex param pv2 caption = "X/Y Strength" default = (1,0) visible = @pat endparam complex param pv3 caption = "X/Y Power" default = (1,0) visible = @pat endparam func nufnx2 caption = "X Function" default = ident () visible = @pat endfunc func nufny2 caption = "Y Function" default = ident () visible = @pat endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false visible = @pat endparam float param pvol2a caption = "X Offset" default = 0 hint = "Changes the pattern distribution on the real axis" visible = @pat && @begex == 1 endparam float param pvol3a caption = "Y Offset" default = 0 hint = "Changes the pattern distribution on the imaginary axis" visible = @pat && @begex == 1 endparam float param pvol2b caption = "X Power" default = 1 hint = "Changes the pattern distribution on the real axis" visible = @pat && @begex == 1 endparam float param pvol3b caption = "Y Power" default = 1 hint = "Changes the pattern distribution on the imaginary axis" visible = @pat && @begex == 1 endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @pat endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @pat && @opadd > 0 endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @pat && @opadd > 0 endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 && @begex == 1 endparam ; Morph Parameters-------------------------------------------------- heading caption = "Morph Parameters" visible = @adv && (@change == 0 && @exp1 == (1,0) && @exp2 == (1,0) \ && @exp3 == (1,0) && @tw == (0,0) && @tw2 == (0,0) && @tw3 == \ (0,0) && @th2 == false) endheading heading caption = "Morph Parameters [active]" visible = @adv && (@change != 0 || @exp1 != (1,0) || @exp2 != (1,0) || \ @exp3 != (1,0) || @tw != (0,0) || @tw2 != (0,0) || @tw3 != (0,0) \ || @th2 == true) endheading param adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param th2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv endparam param mmode caption = "Z1 Mode" enum = "z+z1""z-z1""z1-z" default = 0 hint = "Defines relationship of z1 to z in 1st z block" visible = @adv && @th2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @adv && @th2 endparam param mmode2 caption = "Z2 Mode" enum = "z+z2""z-z2""z2-z""z*z2""z/z2""z2/z" default = 0 hint = "Defines relationship of z2 to z in 2nd z block" visible = @adv && @th2 && @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 = @adv && @th2 && @change > 0 endparam param mmode3 caption = "Z3 Mode" enum = "z+z3""z-z3""z3-z""z*z3""z/z3""z3/z" default = 0 hint = "Defines relationship of z3 to z in 3rd z block" visible = @adv && @th2 && @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 = @adv && @th2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @th2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @th2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @th2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @th2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @th2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @th2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @th2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @th2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @th2 && @adv && @change > 5 endfunc ; texture------------------------------------------------------------- heading caption = "Textures" visible = @advt && (@rnd2 == 0 && @fbmtxt == 0 && @decamt == 0 && \ @gnarl_amt == 0) endheading heading caption = "Textures [active]" visible = @advt && (@rnd2 != 0 || @fbmtxt != 0 || @decamt != 0 || \ @gnarl_amt != 0) endheading param advt caption = "Textures" default = false endparam float param txamt caption = "Overall Tx Percent" default = 100.0 hint = "Controls the amount of \ Random, fBm, Decimal, Popgnarl and Geometrix \ texture applied cumulatively. Negative values change the tonality \ of the textures" 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 hint = "Negative values alter the tones of the texture" 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" hint = "Determines which variable(s) initialize(s) the texture" default = 0 visible = @advt && @advfbm endparam param ztyp4 caption = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Trap3 Z""Trap X""Trap Y""Pattern"\ "Dist""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'fBm Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 pttsa caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param pttsb caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param pttsc caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param pttsd 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 hint = "Negative values alter the tones of the texture" 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 Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Trap3 Z""Trap X""Trap Y""Pattern"\ "Dist""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'Decimal Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 = "Soften Texture" 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 hint = "Negative values alter the tones of the texture" 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Trap3 Z""Trap X""Trap Y""Pattern"\ "Dist""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'Popgnarl Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 hint = "Negative values alter the tones of the texture" 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Trap3 Z""Trap X""Trap Y""Pattern"\ "Dist""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'Geometrix Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 txia5 caption = "Pattern 1" default = (0.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param txib5 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param txic5 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.4 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 = "Scale" default = 1.0 hint = "Higher values create more detail in the texture" visible = @advt && @advtr endparam float param trp1 caption = "Density" default = 1 visible = @advt && @advtr hint = "Densest texture is at '1'" 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Trap3 Z""Trap X""Trap Y""Pattern"\ "Dist""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'Add'l Tx Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" visible = @advt && @advatx && (@trinit < 5 || @trinit > 14 && @trinit < 21) 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 } ********************************************************* tm+mt+gn+sdc-Naru'sGnarlyPotpourri { ; First and foremost recognition and appreciation must ; go to Mark Townsend, whose "Gnarly Orbit Traps" and ; "Advanced Gnarl" form the basis on which this ; coloring is built. Many thanks also to Gilles Nadeau, ; who wrote the first version of this coloring and ; invited me to expand upon it. Also invaluable were ; the contributions of Susan D. Chambless. ; ; Please refer to tma.txt for a help file (in text form). ; ; Because it is quite calculation-intensive this ucl can ; be agonizingly slow to render, especially on an older ; machine. Consider yourself warned... ; ; Basically this coloring uses formulae such as "Gnarl" ; or "Vine" to create element shapes via orbit trapping. ; If desired the user can also run the result through ; Plane Curve Trap Shapes, and the amount of "formula pattern" ; can be varied. If the formula pattern is removed completely ; clean Plane Curve Trap shapes are the result. ; This ucl creates PCT shapes which are congruent ; with "Painter's Traps" and they can be used together. ; ; In addition there are two complete sets of formula patterns ; present, and the user can combine the results of any two ; patterns (one from each set) in several different ways. ; ; Many thanks and much appreciation also to Samuel Monnier ; and Ken Childress for allowing their Plane Curve Trap ; shapes to be used, and to Michèle Dessureault, Andreas ; Lober, Damien M. Jones and Dennis Magar for allowing their ; texture code to be included. ; ; "Naru" was my cat, presently on to other things after ; spending 15 years here on Earth with me as faithful ; friend and loving companion. She deserves some credit, ; having warmed my lap many a day and night as I worked ; away on this and other fractal stuff. ; Also, I couldn't resist the nice alliteration... ; ; Toby Marshall 9 Apr. 2008 ; version 1.6 --optimized Morph code and added a bunch of ; new shaping parameters both to the formula section and to ; the trap section. Also added a function and some params ; to most coloring modes which affect how the gradient is ; mapped to the elements. ; ; version 1.61 --fixed some compatibility problems with ; earlier versions ; ; version 1.62 --fixed a typo that stopped some params ; from appearing when they should. ; ; version 1.63 --added some params to fBm texturing ; ; version 1.64 --added new trap modes: "First" and "Last", ; and a param (Element Width) to control them. Also added ; an "Element Contrast" parameter. ; ; version 1.65 --added new trap modes "Average", ; "Farthest" and "Sum", and param "Edge Definition". ; ; version 1.66 --added "limited iterations"; many thanks ; to Damien M. Jones for letting me use this code of his. ; ; version 1.67 --added a pattern repeat param to the limited ; iter code, adapted from Ron Barnett. ; ; version 1.68 --added more limited iter code. ; ; version 1.69 --rationalized and standardized limited ; iter code. init: complex p = (0,0) complex zz = (0,0) complex z1 = (0,0) complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,0) complex z1q = (0,0) complex z1p = (0,0) complex ztt = (0,0) complex ztu = (0,0) int i = 0 int j = 0 trap_z = 0 trap2_z = 0 trap_p = 0 float x = 0 float y = 0 float xx = 0 int iter = 0 float dist = 0 int trap_iter = 0 float texture = 0 bool masked = false float min_dist = 1e30 complex tz = (0,0) float texture = 0.0 float ddd = 0 float tmp = 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 float xxx = 0 float yy = 0 pfb = (0,0) ppp = (0,0) int i = 0 float aaa = 0 float texture_tr = 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 float rn = real(#random) int itt = 0 complex tza = (0,0) float aaa = 0 float t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float v = 0 float w = 0 float qa = 0 float qb = 0 float qc = 0 float qc = 0 float mv1 = 0 float mv2 = 0 float mv3 = 0 float vv1 = 0 float vv2 = 0 float vv3 = 0 float vv4 = 0 float vv5 = 0 float vv6 = 0 float vv7 = 0 float vv8 = 0 float glv1 = 0 float glv2 = 0 float glv3 = 0 float glv4 = 0 float glv5 = 0 float glv6 = 0 float glv7 = 0 float glv8 = 0 float glv9 = 0 float glv10 = 0 float glv11 = 0 float glv12 = 0 float gn1 = 0 float gn2 = 0 float gn3 = 0 float gn4 = 0 float gn5 = 0 float gn6 = 0 float gn7 = 0 float gn8 = 0 float newx = 0 float newy = 0 int seed = 0 seed = random(@randomseed) float vQ = 0 float wQ = 0 float qaQ = 0 float qbQ = 0 float qcQ = 0 float qcQ = 0 float mv1Q = 0 float mv2Q = 0 float mv3Q = 0 float vv1Q = 0 float vv2Q = 0 float vv3Q = 0 float vv4Q = 0 float vv5Q = 0 float vv6Q = 0 float vv7Q = 0 float vv8Q = 0 float glv1Q = 0 float glv2Q = 0 float glv3Q = 0 float glv4Q = 0 float glv5Q = 0 float glv6Q = 0 float glv7Q = 0 float glv8Q = 0 float glv9Q = 0 float glv10Q = 0 float glv11Q = 0 float glv12Q = 0 float gn1Q = 0 float gn2Q = 0 float gn3Q = 0 float gn4Q = 0 float gn5Q = 0 float gn6Q = 0 float gn7Q = 0 float gn8Q = 0 complex nuvar = 0 bool trapped = false if @edges == "Farthest" || @edges == "Farthest Corrected" min_dist = 0 endif float dave = 0 float dsum = 0 float distance = 0 bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = @rootfn(#z) ; Morph code if @tha2 == false qwe = @nufunc(z1-@tw)^@exp3 rty = @nufunc2((z1-@tw2)^@exp1) uio = @nufunc3((z1-@tw3)^@exp2) if @change == "1" z1 = @nufunc(z1-@tw)^@exp1 elseif @change == "2" z1 = qwe+rty elseif @change == "3" z1 = qwe-rty elseif @change == "4" z1 = qwe*rty elseif @change == "5" z1 = qwe/rty elseif @change == "6" z1 = qwe^rty elseif @change == "7" if @op == "+" z1 = qwe+(rty+uio) elseif @op == "-" z1 = qwe+(rty-uio) elseif @op == "*" z1 = qwe+(rty*uio) elseif @op == "/" z1 = qwe+(rty/uio) elseif @op == "^" z1 = qwe+(rty^uio) endif elseif @change == "8" if @op == "+" z1 = qwe-(rty+uio) elseif @op == "-" z1 = qwe-(rty-uio) elseif @op == "*" z1 = qwe-(rty*uio) elseif @op == "/" z1 = qwe-(rty/uio) elseif @op == "^" z1 = qwe-(rty^uio) endif elseif @change == "9" if @op == "+" z1 = qwe*(rty+uio) elseif @op == "-" z1 = qwe*(rty-uio) elseif @op == "*" z1 = qwe*(rty*uio) elseif @op == "/" z1 = qwe*(rty/uio) elseif @op == "^" z1 = qwe*(rty^uio) endif elseif @change == "10" if @op == "+" z1 = qwe/(rty+uio) elseif @op == "-" z1 = qwe/(rty-uio) elseif @op == "*" z1 = qwe/(rty*uio) elseif @op == "/" z1 = qwe/(rty/uio) elseif @op == "^" z1 = qwe/(rty^uio) endif elseif @change == "11" if @op == "+" z1 = qwe^(rty+uio) elseif @op == "-" z1 = qwe^(rty-uio) elseif @op == "*" z1 = qwe^(rty*uio) elseif @op == "/" z1 = qwe^(rty/uio) elseif @op == "^" z1 = qwe^(rty^uio) 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 @version <= 2.34 if @mmode == "z+z1" nuvar = aa elseif @mmode == "z-z1" nuvar = bb elseif @mmode == "z1-z" nuvar = cc endif if @change == "1" z1 = nuvar^@exp1 elseif @change == "2" if @mmode2 == "z+z2" z1 = nuvar^@exp3+@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3+@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3+@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3+@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3+@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3+@nufunc5(ff/gg)^@exp1 endif elseif @change == "3" if @mmode2 == "z+z2" z1 = nuvar^@exp3-@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3-@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3-@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3-@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3-@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3-@nufunc5(ff/gg)^@exp1 endif elseif @change == "4" if @mmode2 == "z+z2" z1 = nuvar^@exp3*@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3*@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3*@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3*@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3*@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3*@nufunc5(ff/gg)^@exp1 endif elseif @change == "5" if @mmode2 == "z+z2" z1 = nuvar^@exp3/@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3/@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3/@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3/@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3/@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3/@nufunc5(ff/gg)^@exp1 endif elseif @change == "6" if @mmode2 == "z+z2" z1 = nuvar^@exp3^@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3^@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3^@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3^@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3^@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3^@nufunc5(ff/gg)^@exp1 endif elseif @change == "7" if @mmode3 == "z+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3+@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3+@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3+@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3+@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3+@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3-@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3-@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3-@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3-@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3-@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3*@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3*@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3*@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3*@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3*@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3/@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3/@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3/@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3/@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3/@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3^@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3^@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3^@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3^@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3^@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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 else if @change == "1" z1 = nuvar^@exp1 elseif @change == "2" if @mmode2 == "z+z2" z1 = nuvar^@exp3+@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3+@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3+@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3+@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3+@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3+@nufunc5(ff/gg)^@exp1 endif elseif @change == "3" if @mmode2 == "z+z2" z1 = nuvar^@exp3-@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3-@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3-@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3-@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3-@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3-@nufunc5(ff/gg)^@exp1 endif elseif @change == "4" if @mmode2 == "z+z2" z1 = nuvar^@exp3*@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3*@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3*@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3*@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3*@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3*@nufunc5(ff/gg)^@exp1 endif elseif @change == "5" if @mmode2 == "z+z2" z1 = nuvar^@exp3/@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3/@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3/@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3/@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3/@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3/@nufunc5(ff/gg)^@exp1 endif elseif @change == "6" if @mmode2 == "z+z2" z1 = nuvar^@exp3^@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1 = nuvar^@exp3^@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1 = nuvar^@exp3^@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1 = nuvar^@exp3^@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1 = nuvar^@exp3^@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/z" z1 = nuvar^@exp3^@nufunc5(ff/gg)^@exp1 endif elseif @change == "7" if @mmode3 == "z+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3+@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3+@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3+@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3+@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3+@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3-@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3-@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3-@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3-@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3-@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3*@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3*@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3*@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3*@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3*@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3/@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3/@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3/@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3/@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3/@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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+z3" z1q = @nufunc3(oo+hh)^@exp2 elseif @mmode3 == "z-z3" z1q = @nufunc3(oo-hh)^@exp2 elseif @mmode3 == "z3-z" z1q = @nufunc6(jj^@exp6-pp)^@exp2 elseif @mmode3 == "z*z3" z1q = @nufunc3(oo*hh)^@exp2 elseif @mmode3 == "z/z3" z1q = @nufunc3(oo/hh)^@exp2 elseif @mmode3 == "z3/z" z1q = @nufunc6(jj^@exp6/pp)^@exp2 endif if @mmode2 == "z+z2" z1p = nuvar^@exp3^@nufunc2(kk+dd)^@exp1 elseif @mmode2 == "z-z2" z1p = nuvar^@exp3^@nufunc2(kk-dd)^@exp1 elseif @mmode2 == "z2-z" z1p = nuvar^@exp3^@nufunc5(ff-gg)^@exp1 elseif @mmode2 == "z*z2" z1p = nuvar^@exp3^@nufunc2(kk*dd)^@exp1 elseif @mmode2 == "z/z2" z1p = nuvar^@exp3^@nufunc2(kk/dd)^@exp1 elseif @mmode2 == "z2/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 p = ((z1) / @scale*2)-@offset1 p = @fnov2(@fnov1(p)^@pp2) seed = random(@randomseed) ; Iterate the Gnarly formulas i = 0 x = real(@fnx3(p)^@exr) * @scale2 y = imag(@fny3(p)) * @scale3 while i < @iters xx = x bool scenario1 = false ; Determine scenario to be used: if @seq == "Single" scenario1 = true elseif @seq == "Blend" seed = random(seed) if @blendFn == "abs" if abs(seed)/#randomrange < @prob1 scenario1 = true else scenario1 = false endif elseif @blendFn == "ident" if real(ident(seed))/#randomrange < @prob1 scenario1 = true else scenario1 = false endif elseif @blendFn == "exp (fixed value)" if real(exp(seed))/#randomrange < @prob1 scenario1 = true else scenario1 = false endif elseif @blendFn == "tan" if real(tan(seed))/#randomrange < @prob1 * .0000000001 scenario1 = true else scenario1 = false endif elseif @blendFn == "sin" if real(sin(seed))/#randomrange < @prob1 * .0000000001 scenario1 = true else scenario1 = false endif elseif @blendFn == "acos" if real(acos(seed))/#randomrange < @prob1 * .0000000001 scenario1 = true else scenario1 = false endif elseif @blendFn == "cos" if real(cos(seed))/#randomrange < @prob1 * .00000000001 scenario1 = true else scenario1 = false endif elseif @blendFn == "sinh (fixed value)" if real(sinh(seed))/#randomrange < @prob1 scenario1 = true else scenario1 = false endif elseif @blendFn == "cosh (fixed value)" if real(cosh(seed))/#randomrange < @prob1 scenario1 = true else scenario1 = false endif endif elseif @seq == "Modulated" if (iter % (@modBy+@modCmp) < @modCmp) scenario1 = true else scenario1 = false endif endif if(scenario1 == true) if @formula == "Martin" if @martV1 == true mv1 = x else mv1 = y endif if @martV2 == true mv2 = y else mv2 = x endif if @martV3 == true mv3 = y else mv3 = xx endif if @martFlav == true if @martOp == "1" x = cabs(@fnmy1((mv1-@my)*@mym)^@mye) - cabs(@martfn((mv2-@mx)*@mxm)^@mxe) y = @maa - cabs(@fnmx1((mv3-@mxx)*@mxxm)^@mxxe) elseif @martOp == "2" x = cabs(@fnmy1((mv1-@my)*@mym)^@mye) + cabs(@martfn((mv2-@mx)*@mxm)^@mxe) y = @maa - cabs(@fnmx1((mv3-@mxx)*@mxxm)^@mxxe) endif else if @martOp == "1" x = real(@fnmy1((mv1-@my)*@mym)^@mye) - real(@martfn((mv2-@mx)*@mxm)^@mxe) y = @maa - real(@fnmx1((mv3-@mxx)*@mxxm)^@mxxe) elseif @martOp == "2" x = real(@fnmy1((mv1-@my)*@mym)^@mye) + real(@martfn((mv2-@mx)*@mxm)^@mxe) y = @maa - real(@fnmx1((mv3-@mxx)*@mxxm)^@mxxe) endif endif elseif @formula == "Popcorn" if @funcPopType == true v = cabs(@fnpopx(x)*@popx) w = cabs(@fnpopy(y)*@popy) else v = real(@fnpopx(x)*@popx) w = real(@fnpopy(y)*@popy) endif if @v1 == true qa = ((xx-@pop1a)*@pop1b)^@pop1c else qa = ((y-@pop1a)*@pop1b)^@pop1c endif if @v2 == true qb = ((xx-@pop2a)*@pop2b)^@pop2c else qb = ((y-@pop2a)*@pop2b)^@pop2c endif if @v3 == true qc = ((y-@pop3a)*@pop3b)^@pop3c else qc = ((xx-@pop3a)*@pop3b)^@pop3c endif if @v4 == true qd = ((y-@pop4a)*@pop4b)^@pop4c else qd = ((xx-@pop4a)*@pop4b)^@pop4c endif if @popflavor1 == "1" if @popFlavor2 == "1" x = v - real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "2" x = v - real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "3" x = v + real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "4" x = v + real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) endif elseif @popflavor1 == "2" if @popFlavor2 == "1" x = v - real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "2" x = v - real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "3" x = v + real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "4" x = v + real(@h1 * @popfn1(qa + @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) endif elseif @popflavor1 == "3" if @popFlavor2 == "1" x = v - real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "2" x = v - real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "3" x = v + real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "4" x = v + real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc + @popfn4(imag(@popc) * qd))) endif elseif @popflavor1 == "4" if @popFlavor2 == "1" x = v - real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "2" x = v - real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "3" x = v + real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w - imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) elseif @popFlavor2 == "4" x = v + real(@h1 * @popfn1(qa - @popfn2(real(@popc) * qb))) y = w + imag(@h1 * @popfn3(qc - @popfn4(imag(@popc) * qd))) endif endif elseif @formula == "Vine" if @vinV1 == true vv1 = ((y-@v1a)*@v1b)^@v1c else vv1 = ((x-@v1a)*@v1b)^@v1c endif if @vinV2 == true vv2 = ((xx-@v2a)*@v2b)^@v2c else vv2 = ((y-@v2a)*@v2b)^@v2c endif if @vinV3 == true vv3 = ((xx-@v3a)*@v3b)^@v3c else vv3 = ((y-@v3a)*@v3b)^@v3c endif if @vinV4 == true vv4 = ((x-@v4a)*@v4b)^@v4c else vv4 = ((y-@v4a)*@v4b)^@v4c endif if @vinV5 == true vv5 = ((y-@v5a)*@v5b)^@v5c else vv5 = ((xx-@v5a)*@v5b)^@v5c endif if @vinV6 == true vv6 = ((y-@v6a)*@v6b)^@v6c else vv6 = ((xx-@v6a)*@v6b)^@v6c endif if @vinV7 == true vv7 = ((xx-@v7a)*@v7b)^@v7c else vv7 = ((y-@v7a)*@v7b)^@v7c endif if @vinV8 == true vv8 = ((y-@v8a)*@v8b)^@v8c else vv8 = ((xx-@v8a)*@v8b)^@v8c endif if @vinOp1 == "1" if @vinFlavor == true if @flavor == 0 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = cabs(@vinfn7(y)) float newy = cabs(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3c == "1" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "2" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3c == "3" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "4" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2c == "1" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "2" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "3" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "4" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) endif endif else if @flavor == 0 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = real(@vinfn7(y)) float newy = real(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3r == "1" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "2" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3r == "3" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "4" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2r == "1" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "2" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "3" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "4" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) endif endif endif elseif @vinOp1 == "2" if @vinFlavor == true if @flavor == 0 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = cabs(@vinfnx1(vv1)) - @h2r * cabs(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = cabs(@vinfn7(y)) float newy = cabs(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3c == "1" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "2" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3c == "3" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "4" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2c == "1" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "2" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "3" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "4" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) endif endif else if @flavor == 0 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = real(@vinfnx1(vv1)) - @h2r * real(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = real(@vinfn7(y)) float newy = real(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3r == "1" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "2" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3r == "3" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "4" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2r == "1" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "2" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "3" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "4" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) endif endif endif elseif @vinOp1 == "3" if @vinFlavor == true if @flavor == 0 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = cabs(@vinfny1(vv4)) - @h2i * cabs(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = cabs(@vinfn7(y)) float newy = cabs(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3c == "1" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "2" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3c == "3" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "4" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2c == "1" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "2" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "3" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "4" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) endif endif else if @flavor == 0 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = real(@vinfny1(vv4)) - @h2i * real(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = real(@vinfn7(y)) float newy = real(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3r == "1" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "2" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3r == "3" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "4" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2r == "1" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "2" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "3" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "4" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) endif endif endif elseif @vinOp1 == "4" if @vinFlavor == true if @flavor == 0 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = cabs(@vinfnx1(vv1)) + @h2r * cabs(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = cabs(@vinfny1(vv4)) + @h2i * cabs(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = cabs(@vinfn7(y)) float newy = cabs(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3c == "1" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "2" newx = cabs(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3c == "3" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3c == "4" newx = cabs(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = cabs(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2c == "1" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "2" x = cabs(@vinfnx2(x)) - @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "3" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) - @h3i * cabs(@vinfn10(newy)) elseif @vinOp2c == "4" x = cabs(@vinfnx2(x)) + @h3r * cabs(@vinfn9(newx)) y = cabs(@vinfny2(y)) + @h3i * cabs(@vinfn10(newy)) endif endif else if @flavor == 0 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2 + @vinfn3 \ (@va * vv3 ))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5 + @vinfn4 \ (@va * vv6))) elseif @flavor == 1 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2^@vb + @vinfn3 \ (@va * vv3))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5^@vb + @vinfn4 \ (@va * vv6))) elseif @flavor == 2 x = real(@vinfnx1(vv1)) + @h2r * real(@vinfn1(vv2 + @vinfn3(@va * \ (vv3 + @vinfn5(@va * vv7))))) y = real(@vinfny1(vv4)) + @h2i * real(@vinfn2(vv5 + @vinfn4(@va * \ (vv6 + @vinfn6(@va * vv8))))) else float newx = real(@vinfn7(y)) float newy = real(@vinfn8(x)) int j = 0 while j < @flavor j = j + 1 if @vinOp3r == "1" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "2" newx = real(@vinfny1(y)) + real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) elseif @vinOp3r == "3" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) + real(@vinfn11(@va * newy)) elseif @vinOp3r == "4" newx = real(@vinfny1(y)) - real(@vinfn11(@va * newx)) newy = real(@vinfnx1(x)) - real(@vinfn11(@va * newy)) endif endwhile if @vinOp2r == "1" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "2" x = real(@vinfnx2(x)) - @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "3" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) - @h3i * real(@vinfn10(newy)) elseif @vinOp2r == "4" x = real(@vinfnx2(x)) + @h3r * real(@vinfn9(newx)) y = real(@vinfny2(y)) + @h3i * real(@vinfn10(newy)) endif endif endif endif elseif @formula == "Glyph" if @glyphFlavor1 == true float newx = cabs(@glyfn11(y)) float newy = cabs(@glyfn12(x)) int j = 0 while j < @flavor j = j + 1 if @glv1 == "y" ; glv1 = ((y-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "x" glv1 = ((x-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "newy" glv1 = ((newy-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "newx" glv1 = ((newx-@gly1a)*@gly1b)^@gly1c endif if @glv2 == "y" glv2 = ((y-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "x" glv2 = ((x-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "newy" glv2 = ((newy-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "newx"; glv2 = ((newx-@gly2a)*@gly2b)^@gly2c endif if @glv3 == "y" glv3 = ((y-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "x" glv3 = ((x-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "newy" glv3 = ((newy-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "newx"; glv3 = ((newx-@gly3a)*@gly3b)^@gly3c endif if @glv4 == "y" glv4 = ((y-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "x"; glv4 = ((x-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "newy" glv4 = ((newy-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "newx" glv4 = ((newx-@gly4a)*@gly4b)^@gly4c endif if @glv5 == "y" glv5 = ((y-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "x" glv5 = ((x-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "newy"; glv5 = ((newy-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "newx" glv5 = ((newx-@gly5a)*@gly5b)^@gly5c endif if @glv6 == "y" glv6 = ((y-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "x" glv6 = ((x-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "newy" ; glv6 = ((newy-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "newx" glv6 = ((newx-@gly6a)*@gly6b)^@gly6c endif if @glyOp1 == "1" newx = cabs(@glyfn3(glv1)) + @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = cabs(@glyfn4(glv4)) + @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "2" newx = cabs(@glyfn3(glv1)) - @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = cabs(@glyfn4(glv4)) + @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "3" newx = cabs(@glyfn3(glv1)) + @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = cabs(@glyfn4(glv4)) - @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "4" newx = cabs(@glyfn3(glv1)) - @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = cabs(@glyfn4(glv4)) - @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) endif endwhile if @glv7 == "y" glv7 = ((y-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "x"; glv7 = ((x-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "newy" glv7 = ((newy-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "newx" glv7 = ((newx-@gly7a)*@gly7b)^@gly7c endif if @glv8 == "y" glv8 = ((y-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "x" glv8 = ((x-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "newy" glv8 = ((newy-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "newx"; glv8 = ((newx-@gly8a)*@gly8b)^@gly8c endif if @glv9 == "y" glv9 = ((y-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "x" glv9 = ((x-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "newy" glv9 = ((newy-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "newx"; glv9 = ((newx-@gly9a)*@gly9b)^@gly9c endif if @glv10 == "y"; glv10 = ((y-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "x" glv10 = ((x-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "newy" glv10 = ((newy-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "newx" glv10 = ((newx-@gly10a)*@gly10b)^@gly10c endif if @glv11 == "y" glv11 = ((y-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "x" glv11 = ((x-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "newy"; glv11 = ((newy-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "newx" glv11 = ((newx-@gly11a)*@gly11b)^@gly11c endif if @glv12 == "y" glv12 = ((y-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "x" glv12 = ((x-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "newy"; glv12 = ((newy-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "newx" glv12 = ((newx-@gly12a)*@gly12b)^@gly12c endif if @glyOp2 == "1" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "2" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "3" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "4" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "5" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "6" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "7" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "8" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "9" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "10" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "11" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "12" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "13" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "14" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "15" x = cabs(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "16" x = cabs(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = cabs(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) endif elseif @glyphFlavor1 == false float newx = real(@glyfn11(y)) float newy = real(@glyfn12(x)) int j = 0 while j < @flavor j = j + 1 if @glv1 == "y" ; glv1 = ((y-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "x" glv1 = ((x-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "newy" glv1 = ((newy-@gly1a)*@gly1b)^@gly1c elseif @glv1 == "newx" glv1 = ((newx-@gly1a)*@gly1b)^@gly1c endif if @glv2 == "y" glv2 = ((y-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "x" glv2 = ((x-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "newy" glv2 = ((newy-@gly2a)*@gly2b)^@gly2c elseif @glv2 == "newx"; glv2 = ((newx-@gly2a)*@gly2b)^@gly2c endif if @glv3 == "y" glv3 = ((y-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "x" glv3 = ((x-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "newy" glv3 = ((newy-@gly3a)*@gly3b)^@gly3c elseif @glv3 == "newx"; glv3 = ((newx-@gly3a)*@gly3b)^@gly3c endif if @glv4 == "y" glv4 = ((y-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "x"; glv4 = ((x-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "newy" glv4 = ((newy-@gly4a)*@gly4b)^@gly4c elseif @glv4 == "newx" glv4 = ((newx-@gly4a)*@gly4b)^@gly4c endif if @glv5 == "y" glv5 = ((y-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "x" glv5 = ((x-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "newy"; glv5 = ((newy-@gly5a)*@gly5b)^@gly5c elseif @glv5 == "newx" glv5 = ((newx-@gly5a)*@gly5b)^@gly5c endif if @glv6 == "y" glv6 = ((y-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "x" glv6 = ((x-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "newy" ; glv6 = ((newy-@gly6a)*@gly6b)^@gly6c elseif @glv6 == "newx" glv6 = ((newx-@gly6a)*@gly6b)^@gly6c endif if @glyOp1 == "1" newx = real(@glyfn3(glv1)) + @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = real(@glyfn4(glv4)) + @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "2" newx = real(@glyfn3(glv1)) - @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = real(@glyfn4(glv4)) + @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "3" newx = real(@glyfn3(glv1)) + @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = real(@glyfn4(glv4)) - @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) elseif @glyOp1 == "4" newx = real(@glyfn3(glv1)) - @h4r * real(@glyfn5(@glya * glv2)) \ + imag(flip(@h5r)) * real(@glyfn1(@glya * glv3)) newy = real(@glyfn4(glv4)) - @h4i * real(@glyfn6(@glya * glv5)) \ + imag(flip(@h5i)) * real(@glyfn2(@glya * glv6)) endif endwhile if @glv7 == "y" glv7 = ((y-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "x"; glv7 = ((x-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "newy" glv7 = ((newy-@gly7a)*@gly7b)^@gly7c elseif @glv7 == "newx" glv7 = ((newx-@gly7a)*@gly7b)^@gly7c endif if @glv8 == "y" glv8 = ((y-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "x" glv8 = ((x-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "newy" glv8 = ((newy-@gly8a)*@gly8b)^@gly8c elseif @glv8 == "newx"; glv8 = ((newx-@gly8a)*@gly8b)^@gly8c endif if @glv9 == "y" glv9 = ((y-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "x" glv9 = ((x-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "newy" glv9 = ((newy-@gly9a)*@gly9b)^@gly9c elseif @glv9 == "newx"; glv9 = ((newx-@gly9a)*@gly9b)^@gly9c endif if @glv10 == "y"; glv10 = ((y-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "x" glv10 = ((x-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "newy" glv10 = ((newy-@gly10a)*@gly10b)^@gly10c elseif @glv10 == "newx" glv10 = ((newx-@gly10a)*@gly10b)^@gly10c endif if @glv11 == "y" glv11 = ((y-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "x" glv11 = ((x-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "newy"; glv11 = ((newy-@gly11a)*@gly11b)^@gly11c elseif @glv11 == "newx" glv11 = ((newx-@gly11a)*@gly11b)^@gly11c endif if @glv12 == "y" glv12 = ((y-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "x" glv12 = ((x-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "newy"; glv12 = ((newy-@gly12a)*@gly12b)^@gly12c elseif @glv12 == "newx" glv12 = ((newx-@gly12a)*@gly12b)^@gly12c endif if @glyOp2 == "1" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "2" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "3" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "4" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "5" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "6" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "7" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "8" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) + \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "9" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "10" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "11" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "12" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) + \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "13" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "14" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "15" x = real(@glyfn9(glv7)) + @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) + @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) elseif @glyOp2 == "16" x = real(@glyfn9(glv7)) - @h6r * real(@glyfn7(glv8)) - \ imag(flip(@h7r)) * real(@glyfn13(glv9)) y = real(@glyfn10(glv10)) - @h6i * real(@glyfn8(glv11)) - \ imag(flip(@h7i)) * real(@glyfn14(glv12)) endif endif elseif @formula == "Gnarl" if @gn1 == true gn1 = ((y-@gn1a)*@gn1b)^@gn1c else gn1 = ((x-@gn1a)*@gn1b)^@gn1c endif if @gn2 == true gn2 = ((x-@gn2a)*@gn2b)^@gn2c else gn2 = ((y-@gn2a)*@gn2b)^@gn2c endif if @gn3 == true gn3 = ((x-@gn3a)*@gn3b)^@gn3c else gn3 = ((y-@gn3a)*@gn3b)^@gn3c endif if @gn4 == true gn4 = ((x-@gn4a)*@gn4b)^@gn4c else gn4 = ((y-@gn4a)*@gn4b)^@gn4c endif if @gn5 == true gn5 = ((x-@gn5a)*@gn5b)^@gn5c else gn5 = ((y-@gn5a)*@gn5b)^@gn5c endif if @gn6 == true gn6 = ((y-@gn6a)*@gn6b)^@gn6c else gn6 = ((xx-@gn6a)*@gn6b)^@gn6c endif if @gn7 == true gn7 = ((y-@gn7a)*@gn7b)^@gn7c else gn7 = ((xx-@gn7a)*@gn7b)^@gn7c endif if @gn8 == true gn8 = ((y-@gn8a)*@gn8b)^@gn8c else gn8 = ((xx-@gn8a)*@gn8b)^@gn8c endif if @gnFlavor == true if @gnOp == "1" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "2" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "3" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "4" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "5" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "6" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "7" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "8" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "9" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "10" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "11" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "12" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "13" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "14" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "15" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "16" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "17" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "18" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "19" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "20" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "21" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "22" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "23" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "24" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "25" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "26" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "27" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "28" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "29" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "30" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "31" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "32" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "33" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "34" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "35" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "36" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "37" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "38" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "39" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "40" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "41" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "42" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "43" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "44" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "45" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "46" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "47" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "48" x = cabs(@gnfnx(gn1)) + @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) + @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "49" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "50" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "51" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "52" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "53" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "54" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "55" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "56" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "57" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "58" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "59" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "60" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "61" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "62" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "63" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "64" x = cabs(@gnfnx(gn1)) - @h8r * cabs(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = cabs(@gnfny(gn5)) - @h8i * cabs(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) endif else if @gnOp == "1" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "2" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "3" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "4" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "5" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "6" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "7" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "8" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "9" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "10" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "11" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "12" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "13" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "14" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "15" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "16" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "17" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "18" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "19" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "20" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "21" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "22" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "23" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "24" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "25" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "26" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "27" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "28" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "29" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "30" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "31" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "32" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "33" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "34" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "35" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "36" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "37" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "38" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "39" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "40" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "41" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "42" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "43" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "44" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "45" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "46" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "47" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "48" x = real(@gnfnx(gn1)) + @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) + @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "49" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "50" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "51" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "52" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "53" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "54" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "55" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "56" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 + @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "57" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "58" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "59" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "60" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 + @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "61" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "62" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 + @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) elseif @gnOp == "63" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 + @gnfn6(@gnb * gn8))))) elseif @gnOp == "64" x = real(@gnfnx(gn1)) - @h8r * real(@gnfn1(gn2 - @gnfn2(@gna * \ (gn3 - @gnfn3(@gnb * gn4))))) y = real(@gnfny(gn5)) - @h8i * real(@gnfn4(gn6 - @gnfn5(@gna * \ (gn7 - @gnfn6(@gnb * gn8))))) endif endif elseif @formula == "Hopalong" float sx = 1.0 if x < @hop sx = @sx endif float tx = real(@fnhop(x)) if @hopFlavor == true x = y - sx * cabs(@fnhop2(abs(@pB * x - @pC))) else x = y - sx * real(@fnhop2(abs(@pB * x - @pC))) endif y = @pA - tx elseif @formula == "Dynamic" if @dynv1 == true dynv1 =((y-@dynv1a)*@dynv1b)^@dynv1c else dynv1 = ((x-@dynv1a)*@dynv1b)^@dynv1c endif if @dynv2 == true dynv2 = ((x-@dynv2a)*@dynv2b)^@dynv2c else dynv2 = ((y-@dynv2a)*@dynv2b)^@dynv2c endif if @dynv3 == true dynv3 = ((x-@dynv3a)*@dynv3b)^@dynv3c else dynv3 = ((y-@dynv3a)*@dynv3b)^@dynv3c endif if @dynv4 == true dynv4 = ((xx-@dynv4a)*@dynv4b)^@dynv4c else dynv4 = ((y-@dynv4a)*@dynv4b)^@dynv4c endif if @dynv5 == true dynv5 = ((y-@dynv5a)*@dynv5b)^@dynv5c else dynv5 = ((xx-@dynv5a)*@dynv5b)^@dynv5c endif if @dynv6 == true dynv6 = ((y-@dynv6a)*@dynv6b)^@dynv6c else dynv6 = ((xx-@dynv6a)*@dynv6b)^@dynv6c endif float dyn1 = 0 float dyn4 = 0 if @dynflavor == true dyn1 = cabs(@dynfn1(dynv1)) dyn4 = cabs(@dynfn4(dynv4)) else dyn1 = real(@dynfn1(dynv1)) dyn4 = real(@dynfn4(dynv4)) endif if @dynOp == "1" x = dyn1 - real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "2" x = dyn1 + real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "3" x = dyn1 + real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "4" x = dyn1 - real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "5" x = dyn1 - real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "6" x = dyn1 + real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "7" x = dyn1 + real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "8" x = dyn1 - real(@dhx * @dynfn2(dynv2 + real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "9" x = dyn1 - real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "10" x = dyn1 + real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "11" x = dyn1 + real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "12" x = dyn1 - real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 + imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "13" x = dyn1 - real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "14" x = dyn1 + real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "15" x = dyn1 + real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 + imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) elseif @dynOp == "16" x = dyn1 - real(@dhx * @dynfn2(dynv2 - real(@da) * \ @dynfn3(real(@db) * dynv3))) y = dyn4 - imag(@dhx * @dynfn5(dynv5 - imag(@da) * \ @dynfn6(imag(@db) * dynv6))) endif elseif @formula == "Tanglewood" if @twsv1 == true twsv1 = ((y-@twsv1a)*@twsv1b)^@twsv1c else twsv1 = ((x-@twsv1a)*@twsv1b)^@twsv1c endif if @twsv2 == true twsv2 = ((y-@twsv2a)*@twsv2b)^@twsv2c else twsv2 = ((xx-@twsv2a)*@twsv2b)^@twsv2c endif if @twsv3 == true twsv3 = ((y-@twsv3a)*@twsv3b)^@twsv3c else twsv3 = ((xx-@twsv3a)*@twsv3b)^@twsv3c endif if @twsv4 == true twsv4 = ((xx-@twsv4a)*@twsv4b)^@twsv4c else twsv4 = ((y-@twsv4a)*@twsv4b)^@twsv4c endif if @twsv5 == true twsv5 = ((x-@twsv5a)*@twsv5b)^@twsv5c else twsv5 = ((y-@twsv5a)*@twsv5b)^@twsv5c endif if @twsv6 == true twsv6 = ((xx-@twsv6a)*@twsv6b)^@twsv6c else twsv6 = ((y-@twsv6a)*@twsv6b)^@twsv6c endif if @twsv7 == true twsv7 = ((xx-@twsv7a)*@twsv7b)^@twsv7c else twsv7 = ((y-@twsv7a)*@twsv7b)^@twsv7c endif if @twsv8 == true twsv8 = ((y-@twsv8a)*@twsv8b)^@twsv8c else twsv8 = ((xx-@twsv8a)*@twsv8b)^@twsv8c endif float tang1 = 0 float tang5 = 0 if @twsFlavor1 == true tang1 = cabs(@twsfn1(twsv1)) tang5 = cabs(@twsfn5(twsv5)) else tang1 = real(@twsfn1(twsv1)) tang5 = real(@twsfn5(twsv5)) endif if @twsOp1 == "1" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "2" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "3" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "4" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "5" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "6" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "7" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "8" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "9" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "10" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "11" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "12" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "13" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "14" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "15" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "16" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "17" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "18" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "19" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "20" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "21" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "22" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "23" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "24" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "25" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "26" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "27" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "28" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "29" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "30" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "31" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "32" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 + @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "33" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "34" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "35" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "36" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "37" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "38" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "39" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "40" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "41" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "42" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "43" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "44" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "45" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "46" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "47" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "48" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 + @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "49" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "50" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "51" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "52" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "53" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "54" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "55" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "56" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 + \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "57" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "58" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "59" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "60" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 + \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "61" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "62" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "63" newx = tang1 - real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 - real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) elseif @twsOp1 == "64" newx = tang1 + real(@twsh1 * @twsfn2(twsv2 - \ @twsfn3(@twa1 * (twsv3 - @twsfn4(@twb1 * twsv4))))) newy = tang5 + real(@twsh1b * @twsfn6(twsv6 - \ @twsfn7(@twa1b * (twsv7 - @twsfn8(@twb1b * twsv8))))) endif if @twsv9 == true twsv9 = ((newy-@twsv9a)*@twsv9b)^@twsv9c else twsv9 = ((newx-@twsv9a)*@twsv9b)^@twsv9c endif if @twsv10 == true twsv10 = ((y-@twsv10a)*@twsv10b)^@twsv10c else twsv10 = ((xx-@twsv10a)*@twsv10b)^@twsv10c endif if @twsv11 == true twsv11 = ((y-@twsv11a)*@twsv11b)^@twsv11c else twsv11 = ((xx-@twsv11a)*@twsv11b)^@twsv11c endif if @twsv12 == true twsv12 = ((xx-@twsv12a)*@twsv12b)^@twsv12c else twsv12 = ((y-@twsv12a)*@twsv12b)^@twsv12c endif if @twsv13 == true twsv13 = ((newx-@twsv13a)*@twsv13b)^@twsv13c else twsv13 = ((newy-@twsv13a)*@twsv13b)^@twsv13c endif if @twsv14 == true twsv14 = ((y-@twsv14a)*@twsv14b)^@twsv14c else twsv14 = ((xx-@twsv14a)*@twsv14b)^@twsv14c endif if @twsv15 == true twsv15 = ((xx-@twsv15a)*@twsv15b)^@twsv15c else twsv15 = ((y-@twsv15a)*@twsv15b)^@twsv15c endif if @twsv16 == true twsv16 = ((y-@twsv16a)*@twsv16b)^@twsv16c else twsv16 = ((xx-@twsv16a)*@twsv16b)^@twsv16c endif if @twsOp2 == "1" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "2" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "3" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "4" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "5" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "6" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "7" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "8" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "9" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "10" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "11" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "12" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "13" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "14" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "15" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "16" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "17" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "18" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "19" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "20" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "21" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "22" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "23" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "24" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "25" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "26" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "27" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "28" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "29" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "30" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "31" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "32" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 + @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "33" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "34" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "35" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "36" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "37" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "38" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "39" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "40" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "41" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "42" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "43" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "44" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "45" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "46" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "47" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "48" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 + @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "49" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "50" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "51" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "52" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "53" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "54" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "55" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "56" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 + \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "57" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "58" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "59" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "60" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 + \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "61" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "62" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "63" x = real(@twsfn9(twsv9)) + real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) + real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) elseif @twsOp2 == "64" x = real(@twsfn9(twsv9)) - real(@twsh2 * @twsfn10(twsv10 - \ @twsfn11(@twa2 * (twsv11 - @twsfn12(@twb2 * twsv12))))) y = real(@twsfn13(twsv13)) - real(@twsh2b * @twsfn14(twsv14 - \ @twsfn15(@twa2b * (twsv15 - @twsfn16(@twb2b * twsv16))))) endif elseif @formula == "Twirl" if @twv1 == true twv1 = ((y-@twv1a)*@twv1b)^@twv1c else twv1 = ((x-@twv1a)*@twv1b)^@twv1c endif if @twv2 == true twv2 = ((y-@twv2a)*@twv2b)^@twv2c else twv2 = ((xx-@twv2a)*@twv2b)^@twv2c endif if @twv3 == true twv3 = ((xx-@twv3a)*@twv3b)^@twv3c else twv3 = ((y-@twv3a)*@twv3b)^@twv3c endif if @twv4 == true twv4 = ((y-@twv4a)*@twv4b)^@twv4c else twv4 = ((xx-@twv4a)*@twv4b)^@twv4c endif if @twv5 == true twv5 = ((xx-@twv5a)*@twv5b)^@twv5c else twv5 = ((y-@twv5a)*@twv5b)^@twv5c endif if @twv6 == true twv6 = ((x-@twv6a)*@twv6b)^@twv6c else twv6 = ((y-@twv6a)*@twv6b)^@twv6c endif if @twv7 == true twv7 = ((xx-@twv7a)*@twv7b)^@twv7c else twv7 = ((y-@twv7a)*@twv7b)^@twv7c endif if @twv8 == true twv8 = ((y-@twv8a)*@twv8b)^@twv8c else twv8 = ((xx-@twv8a)*@twv8b)^@twv8c endif if @twv9 == true twv9 = ((xx-@twv9a)*@twv9b)^@twv9c else twv9 = ((y-@twv9a)*@twv9b)^@twv9c endif if @twv10 == true twv10 = ((xx-@twv10a)*@twv10b)^@twv10c else twv10 = ((y-@twv10a)*@twv10b)^@twv10c endif float twirl1 = 0 float twirl6 = 0 if @twiFlavor == true twirl1 = cabs(@twfn1(twv1)) twirl6 = cabs(@twfn6(twv6)) else twirl1 = real(@twfn1(twv1)) twirl6 = real(@twfn6(twv6)) endif if @twiOp == "1" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "2" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "3" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "4" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "5" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "6" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "7" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "8" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "9" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "10" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "11" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "12" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "13" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "14" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "15" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "16" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "17" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "18" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "19" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "20" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "21" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "22" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "23" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "24" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "25" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "26" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "27" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "28" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "29" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "30" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "31" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "32" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 + @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "33" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "34" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "35" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "36" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "37" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "38" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "39" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "40" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "41" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "42" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "43" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "44" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "45" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "46" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "47" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "48" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 + @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "49" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "50" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "51" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "52" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "53" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "54" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "55" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "56" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "57" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "58" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "59" x = twirl1 + real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "60" x = twirl1 - real(@th * @twfn2(twv2 + @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 + @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "61" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "62" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "63" x = twirl1 + real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 + real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) elseif @twiOp == "64" x = twirl1 - real(@th * @twfn2(twv2 - @twfn3(real(@ta) * \ (twv3 - @twfn4(real((@tb) *twv4))))))*real(@twfn5(twv5)) y = twirl6 - real(@th2 * @twfn7(twv7 - @twfn8(imag(@ta) * \ (twv8 - @twfn9(imag((@tb) *twv9))))))*real(@twfn10(twv10)) endif elseif @formula == "Driftwood" if @tgwv1 == true tgwv1 = ((y-@tgwv1a)*@tgwv1b)^@tgwv1c else tgwv1 = ((x-@tgwv1a)*@tgwv1b)^@tgwv1c endif if @tgwv2 == true tgwv2 = ((y-@tgwv2a)*@tgwv2b)^@tgwv2c else tgwv2 = ((xx-@tgwv2a)*@tgwv2b)^@tgwv2c endif if @tgwv3 == true tgwv3 = ((xx-@tgwv3a)*@tgwv3b)^@tgwv3c else tgwv3 = ((y-@tgwv3a)*@tgwv3b)^@tgwv3c endif if @tgwv4 == true tgwv4 = ((xx-@tgwv4a)*@tgwv4b)^@tgwv4c else tgwv4 = ((y-@tgwv4a)*@tgwv4b)^@tgwv4c endif if @tgwv5 == true tgwv5 = ((x-@tgwv5a)*@tgwv5b)^@tgwv5c else tgwv5 = ((y-@tgwv5a)*@tgwv5b)^@tgwv5c endif if @tgwv6 == true tgwv6 = ((y-@tgwv6a)*@tgwv6b)^@tgwv6c else tgwv6 = ((xx-@tgwv6a)*@tgwv6b)^@tgwv6c endif float drift1 = 0 float drift5 = 0 if @tgwFlavor1 == true drift1 = cabs(@tgwfn1(tgwv1)) drift5 = cabs(@tgwfn5(tgwv5)) else drift1 = real(@tgwfn1(tgwv1)) drift5 = real(@tgwfn5(tgwv5)) endif if @tgwOp1 == "1" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "2" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "3" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "4" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "5" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "6" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "7" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "8" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 + \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "5" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 - \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "6" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 - \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "7" newx = drift1 - real(@tgwh1 * @tgwfn2(tgwv2 - \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 - imag(@tgwh1 * @tgwfn6(tgwv6)) elseif @tgwOp1 == "8" newx = drift1 + real(@tgwh1 * @tgwfn2(tgwv2 - \ @tgwfn3(real(@tgwa1) * (tgwv3 + @tgwfn4(real(@tgwb1) * tgwv4))))) newy = drift5 + imag(@tgwh1 * @tgwfn6(tgwv6)) endif if @tgwv7 == true tgwv7 = ((newy-@tgwv7a)*@tgwv7b)^@tgwv7c else tgwv7 = ((newx-@tgwv7a)*@tgwv7b)^@tgwv7c endif if @tgwv8 == true tgwv8 = ((xx-@tgwv8a)*@tgwv8b)^@tgwv8c else tgwv8 = ((y-@tgwv8a)*@tgwv8b)^@tgwv8c endif if @tgwv9 == true tgwv9 = ((y-@tgwv9a)*@tgwv9b)^@tgwv9c else tgwv9 = ((xx-@tgwv9a)*@tgwv9b)^@tgwv9c endif if @tgwv10 == true tgwv10 = ((xx-@tgwv10a)*@tgwv10b)^@tgwv10c else tgwv10 = ((y-@tgwv10a)*@tgwv10b)^@tgwv10c endif if @tgwv11 == true tgwv11 = ((newx-@tgwv11a)*@tgwv11b)^@tgwv11c else tgwv11 = ((newy-@tgwv11a)*@tgwv11b)^@tgwv11c endif if @tgwv12 == true tgwv12 = ((xx-@tgwv12a)*@tgwv12b)^@tgwv12c else tgwv12 = ((y-@tgwv12a)*@tgwv12b)^@tgwv12c endif if @tgwOp2 == "1" x = real(@tgwfn7(tgwv7)) - real(@tgwh2 * @tgwfn8(tgwv8 + \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) + imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "2" x = real(@tgwfn7(tgwv7)) + real(@tgwh2 * @tgwfn8(tgwv8 + \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) - imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "3" x = real(@tgwfn7(tgwv7)) + real(@tgwh2 * @tgwfn8(tgwv8 + \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) + imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "4" x = real(@tgwfn7(tgwv7)) - real(@tgwh2 * @tgwfn8(tgwv8 + \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) - imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "5" x = real(@tgwfn7(tgwv7)) - real(@tgwh2 * @tgwfn8(tgwv8 - \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) + imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "6" x = real(@tgwfn7(tgwv7)) + real(@tgwh2 * @tgwfn8(tgwv8 - \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) - imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "7" x = real(@tgwfn7(tgwv7)) + real(@tgwh2 * @tgwfn8(tgwv8 - \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) + imag(@tgwh2 * @tgwfn12(tgwv12)) elseif @tgwOp2 == "8" x = real(@tgwfn7(tgwv7)) - real(@tgwh2 * @tgwfn8(tgwv8 - \ @tgwfn8(real(@tgwa2) * (tgwv9 + @tgwfn10(real(@tgwb2) * tgwv10))))) y = real(@tgwfn11(tgwv11)) - imag(@tgwh2 * @tgwfn12(tgwv12)) endif endif else ; scenario 2 if @formulaQ == "Martin" if @martV1Q == true mv1Q = x else mv1Q = y endif if @martV2Q == true mv2Q = y else mv2Q = x endif if @martV3Q == true mv3Q = y else mv3Q = xx endif if @martFlavQ == true if @martOpQ == "1" x = cabs(@fnmy1Q((mv1Q-@myQ)*@mymQ)^@myeQ) - \ cabs(@martfnQ( (mv2Q-@mxQ)*@mxmQ)^@mxeQ) y = @maaQ - cabs(@fnmx1Q((mv3Q-@mxxQ)*@mxxmQ)^@mxxeQ) elseif @martOpQ == "2" x = cabs(@fnmy1Q((mv1Q-@myQ)*@mymQ)^@myeQ) + \ cabs(@martfnQ((mv2Q-@mxQ)*@mxmQ)^@mxeQ) y = @maaQ - cabs(@fnmx1Q((mv3Q-@mxxQ)*@mxxmQ)^@mxxeQ) endif else if @martOpQ == "1" x = real(@fnmy1Q((mv1Q-@myQ)*@mymQ)^@myeQ) - \ real(@martfnQ((mv2Q-@mxQ)*@mxmQ)^@mxeQ) y = @maaQ - real(@fnmx1Q((mv3Q-@mxxQ)*@mxxmQ)^@mxxeQ) elseif @martOpQ == "2" x = real(@fnmy1Q((mv1Q-@myQ)*@mymQ)^@myeQ) + \ real(@martfnQ((mv2Q-@mxQ)*@mxmQ)^@mxeQ) y = @maaQ - real(@fnmx1Q((mv3Q-@mxxQ)*@mxxmQ)^@mxxeQ) endif endif elseif @formulaQ == "Popcorn" if @funcPopTypeQ == true vQ = cabs(@fnpopxQ(x)*@popxQ) wQ = cabs(@fnpopyQ(y)*@popyQ) else vQ = real(@fnpopxQ(x)*@popxQ) wQ = real(@fnpopyQ(y)*@popyQ) endif if @v1Q == true qaQ = ((xx-@pop1aQ)*@pop1bQ)^@pop1cQ else qaQ = ((y-@pop1aQ)*@pop1bQ)^@pop1cQ endif if @v2Q == true qbQ = ((xx-@pop2aQ)*@pop2bQ)^@pop2cQ else qbQ = ((y-@pop2aQ)*@pop2bQ)^@pop2cQ endif if @v3Q == true qcQ = ((y-@pop3aQ)*@pop3bQ)^@pop3cQ else qcQ = ((xx-@pop3aQ)*@pop3bQ)^@pop3cQ endif if @v4Q == true qdQ = ((y-@pop4aQ)*@pop4bQ)^@pop4cQ else qdQ = ((xx-@pop4aQ)*@pop4bQ)^@pop4cQ endif if @popflavor1Q == "1" if @popflavor2Q == "1" x = vQ - real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "2" x = vQ - real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "3" x = vQ + real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "4" x = vQ + real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) endif elseif @popflavor1Q == "2" if @popflavor2Q == "1" x = vQ - real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "2" x = vQ - real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "3" x = vQ + real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "4" x = vQ + real(@h1Q * @popfn1Q(qaQ + @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) endif elseif @popflavor1Q == "3" if @popflavor2Q == "1" x = vQ - real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "2" x = vQ - real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "3" x = vQ + real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "4" x = vQ + real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ + @popfn4Q(imag(@popcQ) * qdQ))) endif elseif @popflavor1Q == "4" if @popflavor2Q == "1" x = vQ - real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "2" x = vQ - real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "3" x = vQ + real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ - imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) elseif @popflavor2Q == "4" x = vQ + real(@h1Q * @popfn1Q(qaQ - @popfn2Q(real(@popcQ) * qbQ))) y = wQ + imag(@h1Q * @popfn3Q(qcQ - @popfn4Q(imag(@popcQ) * qdQ))) endif endif elseif @formulaQ == "Vine" if @vinV1Q == true vv1Q = ((y-@v1aQ)*@v1bQ)^@v1cQ else vv1Q = ((x-@v1aQ)*@v1bQ)^@v1cQ endif if @vinV2Q == true vv2Q = ((xx-@v2aQ)*@v2bQ)^@v2cQ else vv2Q = ((y-@v2aQ)*@v2bQ)^@v2cQ endif if @vinV3Q == true vv3Q = ((xx-@v3aQ)*@v3bQ)^@v3cQ else vv3Q = ((y-@v3aQ)*@v3bQ)^@v3cQ endif if @vinV4Q == true vv4Q = ((x-@v4aQ)*@v4bQ)^@v4cQ else vv4Q = ((y-@v4aQ)*@v4bQ)^@v4cQ endif if @vinV5Q == true vv5Q = ((y-@v5aQ)*@v5bQ)^@v5cQ else vv5Q = ((xx-@v5aQ)*@v5bQ)^@v5cQ endif if @vinV6Q == true vv6Q = ((y-@v6aQ)*@v6bQ)^@v6cQ else vv6Q = ((xx-@v6aQ)*@v6bQ)^@v6cQ endif if @vinV7Q == true vv7Q = ((xx-@v7aQ)*@v7bQ)^@v7cQ else vv7Q = ((y-@v7aQ)*@v7bQ)^@v7cQ endif if @vinV8Q == true vv8Q = ((y-@v8aQ)*@v8bQ)^@v8cQ else vv8Q = ((xx-@v8aQ)*@v8bQ)^@v8cQ endif if @vinOp1Q == "1" if @vinFlavorQ == true if @flavorQ == 0 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ * vv3Q ))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * cabs(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ * vv6Q))) elseif @flavorQ == 1 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q^@vbQ + \ @vinfn3Q(@vaQ * vv3Q))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * cabs(@vinfn2Q(vv5Q^@vbQ + \ @vinfn4Q(@vaQ * vv6Q))) elseif @flavorQ == 2 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ *(vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * cabs(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ *(vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = cabs(@vinfn7Q(y)) float newy = cabs(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3cQ == "1" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "2" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "3" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "4" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2cQ == "1" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "2" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "3" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "4" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) endif endif else if @flavorQ == 0 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * real(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q^@vbQ + \ @vinfn3Q(@vaQ * vv3Q))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * real(@vinfn2Q(vv5Q^@vbQ + \ @vinfn4Q(@vaQ * vv6Q))) elseif @flavorQ == 2 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * real(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ *(vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = real(@vinfn7Q(y)) float newy = real(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3rQ == "1" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "2" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "3" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "4" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2rQ == "1" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "2" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "3" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "4" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) endif endif endif elseif @vinOp1Q == "2" if @vinFlavorQ == true if @flavorQ == 0 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * cabs(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q^@vbQ + \ @vinfn3Q (@vaQ * vv3Q))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * cabs(@vinfn2Q(vv5Q^@vbQ + \ @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = cabs(@vinfnx1Q(vv1Q)) - @h2rQ * cabs(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ *(vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * cabs(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ *(vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = cabs(@vinfn7Q(y)) float newy = cabs(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3cQ == "1" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "2" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "3" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "4" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2cQ == "1" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "2" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "3" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "4" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) endif endif else if @flavorQ == 0 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * real(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q^@vbQ + \ @vinfn3Q (@vaQ * vv3Q))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * real(@vinfn2Q(vv5Q^@vbQ + \ @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = real(@vinfnx1Q(vv1Q)) - @h2rQ * real(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * real(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ * (vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = real(@vinfn7Q(y)) float newy = real(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3rQ == "1" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "2" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "3" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "4" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2rQ == "1" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "2" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "3" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "4" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) endif endif endif elseif @vinOp1Q == "3" if @vinFlavorQ == true if @flavorQ == 0 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * cabs(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * cabs(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * \ cabs(@vinfn1Q(vv2Q^@vbQ + @vinfn3Q (@vaQ * vv3Q))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * \ cabs(@vinfn2Q(vv5Q^@vbQ + @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * cabs(@vinfn1Q(vv2Q + \ @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = cabs(@vinfny1Q(vv4Q)) - @h2iQ * cabs(@vinfn2Q(vv5Q + \ @vinfn4Q(@vaQ * (vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = cabs(@vinfn7Q(y)) float newy = cabs(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3cQ == "1" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "2" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "3" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "4" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2cQ == "1" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "2" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "3" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "4" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) endif endif else if @flavorQ == 0 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * real(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * real(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * \ real(@vinfn1Q(vv2Q^@vbQ + @vinfn3Q (@vaQ * vv3Q))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * \ real(@vinfn2Q(vv5Q^@vbQ + @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * real(@vinfn1Q \ (vv2Q + @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = real(@vinfny1Q(vv4Q)) - @h2iQ * real(@vinfn2Q \ (vv5Q + @vinfn4Q(@vaQ * (vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = real(@vinfn7Q(y)) float newy = real(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3rQ == "1" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "2" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "3" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "4" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2rQ == "1" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "2" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "3" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "4" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) endif endif endif elseif @vinOp1Q == "4" if @vinFlavorQ == true if @flavorQ == 0 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * cabs(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * cabs(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * \ cabs(@vinfn1Q(vv2Q^@vbQ + @vinfn3Q (@vaQ * vv3Q))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * \ cabs(@vinfn2Q(vv5Q^@vbQ + @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = cabs(@vinfnx1Q(vv1Q)) + @h2rQ * cabs(@vinfn1Q \ (vv2Q + @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = cabs(@vinfny1Q(vv4Q)) + @h2iQ * cabs(@vinfn2Q \ (vv5Q + @vinfn4Q(@vaQ * (vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = cabs(@vinfn7Q(y)) float newy = cabs(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3cQ == "1" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "2" newx = cabs(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "3" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3cQ == "4" newx = cabs(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = cabs(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2cQ == "1" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "2" x = cabs(@vinfnx2Q(x)) - @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "3" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) - @h3iQ * cabs(@vinfn10Q(newy)) elseif @vinOp2cQ == "4" x = cabs(@vinfnx2Q(x)) + @h3rQ * cabs(@vinfn9Q(newx)) y = cabs(@vinfny2Q(y)) + @h3iQ * cabs(@vinfn10Q(newy)) endif endif else if @flavorQ == 0 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * real(@vinfn1Q(vv2Q + @vinfn3Q \ (@vaQ * vv3Q ))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * real(@vinfn2Q(vv5Q + @vinfn4Q \ (@vaQ * vv6Q))) elseif @flavorQ == 1 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * \ real(@vinfn1Q(vv2Q^@vbQ + @vinfn3Q (@vaQ * vv3Q))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * \ real(@vinfn2Q(vv5Q^@vbQ + @vinfn4Q (@vaQ * vv6Q))) elseif @flavorQ == 2 x = real(@vinfnx1Q(vv1Q)) + @h2rQ * real(@vinfn1Q \ (vv2Q + @vinfn3Q(@vaQ * (vv3Q + @vinfn5Q(@vaQ * vv7Q))))) y = real(@vinfny1Q(vv4Q)) + @h2iQ * real(@vinfn2Q \ (vv5Q + @vinfn4Q(@vaQ * (vv6Q + @vinfn6Q(@vaQ * vv8Q))))) else float newx = real(@vinfn7Q(y)) float newy = real(@vinfn8Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @vinOp3rQ == "1" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "2" newx = real(@vinfny1Q(y)) + real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "3" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) + real(@vinfn11Q(@vaQ * newy)) elseif @vinOp3rQ == "4" newx = real(@vinfny1Q(y)) - real(@vinfn11Q(@vaQ * newx)) newy = real(@vinfnx1Q(x)) - real(@vinfn11Q(@vaQ * newy)) endif endwhile if @vinOp2rQ == "1" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "2" x = real(@vinfnx2Q(x)) - @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "3" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) - @h3iQ * real(@vinfn10Q(newy)) elseif @vinOp2rQ == "4" x = real(@vinfnx2Q(x)) + @h3rQ * real(@vinfn9Q(newx)) y = real(@vinfny2Q(y)) + @h3iQ * real(@vinfn10Q(newy)) endif endif endif endif elseif @formulaQ == "Glyph" if @glyphFlavor1Q == true float newx = cabs(@glyfn11Q(y)) float newy = cabs(@glyfn12Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @glv1Q == "y" ; glv1Q = ((y-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "x" glv1Q = ((x-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "newy" glv1Q = ((newy-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "newx" glv1Q = ((newx-@gly1aQ)*@gly1bQ)^@gly1cQ endif if @glv2Q == "y" glv2Q = ((y-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "x" glv2Q = ((x-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "newy" glv2Q = ((newy-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "newx"; glv2Q = ((newx-@gly2aQ)*@gly2bQ)^@gly2cQ endif if @glv3Q == "y" glv3Q = ((y-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "x" glv3Q = ((x-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "newy" glv3Q = ((newy-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "newx"; glv3Q = ((newx-@gly3aQ)*@gly3bQ)^@gly3cQ endif if @glv4Q == "y" glv4Q = ((y-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "x"; glv4Q = ((x-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "newy" glv4Q = ((newy-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "newx" glv4Q = ((newx-@gly4aQ)*@gly4bQ)^@gly4cQ endif if @glv5Q == "y" glv5Q = ((y-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "x" glv5Q = ((x-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "newy"; glv5Q = ((newy-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "newx" glv5Q = ((newx-@gly5aQ)*@gly5bQ)^@gly5cQ endif if @glv6Q == "y" glv6Q = ((y-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "x" glv6Q = ((x-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "newy" ; glv6Q = ((newy-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "newx" glv6Q = ((newx-@gly6aQ)*@gly6bQ)^@gly6cQ endif if @glyOp1Q == "1" newx = cabs(@glyfn3Q(glv1Q)) + @h4rQ * real(@glyfn5Q(@glyaQ * \ glv2Q)) + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = cabs(@glyfn4Q(glv4Q)) + @h4iQ * real(@glyfn6Q(@glyaQ * \ glv5Q)) + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "2" newx = cabs(@glyfn3Q(glv1Q)) - @h4rQ * real(@glyfn5Q(@glyaQ * \ glv2Q)) + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = cabs(@glyfn4Q(glv4Q)) + @h4iQ * real(@glyfn6Q(@glyaQ * \ glv5Q)) + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "3" newx = cabs(@glyfn3Q(glv1Q)) + @h4rQ * real(@glyfn5Q(@glyaQ * \ glv2Q)) + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = cabs(@glyfn4Q(glv4Q)) - @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "4" newx = cabs(@glyfn3Q(glv1Q)) - @h4rQ * real(@glyfn5Q(@glyaQ * glv2Q)) \ + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = cabs(@glyfn4Q(glv4Q)) - @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) endif endwhile if @glv7Q == "y" glv7Q = ((y-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "x"; glv7Q = ((x-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "newy" glv7Q = ((newy-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "newx" glv7Q = ((newx-@gly7aQ)*@gly7bQ)^@gly7cQ endif if @glv8Q == "y" glv8Q = ((y-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "x" glv8Q = ((x-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "newy" glv8Q = ((newy-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "newx"; glv8Q = ((newx-@gly8aQ)*@gly8bQ)^@gly8cQ endif if @glv9Q == "y" glv9Q = ((y-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "x" glv9Q = ((x-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "newy" glv9Q = ((newy-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "newx"; glv9Q = ((newx-@gly9aQ)*@gly9bQ)^@gly9cQ endif if @glv10Q == "y"; glv10Q = ((y-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "x" glv10Q = ((x-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "newy" glv10Q = ((newy-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "newx" glv10Q = ((newx-@gly10aQ)*@gly10bQ)^@gly10cQ endif if @glv11Q == "y" glv11Q = ((y-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "x" glv11Q = ((x-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "newy"; glv11Q = ((newy-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "newx" glv11Q = ((newx-@gly11aQ)*@gly11bQ)^@gly11cQ endif if @glv12Q == "y" glv12Q = ((y-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "x" glv12Q = ((x-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "newy"; glv12Q = ((newy-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "newx" glv12Q = ((newx-@gly12aQ)*@gly12bQ)^@gly12cQ endif if @glyOp2Q == "1" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "2" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "3" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "4" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "5" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "6" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "7" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "8" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "9" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "10" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "11" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "12" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "13" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "14" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "15" x = cabs(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "16" x = cabs(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = cabs(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) endif elseif @glyphFlavor1Q == false float newx = real(@glyfn11Q(y)) float newy = real(@glyfn12Q(x)) int jQ = 0 while jQ < @flavorQ jQ = jQ + 1 if @glv1Q == "y" ; glv1Q = ((y-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "x" glv1Q = ((x-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "newy" glv1Q = ((newy-@gly1aQ)*@gly1bQ)^@gly1cQ elseif @glv1Q == "newx" glv1Q = ((newx-@gly1aQ)*@gly1bQ)^@gly1cQ endif if @glv2Q == "y" glv2Q = ((y-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "x" glv2Q = ((x-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "newy" glv2Q = ((newy-@gly2aQ)*@gly2bQ)^@gly2cQ elseif @glv2Q == "newx"; glv2Q = ((newx-@gly2aQ)*@gly2bQ)^@gly2cQ endif if @glv3Q == "y" glv3Q = ((y-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "x" glv3Q = ((x-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "newy" glv3Q = ((newy-@gly3aQ)*@gly3bQ)^@gly3cQ elseif @glv3Q == "newx"; glv3Q = ((newx-@gly3aQ)*@gly3bQ)^@gly3cQ endif if @glv4Q == "y" glv4Q = ((y-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "x"; glv4Q = ((x-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "newy" glv4Q = ((newy-@gly4aQ)*@gly4bQ)^@gly4cQ elseif @glv4Q == "newx" glv4Q = ((newx-@gly4aQ)*@gly4bQ)^@gly4cQ endif if @glv5Q == "y" glv5Q = ((y-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "x" glv5Q = ((x-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "newy"; glv5Q = ((newy-@gly5aQ)*@gly5bQ)^@gly5cQ elseif @glv5Q == "newx" glv5Q = ((newx-@gly5aQ)*@gly5bQ)^@gly5cQ endif if @glv6Q == "y" glv6Q = ((y-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "x" glv6Q = ((x-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "newy" ; glv6Q = ((newy-@gly6aQ)*@gly6bQ)^@gly6cQ elseif @glv6Q == "newx" glv6Q = ((newx-@gly6aQ)*@gly6bQ)^@gly6cQ endif if @glyOp1Q == "1" newx = real(@glyfn3Q(glv1Q)) + @h4rQ * real(@glyfn5Q(@glyaQ * glv2Q)) \ + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = real(@glyfn4Q(glv4Q)) + @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "2" newx = real(@glyfn3Q(glv1Q)) - @h4rQ * real(@glyfn5Q(@glyaQ * glv2Q)) \ + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = real(@glyfn4Q(glv4Q)) + @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "3" newx = real(@glyfn3Q(glv1Q)) + @h4rQ * real(@glyfn5Q(@glyaQ * glv2Q)) \ + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = real(@glyfn4Q(glv4Q)) - @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) elseif @glyOp1Q == "4" newx = real(@glyfn3Q(glv1Q)) - @h4rQ * real(@glyfn5Q(@glyaQ * glv2Q)) \ + imag(flip(@h5rQ)) * real(@glyfn1Q(@glyaQ * glv3Q)) newy = real(@glyfn4Q(glv4Q)) - @h4iQ * real(@glyfn6Q(@glyaQ * glv5Q)) \ + imag(flip(@h5iQ)) * real(@glyfn2Q(@glyaQ * glv6Q)) endif endwhile if @glv7Q == "y" glv7Q = ((y-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "x"; glv7Q = ((x-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "newy" glv7Q = ((newy-@gly7aQ)*@gly7bQ)^@gly7cQ elseif @glv7Q == "newx" glv7Q = ((newx-@gly7aQ)*@gly7bQ)^@gly7cQ endif if @glv8Q == "y" glv8Q = ((y-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "x" glv8Q = ((x-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "newy" glv8Q = ((newy-@gly8aQ)*@gly8bQ)^@gly8cQ elseif @glv8Q == "newx"; glv8Q = ((newx-@gly8aQ)*@gly8bQ)^@gly8cQ endif if @glv9Q == "y" glv9Q = ((y-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "x" glv9Q = ((x-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "newy" glv9Q = ((newy-@gly9aQ)*@gly9bQ)^@gly9cQ elseif @glv9Q == "newx"; glv9Q = ((newx-@gly9aQ)*@gly9bQ)^@gly9cQ endif if @glv10Q == "y"; glv10Q = ((y-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "x" glv10Q = ((x-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "newy" glv10Q = ((newy-@gly10aQ)*@gly10bQ)^@gly10cQ elseif @glv10Q == "newx" glv10Q = ((newx-@gly10aQ)*@gly10bQ)^@gly10cQ endif if @glv11Q == "y" glv11Q = ((y-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "x" glv11Q = ((x-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "newy"; glv11Q = ((newy-@gly11aQ)*@gly11bQ)^@gly11cQ elseif @glv11Q == "newx" glv11Q = ((newx-@gly11aQ)*@gly11bQ)^@gly11cQ endif if @glv12Q == "y" glv12Q = ((y-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "x" glv12Q = ((x-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "newy"; glv12Q = ((newy-@gly12aQ)*@gly12bQ)^@gly12cQ elseif @glv12Q == "newx" glv12Q = ((newx-@gly12aQ)*@gly12bQ)^@gly12cQ endif if @glyOp2Q == "1" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "2" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "3" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "4" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "5" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "6" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "7" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "8" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) + \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "9" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "10" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "11" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "12" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) + \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "13" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "14" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "15" x = real(@glyfn9Q(glv7Q)) + @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) + @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) elseif @glyOp2Q == "16" x = real(@glyfn9Q(glv7Q)) - @h6rQ * real(@glyfn7Q(glv8Q)) - \ imag(flip(@h7rQ)) * real(@glyfn13Q(glv9Q)) y = real(@glyfn10Q(glv10Q)) - @h6iQ * real(@glyfn8Q(glv11Q)) - \ imag(flip(@h7iQ)) * real(@glyfn14Q(glv12Q)) endif endif elseif @formulaQ == "Gnarl" if @gn1Q == true gn1Q = ((y-@gn1aQ)*@gn1bQ)^@gn1cQ else gn1Q = ((x-@gn1aQ)*@gn1bQ)^@gn1cQ endif if @gn2Q == true gn2Q = ((x-@gn2aQ)*@gn2bQ)^@gn2cQ else gn2Q = ((y-@gn2aQ)*@gn2bQ)^@gn2cQ endif if @gn3Q == true gn3Q = ((x-@gn3aQ)*@gn3bQ)^@gn3cQ else gn3Q = ((y-@gn3aQ)*@gn3bQ)^@gn3cQ endif if @gn4Q == true gn4Q = ((x-@gn4aQ)*@gn4bQ)^@gn4cQ else gn4Q = ((y-@gn4aQ)*@gn4bQ)^@gn4cQ endif if @gn5Q == true gn5Q = ((x-@gn5aQ)*@gn5bQ)^@gn5cQ else gn5Q = ((y-@gn5aQ)*@gn5bQ)^@gn5cQ endif if @gn6Q == true gn6Q = ((y-@gn6aQ)*@gn6bQ)^@gn6cQ else gn6Q = ((xx-@gn6aQ)*@gn6bQ)^@gn6cQ endif if @gn7Q == true gn7Q = ((y-@gn7aQ)*@gn7bQ)^@gn7cQ else gn7Q = ((xx-@gn7aQ)*@gn7bQ)^@gn7cQ endif if @gn8Q == true gn8Q = ((y-@gn8aQ)*@gn8bQ)^@gn8cQ else gn8Q = ((xx-@gn8aQ)*@gn8bQ)^@gn8cQ endif if @gnFlavorQ == true if @gnOpQ == "1" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "2" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "3" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "4" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "5" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "6" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "7" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "8" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "9" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "10" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "11" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "12" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "13" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "14" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "15" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "16" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "17" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "18" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "19" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "20" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "21" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "22" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "23" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "24" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "25" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "26" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "27" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "28" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "29" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "30" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "31" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "32" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "33" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "34" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "35" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "36" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "37" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "38" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "39" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "40" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "41" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "42" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "43" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "44" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "45" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "46" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "47" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "48" x = cabs(@gnfnxQ(gn1Q)) + @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) + @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "49" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "50" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "51" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "52" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "53" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "54" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "55" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "56" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "57" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "58" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "59" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "60" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "61" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "62" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "63" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "64" x = cabs(@gnfnxQ(gn1Q)) - @h8rQ * cabs(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = cabs(@gnfnyQ(gn5Q)) - @h8iQ * cabs(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) endif else if @gnOpQ == "1" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "2" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "3" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "4" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "5" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "6" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "7" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "8" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "9" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "10" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "11" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "12" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "13" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "14" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "15" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "16" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "17" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "18" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "19" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "20" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "21" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "22" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "23" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "24" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "25" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "26" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "27" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "28" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "29" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "30" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "31" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "32" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "33" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "34" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "35" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "36" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "37" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "38" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "39" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "40" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "41" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "42" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "43" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "44" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "45" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "46" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "47" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "48" x = real(@gnfnxQ(gn1Q)) + @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) + @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "49" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "50" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "51" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "52" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "53" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "54" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "55" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "56" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q + @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "57" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "58" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "59" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "60" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q + @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "61" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "62" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q + @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "63" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q + @gnfn6Q(@gnbQ * gn8Q))))) elseif @gnOpQ == "64" x = real(@gnfnxQ(gn1Q)) - @h8rQ * real(@gnfn1Q(gn2Q - @gnfn2Q(@gnaQ * \ (gn3Q - @gnfn3Q(@gnbQ * gn4Q))))) y = real(@gnfnyQ(gn5Q)) - @h8iQ * real(@gnfn4Q(gn6Q - @gnfn5Q(@gnaQ * \ (gn7Q - @gnfn6Q(@gnbQ * gn8Q))))) endif endif elseif @formulaQ == "Hopalong" float sxQ = 1.0 if x < @hopQ sxQ = @sxQ endif float txQ = real(@fnhopQ(x)) if @hopFlavor == true x = y - sxQ * cabs(@fnhop2Q(abs(@pBQ * x - @pCQ))) else x = y - sxQ * real(@fnhop2Q(abs(@pBQ * x - @pCQ))) endif y = @pAQ - txQ elseif @formulaQ == "Dynamic" if @dynv1Q == true dynv1Q =((y-@dynv1aQ)*@dynv1bQ)^@dynv1cQ else dynv1Q = ((x-@dynv1aQ)*@dynv1bQ)^@dynv1cQ endif if @dynv2Q == true dynv2Q = ((x-@dynv2aQ)*@dynv2bQ)^@dynv2cQ else dynv2Q = ((y-@dynv2aQ)*@dynv2bQ)^@dynv2cQ endif if @dynv3Q == true dynv3Q = ((x-@dynv3aQ)*@dynv3bQ)^@dynv3cQ else dynv3Q = ((y-@dynv3aQ)*@dynv3bQ)^@dynv3cQ endif if @dynv4Q == true dynv4Q = ((xx-@dynv4aQ)*@dynv4bQ)^@dynv4cQ else dynv4Q = ((y-@dynv4aQ)*@dynv4bQ)^@dynv4cQ endif if @dynv5Q == true dynv5Q = ((y-@dynv5aQ)*@dynv5bQ)^@dynv5cQ else dynv5Q = ((xx-@dynv5aQ)*@dynv5bQ)^@dynv5cQ endif if @dynv6Q == true dynv6Q = ((y-@dynv6aQ)*@dynv6bQ)^@dynv6cQ else dynv6Q = ((xx-@dynv6aQ)*@dynv6bQ)^@dynv6cQ endif float dyn1Q = 0 float dyn4Q = 0 if @dynflavorQ == true dyn1Q = cabs(@dynfn1Q(dynv1Q)) dyn4Q = cabs(@dynfn4Q(dynv4Q)) else dyn1Q = real(@dynfn1Q(dynv1Q)) dyn4Q = real(@dynfn4Q(dynv4Q)) endif if @dynOpQ == "1" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "2" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "3" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "4" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "5" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "6" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "7" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "8" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q + real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "9" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "10" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "11" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "12" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q + imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "13" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "14" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "15" x = dyn1Q + real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q + imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) elseif @dynOpQ == "16" x = dyn1Q - real(@dhxQ * @dynfn2Q(dynv2Q - real(@daQ) * \ @dynfn3Q(real(@dbQ) * dynv3Q))) y = dyn4Q - imag(@dhxQ * @dynfn5Q(dynv5Q - imag(@daQ) * \ @dynfn6Q(imag(@dbQ) * dynv6Q))) endif elseif @formulaQ == "Tanglewood" if @twsv1Q == true twsv1Q = ((y-@twsv1aQ)*@twsv1bQ)^@twsv1cQ else twsv1Q = ((x-@twsv1aQ)*@twsv1bQ)^@twsv1cQ endif if @twsv2Q == true twsv2Q = ((y-@twsv2aQ)*@twsv2bQ)^@twsv2cQ else twsv2Q = ((xx-@twsv2aQ)*@twsv2bQ)^@twsv2cQ endif if @twsv3Q == true twsv3Q = ((y-@twsv3aQ)*@twsv3bQ)^@twsv3cQ else twsv3Q = ((xx-@twsv3aQ)*@twsv3bQ)^@twsv3cQ endif if @twsv4Q == true twsv4Q = ((xx-@twsv4aQ)*@twsv4bQ)^@twsv4cQ else twsv4Q = ((y-@twsv4aQ)*@twsv4bQ)^@twsv4cQ endif if @twsv5Q == true twsv5Q = ((x-@twsv5aQ)*@twsv5bQ)^@twsv5cQ else twsv5Q = ((y-@twsv5aQ)*@twsv5bQ)^@twsv5cQ endif if @twsv6Q == true twsv6Q = ((xx-@twsv6aQ)*@twsv6bQ)^@twsv6cQ else twsv6Q = ((y-@twsv6aQ)*@twsv6bQ)^@twsv6cQ endif if @twsv7Q == true twsv7Q = ((xx-@twsv7aQ)*@twsv7bQ)^@twsv7cQ else twsv7Q = ((y-@twsv7aQ)*@twsv7bQ)^@twsv7cQ endif if @twsv8Q == true twsv8Q = ((y-@twsv8aQ)*@twsv8bQ)^@twsv8cQ else twsv8Q = ((xx-@twsv8aQ)*@twsv8bQ)^@twsv8cQ endif float tang1Q = 0 float tang5Q = 0 if @twsFlavor1Q == true tang1Q = cabs(@twsfn1Q(twsv1Q)) tang5Q = cabs(@twsfn5Q(twsv5Q)) else tang1Q = real(@twsfn1Q(twsv1Q)) tang5Q = real(@twsfn5Q(twsv5Q)) endif if @twsOp1Q == "1" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "2" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "3" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "4" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "5" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "6" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "7" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "8" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "9" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "10" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "11" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "12" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "13" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "14" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "15" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "16" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "17" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "18" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "19" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "20" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "21" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "22" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "23" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "24" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "25" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "26" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "27" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "28" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "29" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "30" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "31" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "32" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q + @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "33" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "34" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "35" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "36" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "37" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "38" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "39" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "40" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "41" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "42" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "43" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "44" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "45" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "46" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "47" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "48" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q + @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "49" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "50" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "51" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "52" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "53" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "54" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "55" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "56" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q + \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "57" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "58" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "59" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "60" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q + \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "61" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "62" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "63" newx = tang1Q - real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q - real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) elseif @twsOp1Q == "64" newx = tang1Q + real(@twsh1Q * @twsfn2Q(twsv2Q - \ @twsfn3Q(@twa1Q * (twsv3Q - @twsfn4Q(@twb1Q * twsv4Q))))) newy = tang5Q + real(@twsh1bQ * @twsfn6Q(twsv6Q - \ @twsfn7Q(@twa1bQ * (twsv7Q - @twsfn8Q(@twb1bQ * twsv8Q))))) endif if @twsv9Q == true twsv9Q = ((newy-@twsv9aQ)*@twsv9bQ)^@twsv9cQ else twsv9Q = ((newx-@twsv9aQ)*@twsv9bQ)^@twsv9cQ endif if @twsv10Q == true twsv10Q = ((y-@twsv10aQ)*@twsv10bQ)^@twsv10cQ else twsv10Q = ((xx-@twsv10aQ)*@twsv10bQ)^@twsv10cQ endif if @twsv11Q == true twsv11Q = ((y-@twsv11aQ)*@twsv11bQ)^@twsv11cQ else twsv11Q = ((xx-@twsv11aQ)*@twsv11bQ)^@twsv11cQ endif if @twsv12Q == true twsv12Q = ((xx-@twsv12aQ)*@twsv12bQ)^@twsv12cQ else twsv12Q = ((y-@twsv12aQ)*@twsv12bQ)^@twsv12cQ endif if @twsv13Q == true twsv13Q = ((newx-@twsv13aQ)*@twsv13bQ)^@twsv13cQ else twsv13Q = ((newy-@twsv13aQ)*@twsv13bQ)^@twsv13cQ endif if @twsv14Q == true twsv14Q = ((y-@twsv14aQ)*@twsv14bQ)^@twsv14cQ else twsv14Q = ((xx-@twsv14aQ)*@twsv14bQ)^@twsv14cQ endif if @twsv15Q == true twsv15Q = ((xx-@twsv15aQ)*@twsv15bQ)^@twsv15cQ else twsv15Q = ((y-@twsv15aQ)*@twsv15bQ)^@twsv15cQ endif if @twsv16Q == true twsv16Q = ((y-@twsv16aQ)*@twsv16bQ)^@twsv16cQ else twsv16Q = ((xx-@twsv16aQ)*@twsv16bQ)^@twsv16cQ endif if @twsOp2Q == "1" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "2" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "3" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "4" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "5" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "6" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "7" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "8" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "9" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "10" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "11" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "12" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "13" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "14" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "15" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "16" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "17" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "18" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "19" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "20" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "21" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "22" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "23" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "24" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "25" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "26" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "27" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "28" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "29" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "30" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "31" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "32" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q + @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "33" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "34" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "35" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "36" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "37" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "38" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "39" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "40" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "41" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "42" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "43" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "44" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "45" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "46" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "47" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "48" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q + @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "49" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "50" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "51" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "52" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "53" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "54" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "55" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "56" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q + \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "57" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "58" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "59" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "60" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q + \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "61" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "62" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "63" x = real(@twsfn9Q(twsv9Q)) + real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) + real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) elseif @twsOp2Q == "64" x = real(@twsfn9Q(twsv9Q)) - real(@twsh2Q * @twsfn10Q(twsv10Q - \ @twsfn11Q(@twa2Q * (twsv11Q - @twsfn12Q(@twb2Q * twsv12Q))))) y = real(@twsfn13Q(twsv13Q)) - real(@twsh2bQ * @twsfn14Q(twsv14Q - \ @twsfn15Q(@twa2bQ * (twsv15Q - @twsfn16Q(@twb2bQ * twsv16Q))))) endif elseif @formulaQ == "Twirl" if @twv1Q == true twv1Q = ((y-@twv1aQ)*@twv1bQ)^@twv1cQ else twv1Q = ((x-@twv1aQ)*@twv1bQ)^@twv1cQ endif if @twv2Q == true twv2Q = ((y-@twv2aQ)*@twv2bQ)^@twv2cQ else twv2Q = ((xx-@twv2aQ)*@twv2bQ)^@twv2cQ endif if @twv3Q == true twv3Q = ((xx-@twv3aQ)*@twv3bQ)^@twv3cQ else twv3Q = ((y-@twv3aQ)*@twv3bQ)^@twv3cQ endif if @twv4Q == true twv4Q = ((y-@twv4aQ)*@twv4bQ)^@twv4cQ else twv4Q = ((xx-@twv4aQ)*@twv4bQ)^@twv4cQ endif if @twv5Q == true twv5Q = ((xx-@twv5aQ)*@twv5bQ)^@twv5cQ else twv5Q = ((y-@twv5aQ)*@twv5bQ)^@twv5cQ endif if @twv6Q == true twv6Q = ((x-@twv6aQ)*@twv6bQ)^@twv6cQ else twv6Q = ((y-@twv6aQ)*@twv6bQ)^@twv6cQ endif if @twv7Q == true twv7Q = ((xx-@twv7aQ)*@twv7bQ)^@twv7cQ else twv7Q = ((y-@twv7aQ)*@twv7bQ)^@twv7cQ endif if @twv8Q == true twv8Q = ((y-@twv8aQ)*@twv8bQ)^@twv8cQ else twv8Q = ((xx-@twv8aQ)*@twv8bQ)^@twv8cQ endif if @twv9Q == true twv9Q = ((xx-@twv9aQ)*@twv9bQ)^@twv9cQ else twv9Q = ((y-@twv9aQ)*@twv9bQ)^@twv9cQ endif if @twv10Q == true twv10Q = ((xx-@twv10aQ)*@twv10bQ)^@twv10cQ else twv10Q = ((y-@twv10aQ)*@twv10bQ)^@twv10cQ endif float twirl1Q = 0 float twirl6Q = 0 if @twiFlavorQ == true twirl1Q = cabs(@twfn1Q(twv1Q)) twirl6Q = cabs(@twfn6Q(twv6Q)) else twirl1Q = real(@twfn1Q(twv1Q)) twirl6Q = real(@twfn6Q(twv6Q)) endif if @twiOpQ == "1" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "2" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "3" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "4" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "5" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "6" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "7" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "8" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "9" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "10" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "11" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "12" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "13" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "14" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "15" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "16" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "17" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "18" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "19" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "20" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "21" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "22" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "23" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "24" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "25" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "26" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "27" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "28" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "29" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "30" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "31" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "32" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q + @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "33" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "34" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "35" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "36" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "37" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "38" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "39" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "40" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "41" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "42" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "43" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "44" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "45" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "46" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "47" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "48" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q + @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "49" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "50" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "51" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "52" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "53" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "54" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "55" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "56" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "57" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "58" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "59" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "60" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q + @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q + @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "61" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "62" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "63" x = twirl1Q + real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q + real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) elseif @twiOpQ == "64" x = twirl1Q - real(@thQ * @twfn2Q(twv2Q - @twfn3Q(real(@taQ) * \ (twv3Q - @twfn4Q(real((@tbQ) *twv4Q))))))*real(@twfn5Q(twv5Q)) y = twirl6Q - real(@th2Q * @twfn7Q(twv7Q - @twfn8Q(imag(@taQ) * \ (twv8Q - @twfn9Q(imag((@tbQ) *twv9Q))))))*real(@twfn10Q(twv10Q)) endif elseif @formulaQ == "Driftwood" if @tgwv1Q == true tgwv1Q = ((y-@tgwv1aQ)*@tgwv1bQ)^@tgwv1cQ else tgwv1Q = ((x-@tgwv1aQ)*@tgwv1bQ)^@tgwv1cQ endif if @tgwv2Q == true tgwv2Q = ((y-@tgwv2aQ)*@tgwv2bQ)^@tgwv2cQ else tgwv2Q = ((xx-@tgwv2aQ)*@tgwv2bQ)^@tgwv2cQ endif if @tgwv3Q == true tgwv3Q = ((xx-@tgwv3aQ)*@tgwv3bQ)^@tgwv3cQ else tgwv3Q = ((y-@tgwv3aQ)*@tgwv3bQ)^@tgwv3cQ endif if @tgwv4Q == true tgwv4Q = ((xx-@tgwv4aQ)*@tgwv4bQ)^@tgwv4cQ else tgwv4Q = ((y-@tgwv4aQ)*@tgwv4bQ)^@tgwv4cQ endif if @tgwv5Q == true tgwv5Q = ((x-@tgwv5aQ)*@tgwv5bQ)^@tgwv5cQ else tgwv5Q = ((y-@tgwv5aQ)*@tgwv5bQ)^@tgwv5cQ endif if @tgwv6Q == true tgwv6Q = ((y-@tgwv6aQ)*@tgwv6bQ)^@tgwv6cQ else tgwv6Q = ((xx-@tgwv6aQ)*@tgwv6bQ)^@tgwv6cQ endif float drift1Q = 0 float drift5Q = 0 if @tgwFlavor1Q == true drift1Q = cabs(@tgwfn1Q(tgwv1Q)) drift5Q = cabs(@tgwfn5Q(tgwv5Q)) else drift1Q = real(@tgwfn1Q(tgwv1Q)) drift5Q = real(@tgwfn5Q(tgwv5Q)) endif if @tgwOp1Q == "1" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "2" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "3" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "4" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "5" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "6" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "7" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "8" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q + \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "5" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q - \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "6" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q - \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "7" newx = drift1Q - real(@tgwh1Q * @tgwfn2Q(tgwv2Q - \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q - imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) elseif @tgwOp1Q == "8" newx = drift1Q + real(@tgwh1Q * @tgwfn2Q(tgwv2Q - \ @tgwfn3Q(real(@tgwa1Q) * (tgwv3Q + @tgwfn4Q(real(@tgwb1Q) * tgwv4Q))))) newy = drift5Q + imag(@tgwh1Q * @tgwfn6Q(tgwv6Q)) endif if @tgwv7Q == true tgwv7Q = ((newy-@tgwv7aQ)*@tgwv7bQ)^@tgwv7cQ else tgwv7Q = ((newx-@tgwv7aQ)*@tgwv7bQ)^@tgwv7cQ endif if @tgwv8Q == true tgwv8Q = ((xx-@tgwv8aQ)*@tgwv8bQ)^@tgwv8cQ else tgwv8Q = ((y-@tgwv8aQ)*@tgwv8bQ)^@tgwv8cQ endif if @tgwv9Q == true tgwv9Q = ((y-@tgwv9aQ)*@tgwv9bQ)^@tgwv9cQ else tgwv9Q = ((xx-@tgwv9aQ)*@tgwv9bQ)^@tgwv9cQ endif if @tgwv10Q == true tgwv10Q = ((xx-@tgwv10aQ)*@tgwv10bQ)^@tgwv10cQ else tgwv10Q = ((y-@tgwv10aQ)*@tgwv10bQ)^@tgwv10cQ endif if @tgwv11Q == true tgwv11Q = ((newx-@tgwv11aQ)*@tgwv11bQ)^@tgwv11cQ else tgwv11Q = ((newy-@tgwv11aQ)*@tgwv11bQ)^@tgwv11cQ endif if @tgwv12Q == true tgwv12Q = ((xx-@tgwv12aQ)*@tgwv12bQ)^@tgwv12cQ else tgwv12Q = ((y-@tgwv12aQ)*@tgwv12bQ)^@tgwv12cQ endif if @tgwOp2Q == "1" x = real(@tgwfn7Q(tgwv7Q)) - real(@tgwh2Q * @tgwfn8Q(tgwv8Q + \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) + imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "2" x = real(@tgwfn7Q(tgwv7Q)) + real(@tgwh2Q * @tgwfn8Q(tgwv8Q + \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) - imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "3" x = real(@tgwfn7Q(tgwv7Q)) + real(@tgwh2Q * @tgwfn8Q(tgwv8Q + \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) + imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "4" x = real(@tgwfn7Q(tgwv7Q)) - real(@tgwh2Q * @tgwfn8Q(tgwv8Q + \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) - imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "5" x = real(@tgwfn7Q(tgwv7Q)) - real(@tgwh2Q * @tgwfn8Q(tgwv8Q - \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) + imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "6" x = real(@tgwfn7Q(tgwv7Q)) + real(@tgwh2Q * @tgwfn8Q(tgwv8Q - \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) - imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "7" x = real(@tgwfn7Q(tgwv7Q)) + real(@tgwh2Q * @tgwfn8Q(tgwv8Q - \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) + imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) elseif @tgwOp2Q == "8" x = real(@tgwfn7Q(tgwv7Q)) - real(@tgwh2Q * @tgwfn8Q(tgwv8Q - \ @tgwfn8Q(real(@tgwa2Q) * (tgwv9Q + @tgwfn10Q(real(@tgwb2Q) * tgwv10Q))))) y = real(@tgwfn11Q(tgwv11Q)) - imag(@tgwh2Q * @tgwfn12Q(tgwv12Q)) endif endif endif i = i + 1 endwhile if @version < 1.6 x = real(@fnx2((x-@pvol2a)*@pvol2)^ @pvol2b) y = real(@fny2((y-@pvol3a)*@pvol3) ^ @pvol3b) if @opxy == "x+y" p = (x + flip(y)) elseif @opxy == "x-y" p = (x - flip(y)) elseif @opxy == "(x+y)+(x+y)" p = (x + flip(y))+((@nufuncxtx(x) + flip(@nufuncxty(y)))-@xtra1)*@xtra2 elseif @opxy == "(x-y)+(x-y)" p = (x + flip(y))-((@nufuncxtx(x) - flip(@nufuncxty(y)))-@xtra1)*@xtra2 endif else if @nuflav == true if @nuflav2 == true if @opxy2 == "X+Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) + @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "X-Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) - @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "Y-X" p = @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b))-@nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) endif else if @opxy2 == "X+Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) + flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "X-Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) - flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "Y-X" p = flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b))-@nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @nuflav2 == true if @opxy2 == "X+Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) + @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "X-Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) - @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "Y-X" p = @nufny2(((flip(y-@pvol3a)*@pvol3)^@pvol3b))-@nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) endif else if @opxy2 == "X+Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) + flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "X-Y" p = @nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) - flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b)) elseif @opxy2 == "Y-X" p = flip(((@nufny2(y-@pvol3a)*@pvol3)^@pvol3b))-@nufnx2(((x-@pvol2a)*@pvol2)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif complex zq = (0,0) if @ztype == "Normal" zq = z1 elseif @ztype == "Modulus" zq = |z1| elseif @ztype == "Atan2" zq = atan2(z1) elseif @ztype == "Real" zq = real(z1) elseif @ztype == "Imag" zq = imag(z1) endif if @type == "Normal" p = p elseif @type == "Var 1" p = cabs(@zfntry(((zq-@zamt1)*@zamt2)^@zamt3) - p) elseif @type == "Var 2" p = cabs(@zfntry(((zq-@zamt1)*@zamt2)^@zamt3) + p) elseif @type == "Var 3" p = cabs(@zfntry(((zq-@zamt1)*@zamt2)^@zamt3) * p) elseif @type == "Var 4" p = cabs(@zfntry(((zq-@zamt1)*@zamt2)^@zamt3) / p) elseif @type == "Var 5" p = cabs(p - @zfntry(((zq-@zamt1)*@zamt2)^@zamt3) ) endif endif ztest = @fntest(z1-@test2)^@test3 if @pctshape == "normal" ztest = ztest * exp(1i*pi/180*@rotation)/@size elseif @pctshape == "acosh" ztest = ztest * acosh(1i*pi/180*@rotation)/@size elseif @pctshape == "acos" ztest = ztest * acos(1i*pi/180*@rotation)/@size endif float xzx = real(@fnxzx(@rat))*real(@fnxx((ztest-@kp0)*@kp1)^@kp2) float yzy = 1/real(@fnyzy(@rat))*imag(@fnyy((ztest-@q0)*@q1)^@q2) xzx = real(@fncx(xzx)^@expx) yzy = real(@fncy(yzy)^@expy) if @trapType == "None" zz = ztest elseif @trapType == "Alien Waves" zz = @fn1(@fn2(((yzy*@shapeAdjust1)/@fn5(xzx*@shapeAdjust4))\ ^@fn4(yzy^@shapeAdjust2)-@fn6(xzx^@shapeAdjust5)-\ @fn3(yzy+(1-@shapeAdjust3))))-@zzort elseif @trapType == "Bad Hair Day" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn5(yzy^@shapeAdjust2)* \ @fn3(yzy*@shapeAdjust3))+@fn4(xzx+(1-@shapeAdjust4)))-@zzort elseif @trapType == "Barbed Wire" zz = @fn1(abs(@fn2(xzx^@shapeAdjust4*@shapeAdjust1))+ \ abs(@fn3((yzy*@shapeAdjust3)^@fn4(yzy*@shapeAdjust2)))-1)- @zzort elseif @trapType == "Baubles & Bangles" zz = @fn1((@fn2(xzx^(2*@shapeAdjust1)-1))^2+@fn3 \ (yzy^2+(1-@shapeAdjust2))* @fn4(yzy^(.2*@shapeAdjust3)-1) \ *@fn5(yzy*@shapeAdjust4-2)* @fn6(yzy+(3-@shapeAdjust5)))-@zzort elseif @trapType == "Bighorn Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)+(@fn3(yzy^2*@shapeAdjust2)* \ @fn4(yzy^2+(1-@shapeAdjust6)))*@fn5(yzy^(5-@shapeAdjust7))/ \ @fn6(xzx^(2*@shapeAdjust3))*@fn7(xzx^2*@shapeAdjust4-@fn8 \ (yzy^@shapeAdjust5)))-@zzort elseif @trapType == "Binary Curve" zz = @fn1((@fn2(xzx^(3-@shapeAdjust5))-@shapeAdjust1)/@fn3 \ (xzx^2-2*@shapeAdjust3)^2+ @fn4(yzy^(2-@shapeAdjust4)- \ @shapeAdjust2^2)^2)-@zzort elseif @trapType == "Bird of Paradise" zz = @fn1(atan(@fn4((xzx*@shapeAdjust1)*@fn3(yzy^@shapeAdjust3)))- \ @fn2(yzy*@shapeAdjust2))-@zzort elseif @trapType == "Cabuchon Curve" zz = @fn1(@fn2(xzx^(@shapeAdjust3)))-@fn3(yzy^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((xzx^(2*@shapeAdjust7)) \ +@fn6(yzy^2+(1-@shapeAdjust6)))/@shapeAdjust2^2-@fn5 \ (xzx*@shapeAdjust5)-@zzort elseif @trapType == "Cardinal Points Curve" zz = @fn1(@fn2(xzx^4+(1-@shapeAdjust2))-@fn3(yzy^(3+@shapeAdjust3))-2* \ @fn4(abs(xzx^(3-@shapeAdjust4))-@fn5(yzy^2*@shapeAdjust1)))-@zzort elseif @trapType == "Chaos Adorned" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn6(yzy^@shapeAdjust2)* \ @fn3(yzy*@shapeAdjust3))+@fn4(xzx+(1-@shapeAdjust4))^ \ @fn5(yzy^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Chaos Unleashed" zz = @fn1(@shapeAdjust1^4*@fn2((yzy^@shapeAdjust3)^@fn5 \ (yzy*@shapeAdjust4))-@shapeAdjust2^2*@fn3((xzx^@shapeAdjust5) \ ^@fn6(xzx+(1-@shapeAdjust6)))* (2*@shapeAdjust1-@fn4 \ (xzx^@shapeAdjust7)))-@zzort elseif @trapType == "Church Key Curve" zz = @fn1(@fn2((xzx*@shapeAdjust4)^@shapeAdjust1))+ \ @fn3(yzy*2.4*@shapeAdjust2)^@fn4(yzy-(1-@shapeAdjust3))-@zzort elseif @trapType == "Compass Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust1))*(@fn3(xzx^2*@shapeAdjust3)+ \ @fn4(yzy^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(xzx^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Conductor's Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)-(@fn3((xzx*.2*@shapeAdjust6)* \ @fn9(yzy*@shapeAdjust2))-@fn4(yzy^2+(1-@shapeAdjust7)))* \ @fn5(yzy^(4*@shapeAdjust3))-@fn6(xzx^(2*@shapeAdjust8))/\ @fn7(xzx^(2*@shapeAdjust4)-@fn8(yzy^(.5*@shapeAdjust5))))-@zzort elseif @trapType == "Conjoined Circle Curve" zz = @fn1((@fn2(xzx^(2*@shapeAdjust2))+@fn3(yzy^(2*@shapeAdjust3)))*\ (@fn4(yzy^@shapeAdjust4)/@fn5(yzy^@shapeAdjust5))-@shapeAdjust1- \ abs(@fn6(yzy^@shapeAdjust6)))-@zzort elseif @trapType == "Cooking Pot Curve" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)-(@shapeAdjust1^2- \ @fn3(xzx^2*@shapeAdjust3)))-(@fn4(xzx^(2*(@shapeAdjust5)))+2* \ @shapeAdjust4*@fn5(yzy^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @zzort elseif @trapType == "Cosmic Rays" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))*@fn3(yzy^(2*@shapeAdjust3))+ \ @fn4(yzy-@shapeAdjust4)/@fn5(yzy^(3*@shapeAdjust2)))-@zzort elseif @trapType == "Crochet Hooks" zz = @fn1(@fn2(yzy^3*@shapeAdjust1)+(@fn3((xzx+(1-@shapeAdjust2))^ \ @fn5(yzy^@shapeAdjust3)/@fn4((xzx*@shapeAdjust4)^@shapeAdjust5))))- \ @zzort elseif @trapType == "Crosshatch Curve" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn4(yzy^@shapeAdjust2)* \ @fn3(yzy+(1-@shapeAdjust3))))-@zzort elseif @trapType == "D&U Curve" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))+@fn3((yzy^(2*@shapeAdjust4))^ \ @fn4(yzy*@shapeAdjust2))-@shapeAdjust3)-@zzort elseif @trapType == "Dogleg Curve" zz = @fn1(atan(@fn4((xzx*@shapeAdjust1)+@fn3(yzy^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(yzy^@shapeAdjust3))-@zzort elseif @trapType == "Double Circle Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust2)+@fn3(yzy^2*@shapeAdjust3))*\ (@fn4(yzy^@shapeAdjust4)/@fn5(yzy^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(yzy^@shapeAdjust6)))-@zzort elseif @trapType == "Double Trine" zz = @fn1(atan(@fn4((xzx*@shapeAdjust1)*@fn3(yzy^@shapeAdjust3)))- \ @fn2(yzy*@shapeAdjust2)/@fn5(xzx^@shapeAdjust4))-@zzort elseif @trapType == "Dribs & Drabs" zz = @fn1((@fn2(xzx^@shapeAdjust2)+@fn3(yzy^(2+@shapeAdjust3))^ \ @fn6(yzy^@shapeAdjust6)-4*@fn4(xzx^(3*@shapeAdjust4))* \ @fn5(yzy^(2*@shapeAdjust5))*@shapeAdjust1^2))-@zzort elseif @trapType == "Driftwood Curve" zz = @fn1(((@fn2(xzx^@shapeAdjust3)-.5*@shapeAdjust10)^2+ \ @fn3(yzy^2+(1-@shapeAdjust4)))*(@fn4(yzy+(1-@shapeAdjust5))* \ (@fn5(xzx-(@shapeAdjust6-1))-@shapeAdjust11)+ \ @fn6(yzy^(1+@shapeAdjust7)))+4*@shapeAdjust1* \ (abs(@fn7(xzx+(@shapeAdjust8-1))-1.5*@shapeAdjust2))* \ @fn8(xzx^(2*@shapeAdjust9)))-@zzort elseif @trapType == "Dulcimer Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust2)+@fn3(yzy^2*@shapeAdjust3))*\ (@fn4(yzy^@shapeAdjust4)*@fn5(yzy^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(yzy^@shapeAdjust6)))-@zzort elseif @trapType == "Eye of the Needle" zz = @fn1((@fn2(yzy^(2*@shapeAdjust7))-@fn3(xzx^2+(1-@shapeAdjust8)))* \ @fn4((xzx^@shapeAdjust9)-@fn9(yzy*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(xzx*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(xzx^2*@shapeAdjust6)+@fn7(yzy^2*@shapeAdjust3)-2*@fn8 \ (xzx^@shapeAdjust5))^2*@shapeAdjust1)-@zzort elseif @trapType == "Exclamation Point" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))/@fn3(yzy^(2*@shapeAdjust3))+ \ @fn4(yzy-@shapeAdjust4)*@fn5(yzy^(3*@shapeAdjust2)))-@zzort elseif @trapType == "Fatback" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))/@fn3(yzy^(2*@shapeAdjust3))+ \ @fn4(yzy-@shapeAdjust4)/@fn5(yzy^(3*@shapeAdjust2)))-@zzort elseif @trapType == "Floreate Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)+@fn3((yzy*@shapeAdjust4)^ \ @fn4(yzy*@shapeAdjust2))-@shapeAdjust3)-@zzort elseif @trapType == "Glyph Curve" zz = @fn1(((@fn2(xzx*@shapeAdjust3)-@shapeAdjust2)^2- \ @fn3(yzy^2*@shapeAdjust4))*(@fn4(xzx+(1-@shapeAdjust5))* \ (@fn5(xzx-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(yzy^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(xzx+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(xzx^(2*@shapeAdjust9)))-@zzort elseif @trapType == "Gravity Waves" zz = @fn1(atan(@fn4((xzx^(2*@shapeAdjust1))+@fn3(yzy^@shapeAdjust4)* \ 2*@shapeAdjust2))-@fn2(yzy^@shapeAdjust3))-@zzort elseif @trapType == "Harpoon Curve" zz = @fn1(@fn2(xzx^(2*@shapeAdjust3)))*@fn3(yzy^2*@shapeAdjust4)+ \ @shapeAdjust1^2-@fn4((xzx*@shapeAdjust7)^@fn6(yzy*@shapeAdjust6))- \ @shapeAdjust2^2-@fn5(xzx^@shapeAdjust5)-@zzort elseif @trapType == "Hook & Spar" zz = @fn1(@fn2(yzy^@shapeAdjust1))-@fn3(yzy*@shapeAdjust2)^ \ @fn4(xzx^@shapeAdjust3)-@zzort elseif @trapType == "Hoops & Plates" zz = @fn1((@fn2((xzx+(1-@shapeAdjust4))^@fn5(xzx+(1-@shapeAdjust4)))+ \ @fn3(yzy^2*@shapeAdjust2)+@shapeAdjust1)^2-4*@shapeAdjust1^2* \ @fn4(xzx^@shapeAdjust3)-1)-@zzort elseif @trapType == "Horned Torus Curve" zz = @fn1(@fn2(yzy^2*@shapeAdjust1)-(@fn3(xzx^2*@shapeAdjust2)+ \ @fn4(yzy^2+(1-@shapeAdjust6)))*@fn5(xzx^(4*@shapeAdjust7))/ \ @fn6(xzx^(3-@shapeAdjust3))/@fn7(xzx^2*@shapeAdjust4/@fn8 \ (yzy^@shapeAdjust5)))-@zzort elseif @trapType == "Indented Parabola" zz = @fn1(@fn2(yzy^@shapeAdjust1))+@fn3(xzx*.2*@shapeAdjust2)- \ @fn4(yzy^(2*@shapeAdjust3))-@zzort elseif @trapType == "Intersecting Ovals" zz = @fn1(@fn2(xzx^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(xzx^2*@shapeAdjust3)))-(@fn4(xzx^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(yzy^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @zzort elseif @trapType == "Leaves of Grass" zz = @fn1(@fn2(yzy^@shapeAdjust1))-@fn3(xzx*@shapeAdjust2)^ \ @fn4(yzy^@shapeAdjust3)-@zzort elseif @trapType == "Lipped Ovals" zz = @fn1(abs(@fn2(xzx^2*@shapeAdjust3*@shapeAdjust1))+ \ abs(@fn3(yzy^@shapeAdjust2))-1)-@zzort elseif @trapType == "M Curve" zz = @fn1(@fn2(yzy^@shapeAdjust1))+@fn3(@shapeAdjust4*xzx^ \ (3*@shapeAdjust2))- @fn4(yzy^(2*@shapeAdjust3))-@zzort elseif @trapType == "Mercury Curve" zz = @fn1(((@fn2(xzx*@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(yzy^2*@shapeAdjust4))*(@fn4(xzx+(1-@shapeAdjust5))* \ (@fn5(xzx-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(yzy^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(xzx+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(xzx^(2*@shapeAdjust9)))-@zzort elseif @trapType == "Miscellanea" zz = @fn1((@fn2(yzy^(2*@shapeAdjust7))-@fn3(xzx^2+(1-@shapeAdjust8)))* \ @fn4((xzx^@shapeAdjust9)-@fn9(yzy*@shapeAdjust4))* \ (@shapeAdjust1*@fn5((yzy*@shapeAdjust10)^ \ (@fn10(xzx^@shapeAdjust11)))-@shapeAdjust2)+4* \ (@fn6(xzx^2*@shapeAdjust6)+@fn7(yzy^2*@shapeAdjust3) \ +2*@fn8(yzy^@shapeAdjust5))^2*@shapeAdjust1)-@zzort elseif @trapType == "Moorish Fantasy" zz = @fn1(@fn2((xzx*@shapeAdjust4)^@shapeAdjust1))- \ @fn3(yzy*@shapeAdjust2)^@fn4(yzy-(1-@shapeAdjust3))-@zzort elseif @trapType == "Mousehead Curve" zz = @fn1(((@fn2(xzx^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(yzy^2+(1-@shapeAdjust4)))*(@fn4(xzx+(1-@shapeAdjust5))* \ (@fn5(xzx-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(yzy^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(xzx+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(yzy^(2*@shapeAdjust9)))-@zzort elseif @trapType == "Nested Ovals" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)*(@shapeAdjust1^2- \ @fn3(xzx^2*@shapeAdjust3)))-(@fn4(xzx^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(yzy^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @zzort elseif @trapType == "Nesting Birds Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)-(@fn3((.2*yzy*@shapeAdjust6)^ \ @fn9(yzy*@shapeAdjust2))*@fn4(yzy^2+(1-@shapeAdjust7)))* \ @fn5(yzy^(4*@shapeAdjust3))/@fn6(xzx^(2*@shapeAdjust8))* \ @fn7(xzx^2*(3*@shapeAdjust4)-@fn8(.5*yzy^@shapeAdjust5)))-@zzort elseif @trapType == "O-nami Curve" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn6(yzy^@shapeAdjust2)* \ @fn3(yzy*@shapeAdjust3))+@fn4(xzx+(1-@shapeAdjust4))/ \ @fn5(yzy^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Odds 'n Ends" zz = @fn1((@fn2(yzy^(2*@shapeAdjust7))-@fn3(xzx^2+(1-@shapeAdjust8)))* \ @fn4((xzx^@shapeAdjust9)-@fn9(yzy*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(xzx*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(xzx^2*@shapeAdjust6)+@fn7(yzy^2*@shapeAdjust3)-2-@fn8 \ (xzx^@shapeAdjust5))^2*@shapeAdjust1)-@zzort elseif @trapType == "Omega Curve" zz = @fn1(atan(@fn4((xzx^(2*@shapeAdjust1))/@fn3(yzy^(2*@shapeAdjust4))/ \ @shapeAdjust2))+@fn2(xzx^@shapeAdjust3))-@zzort elseif @trapType == "Ornate Curve" zz = @fn1((@fn2(yzy^(2*@shapeAdjust7))/@fn3(xzx^2+(1-@shapeAdjust8)))* \ @fn4((xzx^@shapeAdjust9)-@fn9(yzy*@shapeAdjust4))* \ (@shapeAdjust1-@fn5(xzx*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(xzx^2*@shapeAdjust6)+@fn7(yzy^2*@shapeAdjust3)-2*@fn8 \ (xzx^@shapeAdjust5))^2*@shapeAdjust1)-@zzort elseif @trapType == "Ovals" zz = @fn1(@fn2(xzx*@shapeAdjust2-@fn6(yzy*@shapeAdjust4))- \ @fn3(xzx^2*@shapeAdjust3+@fn4(yzy^(2*@shapeAdjust5)))-2* \ @shapeAdjust1*@fn5(yzy^(2*@shapeAdjust6)))-@zzort elseif @trapType == "Ovate Waves" zz = @fn1(@fn2(yzy^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(yzy^2*@shapeAdjust4)-@fn4((yzy*@shapeAdjust7)^ \ @fn6(yzy^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(xzx^(2*@shapeAdjust6)))-@zzort elseif @trapType == "Ovate Waves 2" zz = @fn1(@fn2(yzy^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(yzy^2*@shapeAdjust4)-@fn4((xzx*@shapeAdjust7)^ \ @fn6(xzx^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(xzx^(2*@shapeAdjust6)))-@zzort elseif @trapType == "Pacifier Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)-(@fn3((xzx*.2*@shapeAdjust6)* \ @fn9(yzy*@shapeAdjust2))-@fn4(yzy^2+(1-@shapeAdjust7)))* \ @fn5(yzy^(4*@shapeAdjust3))-@fn6(xzx^(2*@shapeAdjust8))/\ @fn7(xzx^(2*@shapeAdjust4)/@fn8(yzy^(.5*@shapeAdjust5))))-@zzort elseif @trapType == "Parenthetical Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust2)+@fn3(yzy^2*@shapeAdjust3))-atan \ (@fn4(yzy^@shapeAdjust4)/@fn5(yzy^@shapeAdjust5))+@shapeAdjust1* \ abs(@fn6(yzy+(1-@shapeAdjust6))))-@zzort elseif @trapType == "Pincers" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)/@fn3(yzy^(1+@shapeAdjust3))+ \ @fn4((yzy^@shapeAdjust4)^@fn6(yzy*@shapeAdjust2))/ \ @fn5(yzy^2+(1-@shapeAdjust5)))-@zzort elseif @trapType == "Pisces Curve" zz = @fn1((@fn2(xzx^(2*@shapeAdjust1))-1)^2-@fn3(.6*yzy^2+ \ (1-@shapeAdjust2))* @fn4(yzy^@shapeAdjust3-1)* \ @fn5(yzy*@shapeAdjust4-1)* @fn6(3*yzy+(6-@shapeAdjust5)))-@zzort elseif @trapType == "Plane & Tail" zz = @fn1(@shapeAdjust1^4/@fn2((xzx^(2*@shapeAdjust3)) \ +@fn5(yzy^@shapeAdjust4))* @shapeAdjust2^2- \ @fn3((xzx^(2*@shapeAdjust5))^@fn6(xzx+(1-@shapeAdjust6)))/\ (2*@shapeAdjust1/@fn4(yzy^@shapeAdjust7)))-@zzort elseif @trapType == "Plane & Tail 2" zz = @fn1(@shapeAdjust1^4/@fn2((xzx^(2*@shapeAdjust3)) \ +@fn5(yzy^@shapeAdjust4)) *@shapeAdjust2^2- \ @fn3((xzx^(2*@shapeAdjust5))^ @fn6(xzx+(1-@shapeAdjust6))) \ /(2*@shapeAdjust1-@fn4(yzy^@shapeAdjust7)))-@zzort elseif @trapType == "Seagull Curve" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(yzy^(5-@shapeAdjust3))+@fn5(xzx+(1-@shapeAdjust5))+ \ @fn4(yzy^(7-@shapeAdjust4))))-@zzort elseif @trapType == "Simple Curve" zz = @fn1(atan(@fn4((xzx^@shapeAdjust4*@shapeAdjust1)- \ @fn3(yzy^@shapeAdjust5)*@shapeAdjust2))-@fn2(yzy^@shapeAdjust3))- \ @zzort elseif @trapType == "Smoke Rings" zz = @fn1(@shapeAdjust1^4+@fn2((@shapeAdjust8*xzx^(2*@shapeAdjust3))* \ @fn5(yzy^@shapeAdjust4))- @shapeAdjust2^2- \ @fn3((xzx^(@shapeAdjust5))^@fn6(xzx+(1-@shapeAdjust6))) \ /(2*@shapeAdjust1-@fn4(yzy^@shapeAdjust7)))-@zzort elseif @trapType == "Sneering Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)-(@fn3((xzx*.2*@shapeAdjust6)* \ @fn9(yzy*@shapeAdjust2))-@fn4(yzy^2+(1-@shapeAdjust7)))* \ @fn5(yzy^(4*@shapeAdjust3))-@fn6(xzx^(2*@shapeAdjust8))/\ @fn7(xzx^(2*@shapeAdjust4)+@fn8(yzy^(.5*@shapeAdjust5))))-@zzort elseif @trapType == "Space Debris" zz = @fn1(@shapeAdjust1^4*@fn2((yzy^2*@shapeAdjust3)/ \ @fn5(xzx^2*@shapeAdjust4))- @shapeAdjust2^2* \ @fn3((xzx^@shapeAdjust5)^@fn6(xzx+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(xzx^@shapeAdjust7)))-@zzort elseif @trapType == "Spectacles Curve" zz = @fn1(@fn2(xzx^4*@shapeAdjust2)+@fn3(yzy^4*@shapeAdjust3)-2* \ @shapeAdjust5*@fn4(abs(xzx^@shapeAdjust4)- \ @fn5(yzy^2*@shapeAdjust1)))-@zzort elseif @trapType == "Spiked Cusp" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn4(yzy^@shapeAdjust2)* \ @fn3(xzx*@shapeAdjust3)))-@zzort elseif @trapType == "Squared Circle Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust1))*(@fn3(xzx^2*@shapeAdjust3)- \ @fn4(yzy^2*@shapeAdjust4))-@shapeAdjust2^2/2+ \ @fn5(yzy^(4*@shapeAdjust5)))-@zzort elseif @trapType == "Squeezed Rectangle Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust2)-@shapeAdjust1* \ (@fn3(yzy^(5-@shapeAdjust3))-@fn5(xzx^@shapeAdjust5)- \ @fn4(yzy^(7-@shapeAdjust4))))-@zzort elseif @trapType == "Swallow Curve" zz = @fn1(@fn2((xzx^2*@shapeAdjust2))-@fn3((yzy^2*@shapeAdjust3)))^2-4* \ @shapeAdjust1*@fn4((xzx^@shapeAdjust5^@fn6(yzy^2*@shapeAdjust4))* \ @fn5(yzy^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Stretched Oval Curve" zz = @fn1(@shapeAdjust1^4+@fn2((yzy^(2*@shapeAdjust3))/@fn5 \ (xzx^(2*@shapeAdjust4)))-@shapeAdjust2^2* \ @fn3((xzx^(2*@shapeAdjust5))*@fn6(xzx+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(xzx^@shapeAdjust7)))-@zzort elseif @trapType == "Switchback Curve" zz = @fn1(atan(@fn4((xzx^(2*@shapeAdjust1))*@fn3(yzy^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(xzx^@shapeAdjust3))-@zzort elseif @trapType == "Taurus Curve" zz = @fn1(@fn2(xzx^(@shapeAdjust3)))-@fn3(yzy^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((xzx^(2*@shapeAdjust7))+ \ @fn6(yzy^2+(1-@shapeAdjust6)))/@shapeAdjust2^2* \ @fn5(xzx^@shapeAdjust5)-@zzort elseif @trapType == "Teardrop Curve" zz = @fn1(@shapeAdjust1^4*@fn2((yzy^(2*@shapeAdjust3))/@fn5 \ (xzx^2*@shapeAdjust4))- @shapeAdjust2^2*@fn3((xzx^(2*@shapeAdjust5)) \ /@fn6(xzx+(1-@shapeAdjust6)))* (2*@shapeAdjust1-@fn4 \ (xzx^@shapeAdjust7)))-@zzort elseif @trapType == "Tennis Anyone?" zz = @fn1(@fn2(xzx^2*@shapeAdjust3)+2*@shapeAdjust1* \ @fn3((xzx^@shapeAdjust7)-@fn6(yzy*@shapeAdjust4))- \ @shapeAdjust1^2)^2-@fn4(yzy^2*@shapeAdjust5)* \ (@shapeAdjust2^2-@fn5(xzx^2*@shapeAdjust6))- @zzort elseif @trapType == "Thick 'n Thin" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn4(yzy^@shapeAdjust2)/ \ @fn3(yzy+(1-@shapeAdjust3))))-@zzort elseif @trapType == "Thorned Cross" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn5(yzy^@shapeAdjust2)* \ @fn3(xzx*@shapeAdjust3))+@fn4(xzx+(1-@shapeAdjust4)))-@zzort elseif @trapType == "Three Point Curve" zz = @fn1((@fn2(xzx^2)-@shapeAdjust1^2)*@fn3(xzx^2-@shapeAdjust3)^2+ \ @fn4(yzy^(4-@shapeAdjust4)-@shapeAdjust2^2)^2)- @zzort elseif @trapType == "Tsuba curve" zz = @fn1(@fn2(yzy^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(xzx^2*@shapeAdjust3)))-(@fn4(xzx^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(yzy^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @zzort elseif @trapType == "Wheel in Trough" zz = @fn1((@fn2((xzx*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(yzy^2*@shapeAdjust3))*atan2(@fn4(yzy^@shapeAdjust7)* \ @fn5(xzx^(1+@shapeAdjust5)))-@shapeAdjust1* \ @fn6(yzy^@shapeAdjust6))-@zzort elseif @trapType == "Whip Curve" zz = @fn1(@fn2((yzy*@shapeAdjust1)^@fn6(yzy^@shapeAdjust2)* \ @fn3(yzy*@shapeAdjust3))+@fn4(xzx+(1-@shapeAdjust4))- \ @fn5(yzy^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Ampersand Curve" zz = @fn1((@fn2(yzy^(2*@shapeAdjust3))-@fn3(xzx^2+(1-@shapeAdjust4)))* \ @fn4((xzx^@shapeAdjust5)-1)*(@shapeAdjust1* \ @fn5(xzx)-@shapeAdjust2)- 4*(@fn6(xzx^2*@shapeAdjust6)+ \ @fn7(yzy^(2*@shapeAdjust7))-2* @fn8(xzx^@shapeAdjust8))^2)-@zzort elseif @trapType == "ArcTangent" zz = @fn1(atan(@fn2(xzx^@shapeAdjust1*@shapeAdjust3))- \ @fn3(yzy^@shapeAdjust2))-@zzort elseif @trapType == "Bean Curve" zz = @fn1(@fn2(xzx^4*@shapeAdjust1)+@fn3(xzx^(2*@shapeAdjust2))* \ @fn4(yzy^(2*@shapeAdjust3))+@fn5(yzy^4*@shapeAdjust4)- \ @fn6(xzx^@shapeAdjust5)*@fn7(xzx^(2*@shapeAdjust6)+ \ @fn8(yzy^2+(1-@shapeAdjust7))))-@zzort elseif @trapType == "Bicorn Curve" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)*(@shapeAdjust1^2-@fn3(xzx^2)))- \ (@fn4(xzx^(2*@shapeAdjust3))+2*@shapeAdjust1* \ @fn5(yzy^@shapeAdjust4)-@shapeAdjust1^2)^2-@zzort elseif @trapType == "Bicuspid Curve" zz = @fn1(@fn2(xzx^(2*@shapeAdjust2)-@shapeAdjust1^2)* \ @fn3(xzx^@shapeAdjust3-@shapeAdjust1)^2+ \ @fn4(yzy^(2*@shapeAdjust4)-@shapeAdjust1^2)^2)-@zzort elseif @trapType == "Bifoliate" zz = @fn1(@fn2(xzx^4*@shapeAdjust2)+@fn3(yzy^4*@shapeAdjust3)- \ 2*@shapeAdjust1*@fn4(abs(xzx^@shapeAdjust4)* \ @fn5(yzy^(2*@shapeAdjust5))))-@zzort elseif @trapType == "Bifolium" zz = @fn1(@fn2(xzx^(1+@shapeAdjust2))+@fn3(yzy^2+(1-@shapeAdjust3)))^2- \ 4*@shapeAdjust1*@fn4(abs(xzx^@shapeAdjust4)* \ @fn5(yzy^(3-@shapeAdjust5)))-@zzort elseif @trapType == "Bow" zz = @fn1(@fn2(xzx^4*@shapeAdjust1)-@fn3(xzx^2+(1-@shapeAdjust2))* \ @fn4(yzy^@shapeAdjust3)+@fn5(yzy^3*@shapeAdjust4))-@zzort elseif @trapType == "Butterfly Curve" zz = @fn1(@fn2(yzy^(6*@shapeAdjust1))-(@fn3(xzx^2+(1-@shapeAdjust2))- \ @fn4(xzx^6+(1-@shapeAdjust3))))-@zzort elseif @trapType == "Cassini Ovals" zz = @fn1((@fn2(xzx^2*@shapeAdjust3)+@fn3(yzy^2*@shapeAdjust4)+ \ @shapeAdjust1^2)^2-4*@shapeAdjust1^2* \ @fn4(xzx^(3-@shapeAdjust5))-@shapeAdjust2^4)-@zzort elseif @trapType == "Circle" zz = @fn1(@fn2((xzx*@shapeAdjust1)^(3-@shapeAdjust2))+ \ @fn3((yzy*@shapeAdjust3)^(3-@shapeAdjust4))-1)-@zzort elseif @trapType == "Cissoid of Diocles" zz = @fn1(@fn2(xzx^@shapeAdjust2)*@fn3(xzx^2+(1-@shapeAdjust3)+ \ @fn4(yzy^2*@shapeAdjust4))-2*@shapeAdjust1* \ @fn5(yzy^2+(1-@shapeAdjust5)))-@zzort elseif @trapType == "Cochleoid" zz = @fn1((@fn2(xzx^2*@shapeAdjust2)+@fn3(yzy^2*@shapeAdjust3))* \ atan(@fn4(yzy^@shapeAdjust4)/@fn5(xzx^@shapeAdjust5))- \ @shapeAdjust1*abs(@fn6(yzy^@shapeAdjust6)))-@zzort elseif @trapType == "Cocked Hat" zz = @fn1(@fn2(xzx^2*@shapeAdjust3)+2*@shapeAdjust1*@fn3 \ (yzy^@shapeAdjust4)- @shapeAdjust1^2)^2-@fn4(yzy^(3-@shapeAdjust5))* \ (@shapeAdjust2^2-@fn5(xzx^2*@shapeAdjust6))-@zzort elseif @trapType == "Conchoid of Nicomedes" zz = @fn1((@fn2(xzx-@shapeAdjust1))^2*(@fn3(xzx^(2*@shapeAdjust3))+ \ @fn4(yzy^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(xzx^2*@shapeAdjust5))-@zzort elseif @trapType == "Cruciform" zz = @fn1(@fn2(xzx^2*@shapeAdjust3)*@fn3(yzy^(1+@shapeAdjust4))- \ @shapeAdjust1^2*@fn4(xzx^(1+@shapeAdjust5))-@shapeAdjust2^2* \ @fn5(yzy^(3-@shapeAdjust6)))-@zzort elseif @trapType == "Devil's Curve" zz = @fn1(@fn2(yzy^(3+@shapeAdjust4))-@shapeAdjust1^2* \ @fn3(yzy^2+(1-@shapeAdjust5))-@fn4(xzx^4*@shapeAdjust3)+ \ @shapeAdjust2^2*@fn5(xzx^(1+@shapeAdjust6)))-@zzort elseif @trapType == "Diamond" zz = @fn1(abs(@fn2(xzx*@shapeAdjust1))+abs(@fn3(yzy^@shapeAdjust2))-1)- \ @zzort elseif @trapType == "Dumbbell Curve" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(xzx^(5-@shapeAdjust3))-@fn4(xzx^(7-@shapeAdjust4))))-@zzort elseif @trapType == "Dürer's Conchoid" zz = @fn1(2*@fn2(yzy^(1+@shapeAdjust3))*(@fn3(xzx^(1+@shapeAdjust4))+ \ @fn4(yzy^2*@shapeAdjust5))-2*@shapeAdjust2* \ @fn5(yzy^2+(1-@shapeAdjust6))*(@fn6(xzx^@shapeAdjust7)+ \ @fn7(yzy+(1-@shapeAdjust8)))+(@shapeAdjust2^2-3*@shapeAdjust1^2)* \ @fn8(yzy^(1+@shapeAdjust9))-@shapeAdjust1^2* \ @fn9(xzx^2*@shapeAdjust10)+2*@shapeAdjust1^2*@shapeAdjust2* \ (@fn10(xzx^@shapeAdjust11)+@fn11(yzy^@shapeAdjust12))+ \ @shapeAdjust1^2*(@shapeAdjust1^2-@shapeAdjust2^2))-@zzort elseif @trapType == "Eight Curve" zz = @fn1(@fn2(xzx^(3+@shapeAdjust2))-@shapeAdjust1^2* \ (@fn3(xzx^2*@shapeAdjust3)-@fn4(yzy^2*@shapeAdjust4)))-@zzort elseif @trapType == "Happy Accident" zz = @fn1((@fn2((xzx*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(yzy^2*@shapeAdjust3))*atan2(@fn4(yzy^@shapeAdjust7)* \ @fn5(xzx^@shapeAdjust5))-@shapeAdjust1*@fn6 \ (yzy^@shapeAdjust6))-@zzort elseif @trapType == "Hyperbola" zz = @fn1(@fn2((xzx*@shapeAdjust1)^(1+@shapeAdjust2))- \ @fn3((yzy*@shapeAdjust3)^(1+@shapeAdjust4)) + 1)-@zzort elseif @trapType == "Kappa Curve" zz = @fn1((@fn2(xzx^(3-@shapeAdjust2))+@fn3(yzy^2*@shapeAdjust3))* \ @fn4(yzy^(1+@shapeAdjust4))-@shapeAdjust1^2* \ @fn5(xzx^2*@shapeAdjust5))-@zzort elseif @trapType == "Keppler's Folium" zz = @fn1(((@fn2(xzx^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(yzy^2+(1-@shapeAdjust4)))*(@fn4(xzx+(1-@shapeAdjust5))* \ (@fn5(xzx-(@shapeAdjust6-1))-@shapeAdjust2)+@fn6 \ (yzy^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(xzx+(@shapeAdjust8-1)))-@shapeAdjust2)* \ @fn8(yzy^(2*@shapeAdjust9)))-@zzort elseif @trapType == "Keratoid Cusp" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))*@fn3(yzy^@shapeAdjust2)+ \ @fn4(xzx^(5*@shapeAdjust3))-@fn5(yzy^(3-@shapeAdjust4)))-@zzort elseif @trapType == "Knot Curve" zz = @fn1((@fn2(xzx^(1+@shapeAdjust1)-1)^2)-@fn3(yzy^2*@shapeAdjust2)* \ (3+2*@fn4(yzy*@shapeAdjust3)))-@zzort elseif @trapType == "Lemniscate" zz = @fn1((@fn2(xzx^2+(1-@shapeAdjust2))+@fn3(yzy^(1+@shapeAdjust3)))^2- \ 2*@shapeAdjust1*(@fn4(xzx^(2*@shapeAdjust4))- \ @fn5(yzy^2*@shapeAdjust5)))-@zzort elseif @trapType == "Lemniscate Corrected" zz = @fn1(@fn2(xzx^4+(1-@shapeAdjust2))+@fn3(yzy^4+(3-@shapeAdjust3))* \ @fn4(xzx^2*@shapeAdjust4)*@fn5(yzy^(2*@shapeAdjust5))-2* \ @shapeAdjust1^2*(@fn6(xzx^(2*@shapeAdjust6))- \ @fn7(yzy^(1+@shapeAdjust7))))-@zzort elseif @trapType == "Limacon" zz = @fn1((@fn2(xzx^(2*@shapeAdjust3))+@fn3(yzy^2+(1-@shapeAdjust4))-2* \ @shapeAdjust1*@fn4(xzx^@shapeAdjust5))^2-@shapeAdjust2^2* \ (@fn5(xzx^2*@shapeAdjust6)+@fn6(yzy^2*@shapeAdjust7)))-@zzort elseif @trapType == "Line" zz = @fn1(yzy^@shapeAdjust1)-@zzort elseif @trapType == "Links Curve" zz = @fn1((@fn2(xzx^2*@shapeAdjust1)+@fn3(yzy^(2*@shapeAdjust2))-3* \ @fn4(xzx^@shapeAdjust3))^2-4*@fn5(xzx^(2*@shapeAdjust4))* \ (2-abs(@fn6(xzx^@shapeAdjust5))))-@zzort elseif @trapType == "Maltese Cross Curve" zz = @fn1(@fn2(xzx^2*@shapeAdjust1)+@fn3(yzy^(2*@shapeAdjust2))-abs \ (@fn4(xzx^@shapeAdjust3))*abs(@fn5(yzy+(1-@shapeAdjust4)))* \ (@fn6(xzx^(2+(1-@shapeAdjust5))-@fn7(yzy^(2*@shapeAdjust6)))))- \ @zzort elseif @trapType == "Parabola" zz = @fn1(@fn2(xzx^(2*@shapeAdjust1))-@fn3(yzy^@shapeAdjust2))-@zzort elseif @trapType == "Pear-shaped Curve" zz = @fn1(@fn2(xzx^(4-@shapeAdjust3))* \ (@shapeAdjust1-@fn3(xzx^@shapeAdjust4))-@shapeAdjust2^2* \ @fn4(yzy^(2*@shapeAdjust5)))-@zzort elseif @trapType == "Piriform" zz = @fn1(@shapeAdjust1^4*@fn2(yzy^(2*@shapeAdjust3))-@shapeAdjust2^2* \ @fn3(xzx^(3*@shapeAdjust4))*(2*@shapeAdjust1-@fn4 \ (xzx/@shapeAdjust5)))- @zzort elseif @trapType == "Quadrifolium" zz = @fn1((@fn2(xzx^(2*@shapeAdjust2))+@fn3(yzy^2*@shapeAdjust3))^3-4* \ @fn4(xzx^2+(1-@shapeAdjust4))*@fn5(yzy^(3-@shapeAdjust5))* \ @shapeAdjust1^2)-@zzort elseif @trapType == "Rose Curve" complex tz = atan2(xzx + flip(yzy)) zz = @fn1(@shapeAdjust1*cos(@fn2(tz^@shapeAdjust3)) + \ @shapeAdjust2*sin(@fn3(tz^@shapeAdjust4)))-@zzort elseif @trapType == "Serpentine Curve" zz = @fn1(@shapeAdjust1*@shapeAdjust2*@fn2(xzx^@shapeAdjust3)/ \ @fn3((xzx+1-@shapeAdjust3)^2+@shapeAdjust1^2)- \ @fn4(yzy^@shapeAdjust4))-@zzort elseif @trapType == "sin(x)/x" zz = @fn1(10*@fn2(sin(xzx^@shapeAdjust1))/@fn3(xzx*@shapeAdjust2)- \ @fn4(yzy^@shapeAdjust3))-@zzort elseif @trapType == "Sinus + Cosinus" zz = @fn1(sin(@shapeAdjust1*@fn2(xzx^@shapeAdjust3))+ \ cos(@shapeAdjust2*@fn3(xzx+(1-@shapeAdjust4)))+ \ @fn4(yzy^@shapeAdjust5))-@zzort elseif @trapType == "Spiral" zz = abs((xzx^(2*@shapeAdjust2)+yzy^(2*@shapeAdjust3))^ \ @shapeAdjust1%1-.5+atan2(xzx*@shapeAdjust4+ \ (flip(yzy^@shapeAdjust5)))/(2*pi)) zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+ \ atan2(xzx+flip(yzy))/(2*pi)+1) if real(zz2) < real(zz) zz = real(zz2) endif zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+atan2 \ (xzx+flip(yzy))/(2*pi)-1) if real(zz2) < real(zz) zz = real(zz2) endif elseif @trapType == "Square" if abs(xzx) > abs(yzy) zz = @fn1(@fn2(abs(xzx^@shapeAdjust1))-1)-@zzort else zz = @fn3(@fn4(abs(yzy^@shapeAdjust2))-1)-@zzort2 endif elseif @trapType == "Stirrup Curve" zz = @fn1(@fn2((xzx^2-1)^2)-@fn3(yzy^2)*@fn4(yzy-1)*@fn5(yzy-2)* \ @fn6(yzy+5))-@zzort elseif @trapType == "Strange shape" zz = @fn1((@fn2(xzx^(2*@shapeAdjust2))+@fn3((yzy*@shapeAdjust8)^ \ (2*@shapeAdjust3)))*atan2(@fn4(xzx*@shapeAdjust4)^ \ @shapeAdjust7+flip(@fn5(yzy^@shapeAdjust5)))- \ @shapeAdjust1*@fn6(yzy^@shapeAdjust6))-@zzort elseif @trapType == "Swastika Curve" zz = @fn1(@fn2(yzy^(4*@shapeAdjust1))-@fn3(xzx^4*@shapeAdjust2)- \ @fn4(xzx^@shapeAdjust3)*@fn5(yzy+(1-@shapeAdjust4)))-@zzort elseif @trapType == "Tangent" zz = @fn1(tan(@fn2((xzx*@shapeAdjust1)^@shapeAdjust2))- \ @fn3(yzy*@shapeAdjust3)^@shapeAdjust4)-@zzort elseif @trapType == "Trefoil" zz = @fn1(@fn2(xzx^(5-@shapeAdjust1))+@fn3(xzx^(2*@shapeAdjust2))* \ @fn4(yzy^2*@shapeAdjust3)+@fn5(yzy^(4*@shapeAdjust4))- \ @fn6(xzx^@shapeAdjust5)*(@fn7(xzx^2*@shapeAdjust6)- \ @fn8(yzy^2+(1-@shapeAdjust7))))-@zzort elseif @trapType == "Trident" zz = @fn1(@fn2(xzx^3*@shapeAdjust2)-@shapeAdjust1^3- \ @fn3(xzx^@shapeAdjust3)*@fn4(yzy*@shapeAdjust4))-@zzort elseif @trapType == "Trident of Descartes" zz = @fn1((@shapeAdjust1+@fn2(xzx^@shapeAdjust2))* \ (@shapeAdjust1-@fn3(xzx*@shapeAdjust3))* \ (2*@shapeAdjust1-@fn4(xzx^@shapeAdjust4))/ \ (@shapeAdjust1*@fn5(xzx+(1-@shapeAdjust5)))- \ @fn6(yzy^@shapeAdjust6))-@zzort elseif @trapType == "Trifolium" zz = @fn1((@fn2(xzx^2*@shapeAdjust3)+@fn3(yzy^(2*@shapeAdjust4)))* \ (@fn4(yzy^(2*@shapeAdjust5))+@fn5(xzx^@shapeAdjust6)* \ @fn6(xzx+@shapeAdjust1))-4*@shapeAdjust2* \ @fn7(xzx^@shapeAdjust7)*@fn8(yzy^2+(1-@shapeAdjust8)))-@zzort elseif @trapType == "Trisectrix of Maclaurin" zz = @fn1(@fn2(yzy^2*@shapeAdjust2)*(@shapeAdjust1+ \ @fn3(xzx^@shapeAdjust3))-@fn4(xzx^(2*@shapeAdjust4))* \ (3*@shapeAdjust1-@fn5(xzx*@shapeAdjust5)))-@zzort elseif @trapType == "Twisted Cross" zz = @fn1(@fn2(yzy^(5-@shapeAdjust1))-@fn3(xzx^(5-@shapeAdjust2))- \ @fn4(xzx^@shapeAdjust3)*@fn5(yzy+(1-@shapeAdjust4)))-@zzort elseif @trapType == "Witch of Agnesi" zz = @fn1(8*@shapeAdjust2*@shapeAdjust1^3/ \ @fn2(xzx^(2*@shapeAdjust3)+4*@shapeAdjust1^2)- \ @fn3(yzy^@shapeAdjust4))-@zzort endif if @nuflavPct == true if @varTypePct == "Normal" zz = zz elseif @varTypePct == "Modulus" zz = |zz| elseif @varTypePct == "Atan2" zz = atan2(zz) elseif @varTypePct == "Real" zz = real(zz) elseif @varTypePct == "Imag" zz = imag(zz) endif if @opaddPct == "None" zz = zz elseif @opaddPct == "+(X+Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X+Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X-Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X-Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y-X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y-X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X*Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X*Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X/Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X/Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y/X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y/X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X^Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X^Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ @nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y^X)" zz = zz + (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y^X)" zz = zz - (@nufuncxtyp(flip((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) endif else if @varTypePct == "Normal" zz = (@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Modulus" zz = (@zzpctfn(|zz|-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Atan2" zz = atan2(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Real" zz = real(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 elseif @varTypePct == "Imag" zz = imag(@zzpctfn(zz-@zzpct1)*@zzpct2)^@zzpct3 endif if @opaddPct == "None" zz = zz elseif @opaddPct == "+(X+Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X+Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp + \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X-Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X-Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp - \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y-X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y-X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp - \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X*Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X*Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp * \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(X/Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X/Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp / \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "+(Y/X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y/X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp / \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "+(X^Y)" zz = zz + (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opaddPct == "-(X^Y)" zz = zz - (@nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp ^ \ flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp)) elseif @opadd == "+(Y^X)" zz = zz + (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) elseif @opaddPct == "-(Y^X)" zz = zz - (flip(@nufuncxtyp((yzy-@xtra1yp)*@xtra2yp)^@xtra3yp ^ \ @nufuncxtxp((xzx-@xtra1xp)*@xtra2xp)^@xtra3xp)) endif endif if @light == false if @zchoice == "Toplight" zz = flip(@fnzzz(zz*@zval-@zval3)^@zval2) elseif @zchoice == "Edgelight" zz = atan(atanh(@fnzzz(zz*@zval-@zval3)^@zval2)) elseif @zchoice == "Dark Edgelight" zz = atanh(@fnzzz(zz*@zval-@zval3)^@zval2) elseif @zchoice == "Widelight" zz = @fnzzz(zz*@zval-@zval3)^@zval2 elseif @zchoice == "Softlight" zz = atan(@fnzzz(zz*@zval-@zval3)^@zval2) elseif @zchoice == "Sidelight" zz = acosh(@fnzzz(zz*@zval-@zval3)^@zval2) elseif @zchoice == "Innerlight" zz = acosh(@fnzzz(acos(zz*@zval-@zval3)^@zval2)) elseif @zchoice == "Outerlight" zz = acosh(@fnzzz(acosh(zz*@zval-@zval3)^@zval2)) elseif @zchoice == "Glow" zz = log(@fnzzz(zz*@zval-@zval3)^@zval2) elseif @zchoice == "Diffuse Glow" zz = log(atan(@fnzzz(zz*@zval-@zval3)^@zval2)) elseif @zchoice == "Function" zz = @zchfn(@fnzzz(zz*@zval-@zval3)^@zval2) endif else if @ztraptyp == "Normal" ztt = z1 elseif @ztraptyp == "Modulus" ztt = |z1| elseif @ztraptyp == "Atan2" ztt = atan2(z1) elseif @ztraptyp == "Real" ztt = real(z1) elseif @ztraptyp == "Imag" ztt = imag(z1) endif ztu = @fnztt(((ztt-@ztt1)*@ztt2)^@ztt3) if @lighttyp == false if @zchoice == "Toplight" zz = ztu-cabs(@gofn((flip(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Edgelight" zz = ztu-cabs(@gofn((atan(atanh(@fnzzz(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Dark Edgelight" zz = ztu-cabs(@gofn((atanh(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Widelight" zz = ztu-cabs(@gofn((@fnzzz(zz*@zval-@zval3)^@zval2)^@ltexp)) elseif @zchoice == "Softlight" zz = ztu-cabs(@gofn((atan(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Sidelight" zz = ztu-cabs(@gofn((acosh(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Innerlight" zz = ztu-cabs(@gofn((acosh(@fnzzz(acos(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Outerlight" zz = ztu-cabs(@gofn((acosh(@fnzzz(acosh(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Glow" zz = ztu-cabs(@gofn((log(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Diffuse Glow" zz = ztu-cabs(@gofn((log(atan(@fnzzz(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Function" zz = ztu-cabs(@gofn((@zchfn(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) endif else if @zchoice == "Toplight" zz = ztu-atan(@gofn((flip(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Edgelight" zz = ztu-atan(@gofn((atan(atanh(@fnzzz(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Dark Edgelight" zz = ztu-atan(@gofn((atanh(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Widelight" zz = ztu-atan(@gofn((@fnzzz(zz*@zval-@zval3)^@zval2)^@ltexp)) elseif @zchoice == "Softlight" zz = ztu-atan(@gofn((atan(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Sidelight" zz = ztu-atan(@gofn((acosh(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Innerlight" zz = ztu-atan(@gofn((acosh(@fnzzz(acos(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Outerlight" zz = ztu-atan(@gofn((acosh(@fnzzz(acosh(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Glow" zz = ztu-atan(@gofn((log(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) elseif @zchoice == "Diffuse Glow" zz = ztu-atan(@gofn((log(atan(@fnzzz(zz*@zval-@zval3)^@zval2)))^@ltexp)) elseif @zchoice == "Function" zz = ztu-atan(@gofn((@zchfn(@fnzzz(zz*@zval-@zval3)^@zval2))^@ltexp)) endif endif endif if @pct dist = cabs(asinh(zz-@pfn(p-@paramP1)*@paramP2/100)) else dist = cabs(asinh(z1-(p-@paramP3)*@paramP2/100)) endif if @avgflv == true if @mode_change == 0 dsum = dist + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(dist +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(dist +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(dist +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(dist +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(dist +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(dist +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(dist +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(dist +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(dist +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = dist +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = dist + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(dist +(dsum))) elseif @mode_change == 2 dsum = cabs(log(dist +(dsum))) elseif @mode_change == 3 dsum = |log(dist +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(dist +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(dist +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(dist +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(dist +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(dist +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(dist +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(dist +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(dist +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(dist +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(dist +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(dist +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(dist +(dsum))) dave = cabs(log(dave)) endif endif if @follow == false if @version < 1.69 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if iter >= @skip && iter < @show if @edges == "First" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Last" if dist < @threshold && !trapped trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Closest" if dist < real(((min_dist-@distA)*@distB)^@distC) trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "First Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Last Corrected" if dist < @threshold && !trapped trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Average" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dave + @edge*.1 distance = dave trap_iter = iter trapped = true endif elseif @edges == "Average Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dave + cabs(p) + @edge*.1 distance = dave trap_iter = iter trapped = true endif elseif @edges == "Farthest" if dist > real(((min_dist-@distA)*@distB)^@distC) && dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Farthest Corrected" if dist > real(((min_dist-@distA)*@distB)^@distC) && dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Sum" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + @edge*.1 distance = distance + dist trap_iter = iter trapped = true endif elseif @edges == "Sum Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + cabs(p) + @edge*.1 distance = distance + dist trap_iter = iter trapped = true endif elseif @edges == "Sum 2" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + @edge*.1 distance = distance + min_dist + .1 trap_iter = iter trapped = true endif elseif @edges == "Sum 2 Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + cabs(p) + @edge*.1 distance = distance + min_dist + .1 trap_iter = iter trapped = true endif endif endif endif elseif @follow == true if iter >= @skip && iter < @show if @version < 1.69 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @edges == "First" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Last" if dist < @threshold && !trapped trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Closest" if dist < real(((min_dist-@distA)*@distB)^@distC) trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "First Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Last Corrected" if dist < @threshold && !trapped trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Average" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dave + @edge*.1 distance = dave trap_iter = iter trapped = true endif elseif @edges == "Average Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dave + cabs(p) + @edge*.1 distance = dave trap_iter = iter trapped = true endif elseif @edges == "Farthest" if dist > real(((min_dist-@distA)*@distB)^@distC) && dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Farthest Corrected" if dist > real(((min_dist-@distA)*@distB)^@distC) && dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = dist + cabs(p) + @edge*.1 trap_iter = iter trapped = true endif elseif @edges == "Sum" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + @edge*.1 distance = distance + dist trap_iter = iter trapped = true endif elseif @edges == "Sum Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + cabs(p) + @edge*.1 distance = distance + dist trap_iter = iter trapped = true endif elseif @edges == "Sum 2" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + @edge*.1 distance = distance + min_dist + .1 trap_iter = iter trapped = true endif elseif @edges == "Sum 2 Corrected" if dist < @threshold trap_z = z1 trap2_z = zz trap_p = p min_dist = distance + cabs(p) + @edge*.1 distance = distance + min_dist + .1 trap_iter = iter trapped = true endif endif endif endif endif iter = iter + 1 final: if trapped ;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 == "Trap2 Z" tz = ((trap2_z-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Formula" tz = ((trap_p-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Pixel" tz = ((#pixel-@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 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 + @c) % 256 float by1 = (by0 + @d) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @a float ry1 = ry0 - @b 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 == "Trap2 Z" tz = ((trap2_z-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Formula" tz = ((trap_p-@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 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 == "Trap2 Z" tz = ((trap2_z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Formula" tz = ((trap_p-@txia3)*@txib3)^@txic3 endif if @gnarl_init == 0 ppp = @fntx7(@fntx6(tz))^@exad6 elseif @gnarl_init == 1 ppp = @fntx6(real(tz))^@exad6+@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 2 ppp = @fntx6(real(tz))^@exad6-@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 3 ppp = @fntx6(real(tz))^@exad6*@fntx7(imag(tz))^@exad7 elseif @gnarl_init == 4 ppp = @fntx6(imag(tz))^@exad6-@fntx7(real(tz))^@exad7 elseif @gnarl_init == 5 ppp = @fntx7(@fntx6(x))^@exad6 elseif @gnarl_init == 6 ppp = @fntx7(@fntx6(y))^@exad6 elseif @gnarl_init == 7 ppp = @fntx6(x)^@exad6+@fntx7(y)^@exad7 elseif @gnarl_init == 8 ppp = @fntx6(x)^@exad6-@fntx7(y)^@exad7 elseif @gnarl_init == 9 ppp = @fntx7(y)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 10 ppp = @fntx6(x)^@exad6*@fntx7(y)^@exad7 elseif @gnarl_init == 11 ppp = @fntx6(x)^@exad6/@fntx7(y)^@exad7 elseif @gnarl_init == 12 ppp = @fntx7(y)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 13 ppp = @fntx6(x)^@exad6^@fntx7(y)^@exad7 elseif @gnarl_init == 14 ppp = @fntx7(y)^@exad6^@fntx6(x)^@exad7 elseif @gnarl_init == 15 ppp = @fntx6(x)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init == 16 ppp = @fntx6(x)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init == 17 ppp = @fntx7(tz)^@exad6-@fntx6(x)^@exad7 elseif @gnarl_init == 18 ppp = @fntx6(x)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init == 19 ppp = @fntx6(x)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init == 20 ppp = @fntx7(tz)^@exad6/@fntx6(x)^@exad7 elseif @gnarl_init == 21 ppp = @fntx6(y)^@exad6+@fntx7(tz)^@exad7 elseif @gnarl_init == 22 ppp = @fntx6(y)^@exad6-@fntx7(tz)^@exad7 elseif @gnarl_init == 23 ppp = @fntx7(tz)^@exad6-@fntx6(y)^@exad7 elseif @gnarl_init == 24 ppp = @fntx6(y)^@exad6*@fntx7(tz)^@exad7 elseif @gnarl_init == 25 ppp = @fntx6(y)^@exad6/@fntx7(tz)^@exad7 elseif @gnarl_init == 26 ppp = @fntx7(tz)^@exad6/@fntx6(y)^@exad7 elseif @gnarl_init == 27 ppp = @fntx7(@fntx6(pixel))^@exad6 endif if @gnarl_scaling == 0 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 1 ppp = ppp-floor(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 2 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 3 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale elseif @gnarl_scaling == 4 ppp = ppp-real(@fngnarl(ppp*@gnarl_scale))/@gnarl_scale elseif @gnarl_scaling == 5 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale-ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 6 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 7 ppp = ppp+round(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 8 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale-trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 9 ppp = ppp-round(ppp*@gnarl_scale)/@gnarl_scale*trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 10 ppp = ppp+round(ppp*@gnarl_scale)/@gnarl_scale*trunc(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 11 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale-floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 12 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 13 ppp = ppp+trunc(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2)\ /@gnarl_scale2 elseif @gnarl_scaling == 14 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale-ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 15 ppp = ppp-trunc(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 16 ppp = ppp+trunc(ppp*@gnarl_scale)/@gnarl_scale*ceil(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 17 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale-floor(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 18 ppp = ppp-ceil(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale2) \ /@gnarl_scale2 elseif @gnarl_scaling == 19 ppp = ppp+ceil(ppp*@gnarl_scale)/@gnarl_scale*floor(ppp*@gnarl_scale) \ /@gnarl_scale2 endif if @gnarl_size != 0 ppp = ppp/@gnarl_size endif xxx = real(ppp) yy = imag(ppp) float xOld = 0 int iter3 = @gnarl_octaves while (iter3 > 0) iter3 = iter3-1 xOld = xxx if @gnarl_form == 0 xxx = xxx - sin(yy + sin(yy)) yy = yy - sin(xOld + sin(xOld)) elseif @gnarl_form == 1 xxx = xxx - sin(yy + log(yy + cos(yy))) yy = yy - sin(xOld + log(xOld + cos(xOld))) elseif @gnarl_form == 2 xxx = xxx - sin(yy + cos(yy)) yy = yy - sin(xOld + cos(xOld)) elseif @gnarl_form == 3 xxx = xxx - sin(yy + log(yy + tan(yy))) yy = yy - sin(xOld + log(xOld + tan(xOld))) elseif @gnarl_form == 4 xxx = xxx - sin(yy + log(yy + sin(yy))) yy = yy - sin(xOld + log(xOld + sin(xOld))) endif endwhile if (@gnarl_type == 0) texture_gna = real(@fng(xxx)) elseif (@gnarl_type == 1) texture_gna = real(@fng(yy)) elseif (@gnarl_type == 2) texture_gna = real(@fng(xxx+yy)) elseif (@gnarl_type == 3) texture_gna = real(@fng(xxx*yy)) elseif (@gnarl_type == 4) texture_gna = real(@fng(xxx-yy)) elseif (@gnarl_type == 5) texture_gna = real(@fng(xxx/yy)) elseif (@gnarl_type == 6) texture_gna = real(@fng(yy/xxx)) elseif (@gnarl_type == 7) texture_gna = real(@fng(xxx^yy)) elseif (@gnarl_type == 8) texture_gna = real(@fng(yy^xxx)) elseif (@gnarl_type == 9) texture_gna = real(@fng(1/xxx)) elseif (@gnarl_type == 10) texture_gna = real(@fng(1/yy)) elseif (@gnarl_type == 11) texture_gna = atan2(xxx+1i*yy)/(2*#pi) if (texture_gna < 0) texture_gna = texture_gna + 1 endif elseif (@gnarl_type == 12) texture_gna = |xxx+1i*yy| elseif (@gnarl_type == 13) texture_gna = (xxx+yy+|xxx+1i*yy|)/3 elseif (@gnarl_type == 14) texture_gna = (xxx*yy*|xxx+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-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Morph z" tz = ((z1-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap Z" tz = ((trap_z-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Trap2 Z" tz = ((trap2_z-@txia5)*@txib5)^@txic5 elseif @ztyp5 == "Formula" tz = ((trap_p-@txia5)*@txib5)^@txic5 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] 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 = 10* (zaza-trunc(zaza)^@exp*2)*@trtxt if @geo_limit != 0 texture_tr = 10* ((zaza-trunc(zaza)^@exp*2)% @geo_limit)*@trtxt endif if @geo_sgn == true texture_tr = abs(texture_tr) endif ; Additional Texture if tx != 0 if @tp != 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 = ((trap_z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Formula" tz = ((trap_p-@txia1)*@txib1)^@txic1 endif if @tt == 0 tza = @fntx2(@fntx1(tz))^@exad1 elseif @tt == 1 tza = @fntx1(real(tz))^@exad1+@fntx2(imag(tz))^@exad2 elseif @tt == 2 tza = @fntx1(real(tz))^@exad1-@fntx2(imag(tz))^@exad2 elseif @tt == 3 tza = @fntx1(real(tz))^@exad1*@fntx2(imag(tz))^@exad2 elseif @tt == 4 tza = @fntx1(imag(tz))^@exad1-@fntx2(real(tz))^@exad2 elseif @tt == 5 tza = @fntx2(@fntx1(x))^@exad1 elseif @tt == 6 tza = @fntx2(@fntx1(y))^@exad1 elseif @tt == 7 tza = @fntx1(x)^@exad1+@fntx2(y)^@exad2 elseif @tt == 8 tza = @fntx1(x)^@exad1-@fntx2(y)^@exad2 elseif @tt == 9 tza = @fntx2(y)^@exad2-@fntx1(x)^@exad1 elseif @tt == 10 tza = @fntx1(x)^@exad1*@fntx2(y)^@exad2 elseif @tt == 11 tza = @fntx1(x)^@exad1/@fntx2(y)^@exad2 elseif @tt == 12 tza = @fntx2(y)^@exad2/@fntx1(x)^@exad1 elseif @tt == 13 tza = @fntx1(x)^@exad1^@fntx2(y)^@exad2 elseif @tt == 14 tza = @fntx2(y)^@exad1^@fntx1(x)^@exad2 elseif @tt == 15 tza = @fntx1(x)^@exad1+@fntx2(tz)^@exad2 elseif @tt == 16 tza = @fntx1(x)^@exad1-@fntx2(tz)^@exad2 elseif @tt == 17 tza = @fntx2(tz)^@exad2-@fntx1(x)^@exad1 elseif @tt == 18 tza = @fntx1(x)^@exad1*@fntx2(tz)^@exad2 elseif @tt == 19 tza = @fntx1(x)^@exad1/@fntx2(tz)^@exad2 elseif @tt == 20 tza = @fntx2(tz)^@exad2/@fntx1(x)^@exad1 elseif @tt == 21 tza = @fntx1(y)^@exad1+@fntx2(tz)^@exad2 elseif @tt == 22 tza = @fntx1(y)^@exad1-@fntx2(tz)^@exad2 elseif @tt == 23 tza = @fntx2(tz)^@exad2-@fntx1(y)^@exad1 elseif @tt == 24 tza = @fntx1(y)^@exad1*@fntx2(tz)^@exad2 elseif @tt == 25 tza = @fntx1(y)^@exad1/@fntx2(tz)^@exad2 elseif @tt == 26 tza = @fntx2(tz)^@exad2/@fntx1(y)^@exad1 endif endif float zr = real(tza)%(@tv/10)/@ts*10 float zi = imag(tza)%(@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 itt = 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 itt = itt + 1 until itt >= 20 endif t2 = abs(za-real(@fntx3(za))) if @add_sgn == false t2 = (za-real(@fntx3(za))) endif texture = (texture_rnd + texture_fbm + texture_dec + texture_gna \ + texture_tr)*@txamt/10000 if @mask_type == 0 if @mask != 0 if min_dist > @mask masked = true endif endif elseif @mask_type == 1 if @mask != 0 float mask_val = trap_iter if @mask_mod != 0 mask_val = trap_iter % @mask_mod endif if mask_val < @mask masked = true endif endif elseif @mask_type == 2 if (trap_iter >= @mask) && (trap_iter <= @mask_mod) masked = true endif endif if @inverse masked = !masked endif if masked #solid = true else if @color_mode == 0 ; Distance if @version < 1.5 tmp = min_dist + texture else tmp = min_dist endif elseif @color_mode == 1 ; Iteration if @version < 1.5 tmp = real(@colorfn((trap_iter-@tz1)*@tz2)^@tz3) *.01 + texture else tmp = real(@colorfn((trap_iter-@tz1)*@tz2)^@tz3) *.01 endif elseif @color_mode == 2 ; Modulated iteration if @version < 1.5 tmp = (real(@colorfn((trap_iter-@tz1)*@tz2)^@tz3) % @colorRanges) / \ @colorRanges + texture else tmp = (real(@colorfn((trap_iter-@tz1)*@tz2)^@tz3) % @colorRanges) / \ @colorRanges endif elseif @color_mode == 3 ; Magnitude if @version < 1.5 tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) + texture else tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) endif elseif @color_mode == 4 ; Real if @version < 1.5 tmp = abs(real(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) + texture else tmp = abs(real(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) endif elseif @color_mode == 5 ; Imag if @version < 1.5 tmp = abs(imag(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) + texture else tmp = abs(imag(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) endif elseif @color_mode == 6 ; Angle float angle = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle + (@rnd2 * real(#random)) elseif @color_mode == 7 ; Angle to Trap float angle = atan2(@colorFn(((trap_z-trap_p)-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle + texture elseif @color_mode == 8 ; Pattern Magnitude if @version < 1.5 tmp = cabs(@colorFn((trap_p-@tz1)*@tz2)^@tz3) + texture else tmp = cabs(@colorFn((trap_p-@tz1)*@tz2)^@tz3) endif elseif @color_mode == 9 ; Pattern Real if @version < 1.5 tmp = abs(real(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) + texture else tmp = abs(real(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) endif elseif @color_mode == 10 ; Pattern Imag if @version < 1.5 tmp = abs(imag(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) + texture else tmp = abs(imag(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) endif elseif @color_mode == 11 ; Pattern Angle float angle = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle + (@rnd2 * real(#random)) endif endif if @indx == "Normal" #index = tmp ^ @shad + (texture) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r* (tx * @txamt / 10) / 10 elseif @indx == "Normal + Function" #index = real(@indexFn(tmp ^ @shad + (texture))) + (tx * @txamt / 10) / 100 + t2 * \ (tx * @txamt / 10) / 100 + rn * @r * (tx * @txamt / 10) / 100 elseif @indx == "Wash + Function" #index = real(atanh(@indexfn(tmp ^ @shad + (texture)))) + (tx * @txamt / 10) / 100 \ +t2 * (tx * @txamt / 10) / 100 + rn * @r * (tx * @txamt / 10) / 100 endif else #solid = true endif default: title = "Naru's Gnarly Potpourri" param version caption = "Version" default = 1.69 visible = false endparam int param begex caption = "User Mode" enum = "Simple""Advanced" default = 0 endparam heading caption = "Global Parameters" endheading int param edges caption = "Trapping Mode" enum = "Closest""First""Last""First Corrected""Last Corrected"\ "Average""Average Corrected""Farthest""Farthest Corrected"\ "Sum""Sum Corrected""Sum 2""Sum 2 Corrected" default = 0 hint = "'Closest' is the default mode with continuous elements. 'First' \ gives the elements discrete edges with the earlier, smallier \ elements overlaying the later ones. 'Last' overlays the larger \ elements over the smaller ones. The 'Corrected' choices change \ the shading somewhat. 'Element Width' determines the element \ cutoff" endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @edges == "Average" || @edges == "Average Corrected" endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @edges == "Average" || @edges == "Average Corrected" endparam float param threshold caption = "Element Width" default = 1 hint = "Use this to vary the cutoff of the elements using 'First' and \ 'Last' trapping modes" visible = @edges != "Closest" endparam param color_mode caption = "Coloring Mode" enum = "Distance" "Iteration" "Modulated Iter" "Magnitude" "Real" "Imag" \ "Angle" "Angle to Trap" "Pattern Magnitude" "Pattern Real" \ "Pattern Imag" "Pattern Angle" endparam float param colorRanges caption = "Color Ranges" default = 4 hint = "Defines the number of color ranges in 'Modulated Iter'. Use \ decimal values for special effects" visible = @color_mode == "Modulated Iter" endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @color_mode > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endparam int param skip caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam param show caption = "Iterations to Show" hint = "This is the number of iterations to show before stopping trapping." default = 1000000 min = 0 endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam float param edge caption = "Edge Definition" default = 0 hint = "Increasing this value gives the elements an edge, resembling that \ of the 'First' trap mode. Use positive values with the \ 'Closest' trap mode. You will have to adjust your gradient" endparam float param shad caption = "Element Contrast" default = 1.0 hint = "This changes the contrast of the elements" endparam param indx caption = "Element Shading" enum = "Normal" "Normal + Function" "Wash + Function" default = 0 hint = "This parameter varies the appearance of the elements. Generally \ 'Normal' should be used for coloring modes other than 'Distance'" endparam func rootfn caption = "Root Fn" default = ident() endfunc func indexFn caption = "Element Shading Fn" default = ident() hint = "Changes the shading and cutoff of the elements" visible = @indx != "Normal" endfunc heading caption = "Global Formula Parameters" endheading bool param pat caption = "All Formula Parameters" default = true visible = !(@paramP2 == 0) endparam complex param paramP2 caption = "Amount" default = (100,100) hint = "Setting this param to(0,0) cancels the effect of the formula and \ hides all formula params. Negative values can also be used" endparam int param seq caption = "Formula Scenario" enum = "Single""Modulated""Blend" default = 0 hint = "Defines if and how the effects of two different formulae are used \ to determine how the elements are colored. 'Single' uses only one \ formula. 'Modulated' uses a second formula after a user-determined \ number of iterations. 'Blend' mixes the effects of two different \ formuale" visible = @patPar && @pat && !(@paramP2 == 0) endparam int param modCmp caption = "Modulation Repeat" default = 5 hint = "At what iteration the modulation starts. If '0' all iters are \ of modulation formula" visible = @seq == "Modulated" && @pat && !(@paramP2 == 0) endparam int param modBy caption = "# of Modulated Iters" default = 5 hint = "How many iterations of 2nd formula are present" visible = @seq == "Modulated" && @pat && !(@paramP2 == 0) endparam int param randomseed caption = "Random Seed" default = 123456 hint = "Affects how the two formuale are mixed in 'Blend' mode" visible = @seq == "Blend" && @pat && !(@paramP2 == 0) endparam float param prob1 caption = "Blend Proportion" default = 0.5 min = 0.0 max = 1.0 hint = "Determines the predominance of one or the other formula \ using 'Blend' mode" visible = @seq == "Blend" && @pat && !(@paramP2 == 0) endparam int param blendFn caption = "Blending Function" enum = "abs""ident""tan""sin""sinh (fixed value)""cos" \ "cosh (fixed value)""acos""exp (fixed value)" default = 0 hint = "Changes the way the formulae are blended to create \ the element shapes using 'Blend'. 'sinh', 'cosh' \ and 'exp' do not respond to changes in 'Blend \ Proportion'" visible = @seq == "Blend" && @pat && !(@paramP2 == 0) endparam int param iters caption = "# of Formula Iters" default = 5 min = 0 visible = !(@paramP2 == 0) && @pat endparam int param opxy caption = "Main Operator" enum = "x+y""x-y""(x+y)+(x+y)""(x-y)+(x-y)" default = 0 hint = "The last two choices add an extra set of X and Y values to the \ definition of Z whose strength and associated functions can \ be varied according to the parameters below" visible = !(@paramP2 == 0) && @pat && @version < 1.6 endparam complex param xtra2 caption = "Extra Strength" default = (1,0) hint = "Varies the strength of the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opxy > 1 && @version < 1.6 endparam complex param xtra1 caption = "Extra Offset" default = (0,0) hint = "Varies the offset of the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opxy > 1 && @version < 1.6 endparam complex param scale caption = "Emphasis" default = (1,0) hint = "Changes the sizes and shapes of the elements" visible = !(@paramP2 == 0) && @pat endparam float param exr caption = "Deform 1" default = 1 hint = "Changes the sizes and shapes of the elements" visible = @begex == 1 && !(@paramP2 == 0) && @pat endparam float param pp2 caption = "Deform 2" default = 1 hint = "Changes the sizes and shapes of the elements" visible = @begex == 1 && !(@paramP2 == 0) && @pat endparam float param scale2 caption = "X Intensity" default = 1 hint = "Changes the value of X at the top of the loop" visible = @begex == 1 && !(@paramP2 == 0) && @pat endparam float param scale3 caption = "Y Intensity" default = 1 hint = "Changes the value of Y at the top of the loop" visible = @begex == 1 && !(@paramP2 == 0) && @pat endparam complex param offset1 caption = "Offset 1" default = (0,0) visible = @begex == 1 && !(@paramP2 == 0) && @pat endparam complex param paramP3 caption = "Offset 2" default = (0,0) visible = @begex == 1 && @pct == false && !(@paramP2 == 0) && @pat endparam float param distD caption = "Edge 1" default = 0 hint = "Creates an 'edge' around the elements" visible = @begex == 1 && @pct == false && !(@paramP2 == 0) && @pat endparam float param distE caption = "Edge 2" default = 1 hint = "Creates an 'edge' around the elements" visible = @begex == 1 && @pct == false && !(@paramP2 == 0) && @pat endparam complex param distF caption = "Edge 3" default = (1,0) hint = "Creates an 'edge' around the elements" visible = @begex == 1 && @pct == false && !(@paramP2 == 0) && @pat endparam heading caption = "More Formula Shaping Parameters" visible = !(@paramP2 == 0) && @pat endheading bool param formParams caption = "More Formula Shaping Parameters" default = false visible = @pat endparam int param type caption = "Mix Type" enum = "Normal""Var 1""Var 2""Var 3""Var 4""Var 5" default = 0 visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam int param ztype caption = "Mix Species" enum = "Normal""Modulus""Atan2""Real""Imag" visible = @type != "Normal" && !(@paramP2 == 0) && @pat && @formParams \ && @version >= 1.6 default = 0 endparam func zfntry caption = "Mix Function" default = ident() visible = @type != "Normal" && !(@paramP2 == 0) && @pat && @formParams \ && @version >= 1.6 endfunc complex param zamt1 caption = "Mix Offset" default = (0,0) visible = @type != "Normal" && !(@paramP2 == 0) && @pat && @formParams \ && @version >= 1.6 endparam complex param zamt2 caption = "Mix Strength" default = (1,0) visible = @type != "Normal" && !(@paramP2 == 0) && @pat && @formParams \ && @version >= 1.6 endparam complex param zamt3 caption = "Mix Power" default = (1,0) visible = @type != "Normal" && !(@paramP2 == 0) && @pat && @formParams \ && @version >= 1.6 endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam int param opxy2 caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "The last two choices add an extra set of X and Y values to the \ definition of Z whose strength and associated functions can \ be varied according to the parameters below" visible = !(@paramP2 == 0) && @pat && @varType != "Modulus" && @formParams \ && @version >= 1.6 endparam func pvfn caption = "X/Y Function" default = ident() visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endfunc complex param pv1 caption = "X/Y Offset" default = (0,0) visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam complex param pv2 caption = "X/Y Strength" default = (1,0) visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam complex param pv3 caption = "X/Y Power" default = (1,0) visible = !(@paramP2 == 0) && @pat&& @formParams && @version >= 1.6 endparam func nufnx2 caption = "X Function" default = ident () visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endfunc func nufny2 caption = "Y Function" default = ident () visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam float param pvol2a caption = "X Offset" default = 0 hint = "Changes the pattern distribution on the real axis" visible = @begex == 1 && @pat && !(@paramP2 == 0) && @formParams endparam float param pvol3a caption = "Y Offset" default = 0 hint = "Changes the pattern distribution on the imaginary axis" visible = @begex == 1 && @pat && !(@paramP2 == 0) && @formParams endparam float param pvol2 caption = "X Strength" default = 1 hint = "Changes the pattern distribution on the real axis" visible = @begex == 1 && !(@paramP2 == 0) && @pat && @formParams endparam float param pvol3 caption = "Y Strength" default = 1 hint = "Changes the pattern distribution on the imaginary axis" visible = @begex == 1 && !(@paramP2 == 0) && @pat && @formParams endparam float param pvol2b caption = "X Power" default = 1 hint = "Changes the pattern distribution on the real axis" visible = @begex == 1 && @pat && !(@paramP2 == 0) && @formParams endparam float param pvol3b caption = "Y Power" default = 1 hint = "Changes the pattern distribution on the imaginary axis" visible = @begex == 1 && @pat && !(@paramP2 == 0) && @formParams endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = !(@paramP2 == 0) && @pat && @formParams && @version >= 1.6 endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @formParams endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @formParams endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = !(@paramP2 == 0) && @pat && @opadd > 0 && @begex == 1 && \ @formParams && @version >= 1.6 endparam heading caption = "'Single' Formula Parameters" visible = @patPar && !(@paramP2 == 0) && @pat endheading bool param patPar caption = "'Single' Formula Parameters" default = true visible = @pat && !(@paramP2 == 0) endparam param formula caption = "Formula Type" enum = "Martin" "Popcorn" "Vine" "Glyph" "Gnarl" "Hopalong" "Dynamic" \ "Tanglewood""Twirl""Driftwood" default = 4 visible = @patPar && !(@paramP2 == 0) && @pat endparam heading caption = "Martin Parameters" visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endheading bool param martV1 caption = "Change 1st Variable" default = false visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param martV2 caption = "Change 2nd Variable" default = false visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param martV3 caption = "Change 3rd Variable" default = false visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param martOp caption = "Martin Flavor" enum = "1""2" default = 0 visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param maa caption = "Martin Alpha" default = 3.14 visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endparam complex param mx caption = "Martin X1" default = (0,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param mxm caption = "Martin X2" default = 1 visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param mxe caption = "Martin X3" default = (1,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param my caption = "Martin Y1" default = (0,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param mym caption = "Martin Y2" default = (1,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param mye caption = "Martin Y3" default = (1,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param mxx caption = "Martin XX1" default = (0,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param mxxm caption = "Martin XX2" default = 1 visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam complex param mxxe caption = "Martin XX3" default = (1,0) visible = @begex == 1 && @formula == 0 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param martFlav caption = "Change Flavor" default = false visible = @formula == 0 && @patPar && ! \ (@paramP2 == 0) && @pat endparam func martfn caption = "Martin X Func" default = sin() visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func fnmy1 caption = "Martin Y Func" default = ident() visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func fnmx1 caption = "Martin XX Func" default = ident() visible = @formula == 0 && @patPar && !(@paramP2 == 0) \ && @pat endfunc heading caption = "Vine Parameters" visible = @formula == 2 && @patPar && ! \ (@paramP2 == 0) && @pat endheading param flavor caption = "Vine flavor" default = 2 min = 0 visible = @formula == 2 && @patPar && ! \ (@paramP2 == 0) && @pat endparam bool param vinV1 caption = "Change 1st Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV2 caption = "Change 2nd Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV3 caption = "Change 3rd Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV4 caption = "Change 4th Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV5 caption = "Change 5th Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV6 caption = "Change 6th Variable" default = false visible = @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam bool param vinV7 caption = "Change 7th Variable" default = false visible = @formula == 2 && (@flavor > 1 && @flavor < 3) && @patPar && ! \ (@paramP2 == 0) && @pat endparam bool param vinV8 caption = "Change 8th Variable" default = false visible = @formula == 2 && @patPar && (@flavor > 1 && @flavor < 3) && \ !(@paramP2 == 0) && @pat endparam int param vinOp1 caption = "Vine Operator 1" enum = "1""2""3""4" default = 0 visible = @formula == 2 && @flavor <3 && @patPar && \ !(@paramP2 == 0) && @pat endparam int param vinOp2c caption = "Vine Operator 2" enum = "1""2""3""4" default = 0 visible = @vinFlavor == true && @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endparam int param vinOp2r caption = "Vine Operator 2" enum = "1""2""3""4" default = 0 visible = @vinFlavor == false && @formula == 2 && @flavor > 2 && @patPar &&\ !(@paramP2 == 0) && @pat endparam int param vinOp3c caption = "Vine Operator 3" enum = "1""2""3""4" default = 0 visible = @vinFlavor == true && @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endparam int param vinOp3r caption = "Vine Operator 3" enum = "1""2""3""4" default = 0 visible = @vinFlavor == false && @formula == 2 && @flavor > 2 && @patPar &&\ !(@paramP2 == 0) && @pat endparam float param va caption = "Vine Alpha" default = 3.0 visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param vb caption = "Vine Beta" default = 2.0 visible = @formula == 2 && (@flavor > 1 && @flavor < 3) && @patPar && ! \ (@paramP2 == 0) && @pat endparam float param h2r caption = "Step Size (re)" default = 0.05 visible = @formula == 2 && @formula < 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param h2i caption = "Step Size (im)" default = 0.05 visible = @formula == 2 && @formula < 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param h3r caption = "Step Size 2 (re)" default = 0.05 visible = @formula == 2 && @formula > 2 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param h3i caption = "Step Size 2 (im)" default = 0.05 visible = @formula == 2 && @formula > 2 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param v1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && @flavor < 3 && ! \ (@paramP2 == 0) && @pat endparam float param v7a caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 && \ @flavor < 3) && !(@paramP2 == 0) && @pat endparam float param v7b caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 && \ @flavor < 3) && !(@paramP2 == 0) && @pat endparam float param v7c caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 && \ @flavor < 3) && !(@paramP2 == 0) && @pat endparam float param v8a caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 \ && @flavor < 3) && !(@paramP2 == 0) && @pat endparam float param v8b caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 \ && @flavor < 3) && !(@paramP2 == 0) && @pat endparam float param v8c caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formula == 2 && @patPar && (@flavor > 1 && \ @flavor < 3) && !(@paramP2 == 0) && @pat endparam bool param vinFlavor caption = "Change Flavor" default = false visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endparam func vinfnx1 caption = "Vine X Fn" default = ident() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfny1 caption = "Vine Y Fn" default = ident() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfnx2 caption = "Vine X Fn 2" default = ident() visible = @formula == 2 && @patPar && @flavor >2 && \ !(@paramP2 == 0) && @pat endfunc func vinfny2 caption = "Vine Y Fn 2" default = ident() visible = @formula == 2 && @flavor >2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn1 caption = "Vine Fn 1" default = sin() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfn2 caption = "Vine Fn 2" default = sin() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfn3 caption = "Vine Fn 3" default = sin() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfn4 caption = "Vine Fn 4" default = sin() visible = @formula == 2 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func vinfn5 caption = "Vine Fn 5" default = sin() visible = @formula == 2 && @flavor == 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn6 caption = "Vine Fn 6" default = sin() visible = @formula == 2 && @flavor == 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn7 caption = "Vine Fn 7" default = ident() visible = @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn8 caption = "Vine Fn 8" default = ident() visible = @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn9 caption = "Vine Fn 9" default = sin() visible = @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn10 caption = "Vine Fn 10" default = sin() visible = @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc func vinfn11 caption = "Vine Fn 11" default = sin() visible = @formula == 2 && @flavor > 2 && @patPar && \ !(@paramP2 == 0) && @pat endfunc heading caption = "Popcorn Parameters" visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endheading int param popflavor1 caption = "1st Flavor" enum = "1""2""3""4" default = 0 visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param popflavor2 caption = "2nd Flavor" enum = "1""2""3""4" default = 0 visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param v1 caption = "Change 1st Variable" default = false visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param v2 caption = "Change 2nd Variable" default = false visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param v3 caption = "Change 3rd Variable" default = false visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param v4 caption = "Change 4th Variable" default = false visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param popx caption = "X Param" default = 1 visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param popy caption = "Y Param" default = 1 visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam complex param popc caption = "Constant" default = (3,3) visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam complex param h1 caption = "Step Size" default = (.05,.05) visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param pop1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param pop4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 1 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param funcPopType caption = "Change Function Flavor" default = false visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endparam func fnpopx caption = "Popcorn X Function" default = ident() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func fnpopy caption = "Popcorn Y Function" default = ident() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func popfn1 caption = "Popcorn Fn 1" default = sin() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func popfn2 caption = "Popcorn Fn 2" default = tan() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func popfn3 caption = "Popcorn Fn 3" default = sin() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func popfn4 caption = "Popcorn Fn 4" default = tan() visible = @formula == 1 && @patPar && !(@paramP2 == 0) \ && @pat endfunc heading caption = "Glyph Parameters" visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endheading int param glv1 caption = "1st Variable Type" enum = "x""y""newx""newy" default = 1 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv2 caption = "2nd Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv3 caption = "3rd Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv4 caption = "4th Variable Type" enum = "x""y""newx""newy" default = 0 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv5 caption = "5th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv6 caption = "6th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv7 caption = "7th Variable Type" enum = "x""y""newx""newy" default = 0 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv8 caption = "8th Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv9 caption = "9th Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv10 caption = "10th Variable Type" enum = "x""y""newx""newy" default = 1 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv11 caption = "11th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glv12 caption = "12th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formula == 3 && @patPar && !(@paramP2 == 0) && @pat endparam int param glyOp1 caption = "Operator 1" enum = "1""2""3""4" default = 0 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param glyOp2 caption = "Operator 2" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16" default = 0 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param glya caption = "Glyph Alpha" default = 3 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h4r caption = "Step Size 1 (re)" default = .8 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h4i caption = "Step Size 1 (im)" default = .8 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h5r caption = "Step Size 2 (re)" default = .8 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h5i caption = "Step Size 2 (im)" default = .8 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h6r caption = "Step Size 3 (re)" default = .05 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h6i caption = "Step Size 3 (im)" default = .05 visible = @formula == 3 && @patPar && !(@paramP2 == 0) && @pat endparam float param h7r caption = "Step Size 4 (re)" default = .05 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h7i caption = "Step Size 4 (im)" default = .05 visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param gly1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly7a caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly7b caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly7c caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly8a caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly8b caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly8c caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly9a caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly9b caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly9c caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly10a caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly10b caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly10c caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly11a caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly11b caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly11c caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly12a caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly12b caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gly12c caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formula == 3 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param glyphFlavor1 caption = "Change Flavor" default = false visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endparam func glyfn1 caption = "Glyph Fn 1" default = cos() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn2 caption = "Glyph Fn 2" default = cos() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn3 caption = "Glyph Fn 3" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn4 caption = "Glyph Fn 4" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn5 caption = "Glyph Fn 5" default = sin() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn6 caption = "Glyph Fn 6" default = sin() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn7 caption = "Glyph Fn 7" default = sin() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn8 caption = "Glyph Fn 8" default = sin() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn9 caption = "Glyph Fn 9" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn10 caption = "Glyph Fn 10" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn11 caption = "Glyph Fn 11" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn12 caption = "Glyph Fn 12" default = ident() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn13 caption = "Glyph Fn 13" default = cos() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func glyfn14 caption = "Glyph Fn 14" default = cos() visible = @formula == 3 && @patPar && !(@paramP2 == 0) \ && @pat endfunc heading caption = "Gnarl Parameters" visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endheading bool param gn1 caption = "Change 1st Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn2 caption = "Change 2nd Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn3 caption = "Change 3rd Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn4 caption = "Change 4th Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn5 caption = "Change 5th Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn6 caption = "Change 6th Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn7 caption = "Change 7th Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam bool param gn8 caption = "Change 8th Variable" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam int param gnOp caption = "Gnarl Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param gna caption = "Gnarl Alpha" default = 3 visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param gnb caption = "Gnarl Beta" default = 2 visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h8r caption = "Step Size (re)" default = .05 visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param h8i caption = "Step Size (im)" default = .05 visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam float param gn1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn7a caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn7b caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn7c caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn8a caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn8b caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param gn8c caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formula == 4 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param gnFlavor caption = "Change Flavor" default = false visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endparam func gnfnx caption = "Gnarl Fn 1" default = ident() visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func gnfn1 caption = "Gnarl Fn 2" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) \ && @pat endfunc func gnfn2 caption = "Gnarl Fn 3" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func gnfn3 caption = "Gnarl Fn 4" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func gnfny caption = "Gnarl Fn 5" default = ident() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func gnfn4 caption = "Gnarl Fn 6" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func gnfn5 caption = "Gnarl Fn 7" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func gnfn6 caption = "Gnarl Fn 8" default = sin() visible = @formula == 4 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Hopalong Parameters" visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endheading float param pA caption = "A" default = 0.4 visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param pB caption = "B" default = 1.0 visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param pC caption = "C" default = 0.0 visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param sx caption = "Spread" default = -1 visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param hop caption = "Depth" default = 0 visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param hopFlavor caption = "Change Flavor" default = false visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endparam func fnhop caption = "Hopalong Function" default = ident () visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func fnhop2 caption = "Hopalong Function 2" default = sqrt () visible = @formula == 5 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Dynamic Parameters" visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endheading bool param dynv1 caption = "Change 1st Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param dynv2 caption = "Change 2nd Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param dynv3 caption = "Change 3rd Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param dynv4 caption = "Change 4th Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param dynv5 caption = "Change 5th Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param dynv6 caption = "Change 6th Variable" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param dynOp caption = "Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16" default = 0 visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param da caption = "Dynamic Alpha" default = (3,3) visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param db caption = "Dynamic Beta" default = (2,2) visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param dhx caption = "Step Size" default = (.05,.05) visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param dynv1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param dynv6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 6 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param dynFlavor caption = "Change Flavor" default = false visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endparam func dynfn1 caption = "Dynamic Fn 1" default = ident () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && @pat endfunc func dynfn2 caption = "Dynamic Fn 2" default = sin () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func dynfn3 caption = "Dynamic Fn 3" default = sin () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func dynfn4 caption = "Dynamic Fn 4" default = ident () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func dynfn5 caption = "Dynamic Fn 5" default = sin () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func dynfn6 caption = "Dynamic Fn 6" default = sin () visible = @formula == 6 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Tanglewood Parameters" visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endheading bool param twsv1 caption = "Change 1st Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv2 caption = "Change 2nd Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv3 caption = "Change 3rd Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv4 caption = "Change 4th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv5 caption = "Change 5th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv6 caption = "Change 6th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv7 caption = "Change 7th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv8 caption = "Change 8th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv9 caption = "Change 9th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv10 caption = "Change 10th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv11 caption = "Change 11th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv12 caption = "Change 12th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv13 caption = "Change 13th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv14 caption = "Change 14th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv15 caption = "Change 15th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twsv16 caption = "Change 16th Variable" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param TwsOp1 caption = "Operator 1" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param TwsOp2 caption = "Operator 2" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twa1 caption = "Tanglewood Alpha 1 (re)" default = 3 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twa1b caption = "Tanglewood Alpha 1 (im)" default = 3 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twa2 caption = "Tanglewood Alpha 2 (re)" default = 3 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twa2b caption = "Tanglewood Alpha 2 (im)" default = 3 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twb1 caption = "Tanglewood Beta 1 (re)" default = 2 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twb1b caption = "Tanglewood Beta 1 (im)" default = 2 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twb2 caption = "Tanglewood Beta 2 (re)" default = 2 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twb2b caption = "Tanglewood Beta 2 (im)" default = 2 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twsh1 caption = "Step Size 1 (re)" default = .05 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twsh1b caption = "Step Size 1 (im)" default = .05 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twsh2 caption = "Step Size 2 (re)" default = .05 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twsh2b caption = "Step Size 2 (im)" default = .05 visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twsv1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv7a caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv7b caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv7c caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv8a caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv8b caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv8c caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv9a caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv9b caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv9c caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv10a caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv10b caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv10c caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv11a caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv11b caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv11c caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv12a caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv12b caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv12c caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv13a caption = "13th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv13b caption = "13th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv13c caption = "13th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv14a caption = "14th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv14b caption = "14th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv14c caption = "14th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv15a caption = "15th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv15b caption = "15th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv15c caption = "15th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv16a caption = "16th Variable P1" default = 0 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv16b caption = "16th Variable P2" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twsv16c caption = "16th Variable P3" default = 1 visible = @begex == 1 && @formula == 7 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param twsFlavor1 caption = "Change Flavor" default = false visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endparam func twsfn1 caption = "Tanglewood Fn 1" default = ident() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn2 caption = "Tanglewood Fn 2" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn3 caption = "Tanglewood Fn 3" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn4 caption = "Tanglewood Fn 4" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn5 caption = "Tanglewood Fn 5" default = ident() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn6 caption = "Tanglewood Fn 6" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn7 caption = "Tanglewood Fn 7" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn8 caption = "Tanglewood Fn 8" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn9 caption = "Tanglewood Fn 9" default = ident() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn10 caption = "Tanglewood Fn 10" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn11 caption = "Tanglewood Fn 11" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn12 caption = "Tanglewood Fn 12" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn13 caption = "Tanglewood Fn 13" default = ident() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn14 caption = "Tanglewood Fn 14" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn15 caption = "Tanglewood Fn 15" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twsfn16 caption = "Tanglewood Fn 16" default = sin() visible = @formula == 7 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Twirl Parameters" visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endheading bool param twv1 caption = "Change 1st Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv2 caption = "Change 2nd Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv3 caption = "Change 3rd Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv4 caption = "Change 4th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv5 caption = "Change 5th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv6 caption = "Change 6th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv7 caption = "Change 7th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv8 caption = "Change 8th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv9 caption = "Change 9th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param twv10 caption = "Change 10th Variable" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param twiOp caption = "Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param ta caption = "Twirl Alpha" default = (3,3) visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param tb caption = "Twirl Beta" default = (2,2) visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param th caption = "Step Size (re)" default = .05 visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param th2 caption = "Step Size (im)" default = .05 visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param twv1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv7a caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv7b caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv7c caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv8a caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv8b caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv8c caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv9a caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv9b caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv9c caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv10a caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv10b caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param twv10c caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formula == 8 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param twiFlavor caption = "Change Flavor" default = false visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endparam func twfn1 caption = "Twirl Fn 1" default = ident() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn2 caption = "Twirl Fn 2" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn3 caption = "Twirl Fn 3" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn4 caption = "Twirl Fn 4" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn5 caption = "Twirl Fn 5" default = ident() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn6 caption = "Twirl Fn 6" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn7 caption = "Twirl Fn 7" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn8 caption = "Twirl Fn 8" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn9 caption = "Twirl Fn 9" default = ident() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func twfn10 caption = "Twirl Fn 10" default = sin() visible = @formula == 8 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Driftwood Parameters" visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endheading bool param tgwv1 caption = "Change 1st Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv2 caption = "Change 2nd Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv3 caption = "Change 3rd Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv4 caption = "Change 4th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv5 caption = "Change 5th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv6 caption = "Change 6th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv7 caption = "Change 7th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv8 caption = "Change 8th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv9 caption = "Change 9th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv10 caption = "Change 10th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv11 caption = "Change 11th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam bool param tgwv12 caption = "Change 12th Variable" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param tgwOp1 caption = "Operator 1" enum = "1""2""3""4""5""6""7""8" default = 0 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam int param tgwOp2 caption = "Operator 2" enum = "1""2""3""4""5""6""7""8" default = 0 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param tgwa1 caption = "Driftwood Alpha 1" default = 3 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param tgwa2 caption = "Driftwood Alpha 2" default = 3 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param tgwb1 caption = "Driftwood Beta 1" default = 2 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param tgwb2 caption = "Driftwood Beta 2" default = 2 visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param tgwh1 caption = "Step Size 1" default = (.05,.05) visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam complex param tgwh2 caption = "Step Size 2" default = (.05,.05) visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam float param tgwv1a caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv1b caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv1c caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv2a caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv2b caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv2c caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv3a caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv3b caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv3c caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv4a caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv4b caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv4c caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv5a caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv5b caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv5c caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv6a caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv6b caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv6c caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv7a caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv7b caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv7c caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv8a caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv8b caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv8c caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv9a caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv9b caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv9c caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv10a caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv10b caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv10c caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv11a caption = "13th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv11b caption = "13th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv11c caption = "13th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv12a caption = "14th Variable P1" default = 0 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv12b caption = "14th Variable P2" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam float param tgwv12c caption = "14th Variable P3" default = 1 visible = @begex == 1 && @formula == 9 && @patPar && \ !(@paramP2 == 0) && @pat endparam bool param tgwFlavor1 caption = "Change Flavor" default = false visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endparam func tgwfn1 caption = "Driftwood Fn 1" default = ident() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn2 caption = "Driftwood Fn 2" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn3 caption = "Driftwood Fn 3" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn4 caption = "Driftwood Fn 4" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn5 caption = "Driftwood Fn 5" default = ident() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn6 caption = "Driftwood Fn 6" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn7 caption = "Driftwood Fn 7" default = ident() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn8 caption = "Driftwood Fn 8" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn9 caption = "Driftwood Fn 9" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn10 caption = "Driftwood Fn 10" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn11 caption = "Driftwood Fn 11" default = ident() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc func tgwfn12 caption = "Driftwood Fn 12" default = sin() visible = @formula == 9 && @patPar && !(@paramP2 == 0) && \ @pat endfunc heading caption = "Formula 2 Parameters" visible = @seq != "Single" && @pat endheading bool param patParQ caption = "Formula 2 Parameters" default = true visible = @seq != "Single" && @pat endparam param formulaQ caption = "2nd Formula Type" enum = "Martin" "Popcorn" "Vine" "Glyph" "Gnarl" "Hopalong" "Dynamic" \ "Tanglewood" "Twirl" "Driftwood" default = 7 visible = @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam heading caption = "Martin 2 Parameters" visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endheading bool param martV1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param martV2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param martV3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param martOpQ caption = "Martin Flavor" enum = "1""2" default = 0 visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param maaQ caption = "Martin Alpha" default = 3.14 visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param mxQ caption = "Martin X1" default = (0,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param mxmQ caption = "Martin X2" default = 1 visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param mxeQ caption = "Martin X3" default = (1,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param myQ caption = "Martin Y1" default = (0,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param mymQ caption = "Martin Y2" default = (1,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param myeQ caption = "Martin Y3" default = (1,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param mxxQ caption = "Martin XX1" default = (0,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param mxxmQ caption = "Martin XX2" default = 1 visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam complex param mxxeQ caption = "Martin XX3" default = (1,0) visible = @begex == 1 && @formulaQ == 0 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param martFlavQ caption = "Change Flavor" default = false visible = @formulaQ == 0 && @patParQ && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam func martfnQ caption = "Martin X Func" default = sin() visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func fnmy1Q caption = "Martin Y Func" default = ident() visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func fnmx1Q caption = "Martin XX Func" default = ident() visible = @formulaQ == 0 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc heading caption = "Vine 2 Parameters" visible = @formulaQ == 2 && @patParQ && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endheading param flavorQ caption = "Vine flavor" default = 2 min = 0 visible = @formulaQ == 2 && @patParQ && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV7Q caption = "Change 7th Variable" default = false visible = @formulaQ == 2 && (@flavorQ > 1 && @flavorQ < 3) && @patParQ && !\ (@paramP2 == 0) && @seq != "Single" && @pat endparam bool param vinV8Q caption = "Change 8th Variable" default = false visible = @formulaQ == 2 && @patParQ && (@flavorQ > 1 && @flavorQ < 3) && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam int param vinOp1Q caption = "Vine Operator 1" enum = "1""2""3""4" default = 0 visible = @formulaQ == 2 && @flavorQ <3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam int param vinOp2cQ caption = "Vine Operator 2" enum = "1""2""3""4" default = 0 visible = @vinFlavorQ == true && @formulaQ == 2 && @flavorQ > 2 && @patParQ\ && !(@paramP2 == 0) && @seq != "Single" && @pat endparam int param vinOp2rQ caption = "Vine Operator 2" enum = "1""2""3""4" default = 0 visible = @vinFlavorQ == false && @formulaQ == 2 && @flavorQ > 2 && \ @patParQ && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam int param vinOp3cQ caption = "Vine Operator 3" enum = "1""2""3""4" default = 0 visible = @vinFlavorQ == true && @formulaQ == 2 && @flavorQ > 2 && \ @patParQ && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam int param vinOp3rQ caption = "Vine Operator 3" enum = "1""2""3""4" default = 0 visible = @vinFlavorQ == false && @formulaQ == 2 && @flavorQ > 2 && \ @patParQ && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param vaQ caption = "Vine Alpha" default = 3.0 visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param vbQ caption = "Vine Beta" default = 2.0 visible = @formulaQ == 2 && (@flavorQ > 1 && @flavorQ < 3) && @patParQ && !\ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param h2rQ caption = "Step Size (re)" default = 0.05 visible = @formulaQ == 2 && @formulaQ < 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param h2iQ caption = "Step Size (im)" default = 0.05 visible = @formulaQ == 2 && @formulaQ < 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param h3rQ caption = "Step Size (re)" default = 0.05 visible = @formulaQ == 2 && @formulaQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param h3iQ caption = "Step Size (im)" default = 0.05 visible = @formulaQ == 2 && @formulaQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param v1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && @flavorQ < 3 && ! \ (@paramP2 == 0) && @seq != "Single" && @pat endparam float param v7aQ caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param v7bQ caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param v7cQ caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param v8aQ caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param v8bQ caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam float param v8cQ caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 2 && @patParQ && (@flavorQ > 1 && \ @flavorQ < 3) && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam bool param vinFlavorQ caption = "Change Flavor" default = false visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func vinfnx1Q caption = "Vine X Fn" default = ident() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfny1Q caption = "Vine Y Fn" default = ident() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfnx2Q caption = "Vine X Fn 2" default = ident() visible = @formulaQ == 2 && @patParQ && @flavorQ >2 && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfny2Q caption = "Vine Y Fn 2" default = ident() visible = @formulaQ == 2 && @flavorQ >2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn1Q caption = "Vine Fn 1" default = sin() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfn2Q caption = "Vine Fn 2" default = sin() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfn3Q caption = "Vine Fn 3" default = sin() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfn4Q caption = "Vine Fn 4" default = sin() visible = @formulaQ == 2 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func vinfn5Q caption = "Vine Fn 5" default = sin() visible = @formulaQ == 2 && @flavorQ == 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn6Q caption = "Vine Fn 6" default = sin() visible = @formulaQ == 2 && @flavorQ == 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn7Q caption = "Vine Fn 7" default = ident() visible = @formulaQ == 2 && @flavorQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn8Q caption = "Vine Fn 8" default = ident() visible = @formulaQ == 2 && @flavorQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn9Q caption = "Vine Fn 9" default = sin() visible = @formulaQ == 2 && @flavorQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn10Q caption = "Vine Fn 10" default = sin() visible = @formulaQ == 2 && @flavorQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func vinfn11Q caption = "Vine Fn 11" default = sin() visible = @formulaQ == 2 && @flavorQ > 2 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc heading caption = "Popcorn 2 Parameters" visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endheading int param popflavor1Q caption = "1st Flavor" enum = "1""2""3""4" default = 0 visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param popflavor2Q caption = "2nd Flavor" enum = "1""2""3""4" default = 0 visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param v1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param v2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param v3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param v4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param popxQ caption = "X Param" default = 1 visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param popyQ caption = "Y Param" default = 1 visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param popcQ caption = "Constant" default = (3,3) visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param h1Q caption = "Step Size" default = (.05,.05) visible = @formulaQ == 1 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param pop1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param pop4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param funcPopTypeQ caption = "Change Function Flavor" default = false visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam func fnpopxQ caption = "Popcorn X Function" default = ident() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func fnpopyQ caption = "Popcorn Y Function" default = ident() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func popfn1Q caption = "Popcorn Fn 1" default = sin() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func popfn2Q caption = "Popcorn Fn 2" default = tan() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func popfn3Q caption = "Popcorn Fn 3" default = sin() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func popfn4Q caption = "Popcorn Fn 4" default = tan() visible = @formulaQ == 1 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc heading caption = "Glyph 2 Parameters" visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endheading int param glv1Q caption = "1st Variable Type" enum = "x""y""newx""newy" default = 1 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv2Q caption = "2nd Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv3Q caption = "3rd Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv4Q caption = "4th Variable Type" enum = "x""y""newx""newy" default = 0 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv5Q caption = "5th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv6Q caption = "6th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv7Q caption = "7th Variable Type" enum = "x""y""newx""newy" default = 0 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv8Q caption = "8th Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv9Q caption = "9th Variable Type" enum = "x""y""newx""newy" default = 2 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv10Q caption = "10th Variable Type" enum = "x""y""newx""newy" default = 1 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv11Q caption = "11th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glv12Q caption = "12th Variable Type" enum = "x""y""newx""newy" default = 3 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glyOp1Q caption = "Operator 1" enum = "1""2""3""4" default = 0 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param glyOp2Q caption = "Operator 2" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16" default = 0 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param glyaQ caption = "Glyph Alpha" default = 3 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h4rQ caption = "Step Size 1 (re)" default = .8 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h4iQ caption = "Step Size 1 (im)" default = .8 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h5rQ caption = "Step Size 2 (re)" default = .8 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h5iQ caption = "Step Size 2 (im)" default = .8 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h6rQ caption = "Step Size 3 (re)" default = .05 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h6iQ caption = "Step Size 3 (im)" default = .05 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h7rQ caption = "Step Size 4 (re)" default = .05 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param h7iQ caption = "Step Size 4 (im)" default = .05 visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param gly1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly7aQ caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly7bQ caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly7cQ caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly8aQ caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly8bQ caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly8cQ caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly9aQ caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly9bQ caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly9cQ caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly10aQ caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly10bQ caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly10cQ caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly11aQ caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly11bQ caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly11cQ caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly12aQ caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly12bQ caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gly12cQ caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param glyphFlavor1Q caption = "Change Flavor" default = false visible = @formulaQ == 3 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func glyfn1Q caption = "Glyph Fn 1" default = cos() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn2Q caption = "Glyph Fn 2" default = cos() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn3Q caption = "Glyph Fn 3" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn4Q caption = "Glyph Fn 4" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn5Q caption = "Glyph Fn 5" default = sin() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn6Q caption = "Glyph Fn 6" default = sin() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn7Q caption = "Glyph Fn 7" default = sin() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn8Q caption = "Glyph Fn 8" default = sin() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn9Q caption = "Glyph Fn 9" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn10Q caption = "Glyph Fn 10" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn11Q caption = "Glyph Fn 11" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn12Q caption = "Glyph Fn 12" default = ident() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn13Q caption = "Glyph Fn 13" default = cos() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc func glyfn14Q caption = "Glyph Fn 14" default = cos() visible = @formulaQ == 3 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endfunc heading caption = "Gnarl 2 Functions" visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endheading bool param gn1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn7Q caption = "Change 7th Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gn8Q caption = "Change 8th Variable" default = false visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam int param gnOpQ caption = "Gnarl Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gnaQ caption = "Gnarl Alpha" default = 3 visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gnbQ caption = "Gnarl Beta" default = 2 visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param h8rQ caption = "Step Size (re)" default = .05 visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param h8iQ caption = "Step Size (im)" default = .05 visible = @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn7aQ caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn7bQ caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn7cQ caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn8aQ caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn8bQ caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param gn8cQ caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 4 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param gnFlavorQ caption = "Change Flavor" default = false visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func gnfnxQ caption = "Gnarl Fn 1" default = ident() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn1Q caption = "Gnarl Fn 2" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn2Q caption = "Gnarl Fn 3" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn3Q caption = "Gnarl Fn 4" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfnyQ caption = "Gnarl Fn 5" default = ident() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn4Q caption = "Gnarl Fn 6" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn5Q caption = "Gnarl Fn 7" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func gnfn6Q caption = "Gnarl Fn 8" default = sin() visible = @formulaQ == 4 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc heading caption = "Hopalong 2 Parameters" visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endheading float param pAQ caption = "A" default = 0.4 visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param pBQ caption = "B" default = 1.0 visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param pCQ caption = "C" default = 0.0 visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param sxQ caption = "Spread" default = -1 visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param hopQ caption = "Depth" default = 0 visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param hopFlavorQ caption = "Change Flavor" default = false visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func fnhopQ caption = "Hopalong Function" default = ident () visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func fnhop2Q caption = "Hopalong Function 2" default = sqrt () visible = @formulaQ == 5 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc heading caption = "Dynamic 2 Parameters" visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endheading bool param dynv1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param dynv2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param dynv3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param dynv4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param dynv5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param dynv6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param dynOpQ caption = "Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16" default = 0 visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param daQ caption = "Dynamic Alpha" default = (3,3) visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param dbQ caption = "Dynamic Beta" default = (2,2) visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param dhxQ caption = "Step Size" default = (.05,.05) visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param dynv1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param dynv6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 6 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param dynFlavorQ caption = "Change Flavor" default = false visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func dynfn1Q caption = "Dynamic Fn 1" default = ident () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func dynfn2Q caption = "Dynamic Fn 2" default = sin () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func dynfn3Q caption = "Dynamic Fn 3" default = sin () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func dynfn4Q caption = "Dynamic Fn 4" default = ident () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func dynfn5Q caption = "Dynamic Fn 5" default = sin () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func dynfn6Q caption = "Dynamic Fn 6" default = sin () visible = @formulaQ == 6 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc heading caption = "Tanglewood 2 Parameters" visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endheading bool param twsv1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv7Q caption = "Change 7th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv8Q caption = "Change 8th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv9Q caption = "Change 9th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv10Q caption = "Change 10th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv11Q caption = "Change 11th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv12Q caption = "Change 12th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv13Q caption = "Change 13th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv14Q caption = "Change 14th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv15Q caption = "Change 15th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twsv16Q caption = "Change 16th Variable" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param twsOp1Q caption = "Operator 1" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param twsOp2Q caption = "Operator 2" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twa1Q caption = "Tanglewood Alpha 1 (re)" default = 3 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twa1bQ caption = "Tanglewood Alpha 1 (im)" default = 3 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twa2Q caption = "Tanglewood Alpha 2 (re)" default = 3 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twa2bQ caption = "Tanglewood Alpha 2 (im)" default = 3 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twb1Q caption = "Tanglewood Beta 1 (re)" default = 2 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twb1bQ caption = "Tanglewood Beta 1 (im)" default = 2 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twb2Q caption = "Tanglewood Beta 2 (re)" default = 2 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twb2bQ caption = "Tanglewood Beta 2 (im)" default = 2 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twsh1Q caption = "Step Size 1 (re)" default = .05 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twsh1bQ caption = "Step Size 1 (im)" default = .05 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twsh2Q caption = "Step Size 2 (re)" default = .05 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twsh2bQ caption = "Step Size 2 (im)" default = .05 visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twsv1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv7aQ caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv7bQ caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv7cQ caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv8aQ caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv8bQ caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv8cQ caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv9aQ caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv9bQ caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv9cQ caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv10aQ caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv10bQ caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv10cQ caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv11aQ caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv11bQ caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv11cQ caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv12aQ caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv12bQ caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv12cQ caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv13aQ caption = "13th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv13bQ caption = "13th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv13cQ caption = "13th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv14aQ caption = "14th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv14bQ caption = "14th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv14cQ caption = "14th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv15aQ caption = "15th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv15bQ caption = "15th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv15cQ caption = "15th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv16aQ caption = "16th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv16bQ caption = "16th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twsv16cQ caption = "16th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 7 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param twsFlavor1Q caption = "Change Flavor" default = false visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endparam func twsfn1Q caption = "Tanglewood Fn 1" default = ident() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn2Q caption = "Tanglewood Fn 2" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn3Q caption = "Tanglewood Fn 3" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn4Q caption = "Tanglewood Fn 4" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn5Q caption = "Tanglewood Fn 5" default = ident() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn6Q caption = "Tanglewood Fn 6" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn7Q caption = "Tanglewood Fn 7" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn8Q caption = "Tanglewood Fn 8" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn9Q caption = "Tanglewood Fn 9" default = ident() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn10Q caption = "Tanglewood Fn 10" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn11Q caption = "Tanglewood Fn 11" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn12Q caption = "Tanglewood Fn 12" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn13Q caption = "Tanglewood Fn 13" default = ident() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn14Q caption = "Tanglewood Fn 14" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn15Q caption = "Tanglewood Fn 15" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twsfn16Q caption = "Tanglewood Fn 16" default = sin() visible = @formulaQ == 7 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc heading caption = "Twirl 2 Parameters" visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endheading bool param twv1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv7Q caption = "Change 7th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv8Q caption = "Change 8th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv9Q caption = "Change 9th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param twv10Q caption = "Change 10th Variable" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param twiOpQ caption = "Operator" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19" \ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35" \ "36""37""38""39""40""41""42""43""44""45""46""47""48""49""50""51" \ "52""53""54""55""56""57""58""59""60""61""62""63""64" default = 0 visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param taQ caption = "Twirl Alpha" default = (3,3) visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param tbQ caption = "Twirl Beta" default = (2,2) visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param thQ caption = "Step Size (re)" default = .05 visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param th2Q caption = "Step Size (im)" default = .05 visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param twv1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv7aQ caption = "7th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv7bQ caption = "7th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv7cQ caption = "7th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv8aQ caption = "8th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv8bQ caption = "8th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv8cQ caption = "8th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv9aQ caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv9bQ caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv9cQ caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv10aQ caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv10bQ caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param twv10cQ caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 8 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam bool param twiFlavorQ caption = "Change Flavor" default = false visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && @seq != \ "Single" && @pat endparam func twfn1Q caption = "Twirl Fn 1" default = ident() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn2Q caption = "Twirl Fn 2" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn3Q caption = "Twirl Fn 3" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn4Q caption = "Twirl Fn 4" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn5Q caption = "Twirl Fn 5" default = ident() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn6Q caption = "Twirl Fn 6" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn7Q caption = "Twirl Fn 7" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn8Q caption = "Twirl Fn 8" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn9Q caption = "Twirl Fn 9" default = ident() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc func twfn10Q caption = "Twirl Fn 10" default = sin() visible = @formulaQ == 8 && @patParQ && !(@paramP2 == 0) && \ @seq != "Single" && @pat endfunc heading caption = "Driftwood 2 Parameters" visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endheading bool param tgwv1Q caption = "Change 1st Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv2Q caption = "Change 2nd Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv3Q caption = "Change 3rd Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv4Q caption = "Change 4th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv5Q caption = "Change 5th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv6Q caption = "Change 6th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv7Q caption = "Change 7th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv8Q caption = "Change 8th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv9Q caption = "Change 9th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv10Q caption = "Change 10th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv11Q caption = "Change 11th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwv12Q caption = "Change 12th Variable" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param tgwOp1Q caption = "Operator 1" enum = "1""2""3""4""5""6""7""8" default = 0 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam int param tgwOp2Q caption = "Operator 2" enum = "1""2""3""4""5""6""7""8" default = 0 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwa1Q caption = "Driftwood Alpha 1" default = 3 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwa2Q caption = "Driftwood Alpha 2" default = 3 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwb1Q caption = "Driftwood Beta 1" default = 2 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwb2Q caption = "Driftwood Beta 2" default = 2 visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param tgwh1Q caption = "Step Size 1" default = (.05,.05) visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam complex param tgwh2Q caption = "Step Size 2" default = (.05,.05) visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv1aQ caption = "1st Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && \ !(@paramP2 == 0) && @seq != "Single" && @pat endparam float param tgwv1bQ caption = "1st Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv1cQ caption = "1st Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv2aQ caption = "2nd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv2bQ caption = "2nd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv2cQ caption = "2nd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv3aQ caption = "3rd Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv3bQ caption = "3rd Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv3cQ caption = "3rd Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv4aQ caption = "4th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv4bQ caption = "4th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv4cQ caption = "4th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv5aQ caption = "5th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv5bQ caption = "5th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv5cQ caption = "5th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv6aQ caption = "6th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv6bQ caption = "6th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv6cQ caption = "6th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv7aQ caption = "9th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv7bQ caption = "9th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv7cQ caption = "9th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv8aQ caption = "10th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv8bQ caption = "10th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv8cQ caption = "10th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv9aQ caption = "11th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv9bQ caption = "11th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv9cQ caption = "11th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv10aQ caption = "12th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv10bQ caption = "12th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv10cQ caption = "12th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv11aQ caption = "13th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv11bQ caption = "13th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv11cQ caption = "13th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv12aQ caption = "14th Variable P1" default = 0 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv12bQ caption = "14th Variable P2" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam float param tgwv12cQ caption = "14th Variable P3" default = 1 visible = @begex == 1 && @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam bool param tgwFlavor1Q caption = "Change Flavor" default = false visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endparam func tgwfn1Q caption = "Driftwood Fn 1" default = ident() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn2Q caption = "Driftwood Fn 2" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn3Q caption = "Driftwood Fn 3" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn4Q caption = "Driftwood Fn 4" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn5Q caption = "Driftwood Fn 5" default = ident() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn6Q caption = "Driftwood Fn 6" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn7Q caption = "Driftwood Fn 7" default = ident() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn8Q caption = "Driftwood Fn 8" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn9Q caption = "Driftwood Fn 9" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn10Q caption = "Driftwood Fn 10" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn11Q caption = "Driftwood Fn 11" default = ident() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc func tgwfn12Q caption = "Driftwood Fn 12" default = sin() visible = @formulaQ == 9 && @patParQ && !(@paramP2 == 0) \ && @seq != "Single" && @pat endfunc heading caption = "Global Formula Functions" visible = !(@paramP2 == 0) && @pat endheading func fnov1 caption = "Formula Fn 1" default = ident() visible = !(@paramP2 == 0) && @pat endfunc func fnov2 caption = "Formula Fn 2" default = ident() visible = !(@paramP2 == 0) && @pat endfunc func fnx3 caption = "Formula X Fn 1" default = ident () visible = !(@paramP2 == 0) && @pat endfunc func fny3 caption = "Formula Y Fn 1" default = ident () visible = !(@paramP2 == 0) && @pat endfunc func fnx2 caption = "Formula X Fn 2" default = ident () visible = !(@paramP2 == 0) && @pat && @version < 1.6 endfunc func fny2 caption = "Formula Y Fn 2" default = ident () visible = !(@paramP2 == 0) && @pat && @version < 1.6 endfunc heading caption = "Plane Curve Traps" endheading bool param pct caption = "Activate Traps" default = false endparam param trapType caption = "Trap Type" enum = "None""Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day" \ "Barbed Wire""Baubles & Bangles""Bean Curve""Bicorn Curve" \ "Bicuspid Curve""Bifoliate""Bifolium" "Bighorn Curve""Binary Curve" \ "Bird of Paradise""Bow""Butterfly Curve""Cabuchon Curve" \ "Cardinal Points Curve""Cassini Ovals""Chaos Adorned""Chaos Unleashed" \ "Church Key Curve""Circle""Cissoid of Diocles""Cochleoid""Cocked Hat" \ "Compass Curve""Conchoid of Nicomedes""Conjoined Circle Curve" \ "Conductor's Curve""Cooking Pot Curve""Cosmic Rays""Crochet Hooks" \ "Crosshatch Curve""Cruciform""D&U Curve""Devil's Curve""Diamond" \ "Dogleg Curve""Double Circle Curve""Double Trine""Dribs & Drabs" \ "Driftwood Curve""Dulcimer Curve""Dumbbell Curve""Dürer's Conchoid" \ "Eight Curve""Eye of the Needle""Exclamation Point""Fatback" \ "Floreate Curve""Glyph Curve""Gravity Waves""Happy Accident" \ "Harpoon Curve" "Hook & Spar""Hoops & Plates""Horned Torus Curve" \ "Hyperbola""Indented Parabola""Intersecting Ovals""Kappa Curve" \ "Keppler's Folium""Keratoid Cusp""Knot Curve""Leaves of Grass" \ "Lemniscate""Lemniscate Corrected""Limacon""Line" "Links Curve" \ "Lipped Ovals""M curve""Maltese Cross Curve""Mercury Curve""Miscellanea" \ "Moorish Fantasy""Mousehead Curve""Nested Ovals""Nesting Birds Curve" \ "O-nami Curve""Odds 'n Ends""Omega Curve""Ornate Curve""Ovals" \ "Ovate Waves""Ovate Waves 2""Pacifier Curve""Parabola" \ "Parenthetical Curve""Pear-Shaped Curve""Pincers" "Piriform" \ "Pisces Curve""Plane & Tail""Plane & Tail 2""Quadrifolium""Rose Curve" \ "Seagull Curve" "Serpentine Curve""Simple Curve""sin(x)/x" \ "Sinus + Cosinus""Smoke Rings""Sneering Curve""Space Debris" \ "Spectacles Curve""Spiked Cusp""Spiral""Square""Squared Circle Curve" \ "Squeezed Rectangle Curve""Stirrup Curve""Strange Shape" \ "Stretched Oval Curve""Swallow Curve""Swastika Curve""Switchback Curve" \ "Tangent""Taurus Curve""Teardrop Curve""Tennis Anyone?""Thick 'n Thin" \ "Thorned Cross""Three Point Curve""Trefoil""Trident" \ "Trident of Descartes""Trifolium""Trisectrix of Maclaurin""Tsuba Curve" \ "Twisted Cross""Wheel in Trough""Whip Curve""Witch of Agnesi" default = 0 hint = "The trap type." visible = @pct endparam heading caption = "Lighting Parameters" visible = @pct endheading bool param lightPar caption = "Lighting Parameters" default = true visible = @pct endparam int param zchoice caption = "Lighting" enum = "Toplight""Edgelight""Dark Edgelight""Widelight""Softlight" \ "Sidelight""Innerlight""Outerlight""Glow""Diffuse Glow""Function" default = 1 hint = "Changes the way the gradient maps to the elements. Some may seem \ similar but react very differently when formula patterns are \ applied. Go to 'Lighting Function 1' for more choices" visible = @pct && @lightPar endparam bool param light caption = "Invert Lighting" default = false visible = @pct && @lightPar endparam bool param lighttyp caption = "Change Invert Light Style" default = false visible = @pct && @lightPar && @light endparam func fnzzz caption = "Lighting Function 1" default = ident () hint = "Further varies the 'Lighting' permutations" visible = @pct && @lightPar endfunc func zchfn caption = "Lighting Function 2" default = ident() hint = "Further varies the 'Lighting' permutations. Appears when \ 'Lighting' is set to 'Function'" visible = @pct && @lightPar && @zchoice == "Function" endfunc int param ztraptyp caption = "Fill Light Type" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @light == true && @pct && @lightPar endparam func fnztt caption = "Fill Light Fn 1" default = ident () visible = @light == true && @pct && @lightPar endfunc func gofn caption = "Fill Light Fn 2" default = ident () visible = @light == true && @pct && @lightPar endfunc complex param ltexp caption = "Fill Lt Intensity" default = (2,0) visible = @light == true && @pct && @lightPar endparam complex param ztt1 caption = "Fill Lt Offset" default = (0,0) visible = @light == true && @pct && @lightPar && @begex == 1 endparam complex param ztt2 caption = "Fill Light Strength" default = (1,0) visible = @light == true && @pct && @lightPar && @begex == 1 endparam complex param ztt3 caption = "Fill Light Power" default = (1,0) visible = @light == true && @pct && @lightPar && @begex == 1 endparam ;...................................................... heading caption = "PCT Global Parameters" visible = @pct && @trpParFn endheading bool param trpParFn caption = "PCT Global Parameters" default = true visible = @pct endparam float param rotation caption = "Trap Rotation" default = 0 visible = @pct && @trpParFn endparam float param size caption = "Trap Size" default = 1 visible = @pct && @trpParFn endparam float param rat caption = "Ratio Width/Heigh" default = 1.0 visible = @pct && @trpParFn endparam int param pctshape caption = "Trap Flavor" enum = "normal""acosh""acos" default = 0 visible = @begex == 1 && @pct && @trpParFn endparam float param zval2 caption = "Element Dimension" default = 1 hint = "Changes the dimensionality of the trap elements. Higher values \ increase contrast but may cause gapping with some trap shapes." visible = @pct && @trpParFn endparam float param zval caption = "Element Focus" default = 4 min = 0 hint = "Higher values make the elements thinner and bring the shape more \ in focus" visible = @pct && @trpParFn endparam float param zval3 caption = "Element Fission" default = 0 min = 0 hint = "Changes the solidity of the trap elements" visible = @begex == 1 && @pct && @trpParFn endparam float param distA caption = "Edge 1" default = 0 visible = @begex == 1 && @pct && @trpParFn endparam float param distB caption = "Edge 2" default = 1 hint = "Try a high value here to have outer elements overlay \ inner ones completely" visible = @begex == 1 && @pct && @trpParFn endparam complex param distC caption = "Edge 3" default = (1,0) visible = @begex == 1 && @pct && @trpParFn endparam complex param paramP1 caption = "Shading" default = (0,0) visible = @begex == 1 && @pct && @trpParFn && !(@paramP2 == 0) endparam complex param test2 caption = "Move/Spread" default = (0,0) hint = "Real and Imag changes alter the X and Y positions of the elements \ and spread them without changing their shapes" visible = @begex == 1 && @pct && @trpParFn endparam complex param test3 caption = "Kaleido/Split" default = (1,0) hint = "Real changes (integer) add full element shapes equidistant \ around the center of the element. Decimal values add partial \ element shapes. Imaginary changes fracture the elements" visible = @pct && @trpParFn && @begex == 1 endparam complex param expx caption = "X Exponent" default = (1.0,0.0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param expy caption = "Y Exponent" default = (1.0,0.0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param kp0 caption = "Super Offset 1" default = (0,0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param q0 caption = "Super Offset 2" default = (0,0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param kp1 caption = "Super Shaper 1" default = (1.0,0.0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam float param kp2 caption = "Super Shaper 2" default = 1.0 visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param q1 caption = "Super Shaper 3" default = (1.0,0.0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam complex param q2 caption = "Super Shaper 4" default = (1.0,0.0) visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endparam ; more shaping parameters........................................... heading caption = "More PCT Shaping Parameters" visible = @pct && @trpParFn && @version >= 1.6 endheading bool param pctParams caption = "More PCT Shaping Parameters" default = false visible = @pct && @trpParFn && @version >= 1.6 endparam int param varTypePct caption = "Trap X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endparam func zzpctfn caption = "Trap X/Y Function" default = ident() visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endfunc complex param zzpct1 caption = "Trap X/Y Offset" default = (0,0) visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endparam complex param zzpct2 caption = "Trap X/Y Strength" default = (1,0) visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endparam complex param zzpct3 caption = "Trap X/Y Power" default = (1,0) visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endparam int param opaddPct caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @pct && @trpParFn && @pctParams && @version >= 1.6 endparam func nufuncxtxp caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endfunc func nufuncxtyp caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endfunc bool param nuflavPct caption = "Change Extra Y Fn Flavor" default = false visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && @version >= 1.6 endparam complex param xtra1xp caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam complex param xtra2xp caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam complex param xtra3xp caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam complex param xtra1yp caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam complex param xtra2yp caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam complex param xtra3yp caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opaddPct > 0 && @pct && @trpParFn && @pctParams && \ @version >= 1.6 endparam heading caption = "Global Trap Functions" visible = @pct && @trpParFn endheading func pfn caption = "Formula Overlay Fn" default = ident () visible = @pct && !(@paramP2 == 0) && @trpParFn endfunc func fntest caption = "Pre-trap Function" default = ident () hint = "Alters the Z variable before trapping" visible = @pct && @trpParFn endfunc func fncx caption = "Global X Function" default = ident () hint = "Applied to the initial definition of X" visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endfunc func fncy caption = "Global Y Function" default = ident () hint = "Applied to the initial definition of Y" visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endfunc func fnxx caption = "Trap X Function" default = ident () hint = "Applied to the final definition of X" visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endfunc func fnyy caption = "Trap Y Function" default = ident () hint = "Applied to the final definition of Y" visible = @pct && @trpParFn && @begex == 1 && @trapType != "None" endfunc func fnxzx caption = "Another X Function" default = sqrt() visible = @pct && @trpParFn && @trapType != "None" endfunc func fnyzy caption = "Another Y Function" default = sqrt() visible = @pct && @trpParFn && @trapType != "None" endfunc heading caption = "Individual Trap Parameters" visible = @adv1 && (@shapeAdjust1 == 1.0 \ && @shapeAdjust2 == 1.0 && @shapeAdjust3 == 1.0 && @shapeAdjust4 == 1.0 \ && @shapeAdjust5 == 1.0 && @shapeAdjust6 == 1.0 && @shapeAdjust7 == 1.0 \ && @shapeAdjust8 == 1.0 && @shapeAdjust9 == 1.0 && @shapeAdjust10 == 1.0 \ && @shapeAdjust11 == 1.0 && @shapeAdjust12 == 1.0 && @zzort == 0 \ && @zzort2 == 0 && @pct) endheading heading caption = "Individual Trap Parameters [active]" visible = @adv1 && ( @shapeAdjust1 != 1.0 \ || @shapeAdjust2 != 1.0 || @shapeAdjust3 != 1.0 || @shapeAdjust4 != 1.0 \ || @shapeAdjust5 != 1.0 || @shapeAdjust6 != 1.0 || @shapeAdjust7 != 1.0 \ || @shapeAdjust8 != 1.0 || @shapeAdjust9 != 1.0 || @shapeAdjust10 != 1.0 \ || @shapeAdjust11 != 1.0 || @shapeAdjust12 != 1.0 || @zzort != 0 \ || @zzort2 != 0 && @pct) endheading param adv1 caption = "Individual Trap Parameters" hint = "Additional shaping parameters and functions." default = false visible = @pct endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." visible = @adv1 && @pct &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") || (@trapType == "Cosmic Rays") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Double Trine") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") ||\ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") ||(@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") || (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Spiral") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin")) endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv1 && @pct && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv1 && @pct && \ ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv1 && @pct && \ ((@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Strange Shape") || (@trapType == "Trifolium")) endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv1 && @pct && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium")) endparam float param shapeAdjust10 caption = "Shape Adj. X" default = 1.0 hint = "Shape adjustment parameter X." visible = @adv1 && @pct && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Miscellanea") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust11 caption = "Shape Adj. XI" default = 1.0 hint = "Shape adjustment parameter XI." visible = @adv1 && @pct && ((@trapType == "Driftwood Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust12 caption = "Shape Adj. XII" default = 1.0 hint = "Shape adjustment parameter XII." visible = @adv1 && @pct && (@trapType == "Dürer's Conchoid") endparam float param zzort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv1 && @pct &&\ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param zzort2 caption = "Fission 2" hint = "Shifts some of the lines in 'Square'" default = 0 visible = @adv1 && @pct && (@trapType == "Square") endparam func fn1 default = abs () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn2 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") ||\ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn3 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn4 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "O-nami Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Omega Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Quadrifolium") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")|| \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") ||(@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && @pct && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Maltese Cross Curve")||\ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn9 caption = "Function 9" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Conductor's Curve")||(@trapType == "Eye of the Needle")||\ (@trapType == "Miscellanea") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Dürer's Conchoid")) endfunc func fn10 caption = "Function 10" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && \ ((@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endfunc func fn11 caption = "Function 11" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv1 && @pct && (@trapType == "Dürer's Conchoid") endfunc heading caption = "Masking" endheading param mask_type caption = "Mask Type" enum = "Distance" "Iteration" "Range" endparam float param mask caption = "Mask Threshold" default =0 min = 0 hint = "With the Distance Mask Type orbits that don't come at least \ this close to the trap are made solid. A value of zero means \ that no pixels are made solid." endparam int param mask_mod caption = "Mask Modulation" default = 0 hint = "With the Modulation Mask Type the iteration that the orbit \ was caught by the trap is modulated by this value, and if \ the Mask Threshold is smaller the pixel is made solid." visible = @mask_type != "Distance" endparam param inverse caption = "Mask Reversed" default = false endparam ; Morph Parameters-------------------------------------------------- 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 adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param tha2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv endparam param mmode caption = "Z1 Mode" enum = "z+z1""z-z1""z1-z" default = 0 hint = "Defines relationship of z1 to z in 1st z block" visible = @adv && @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 = @adv && @tha2 endparam param mmode2 caption = "Z2 Mode" enum = "z+z2""z-z2""z2-z""z*z2""z/z2""z2/z" default = 0 hint = "Defines relationship of z2 to z in 2nd z block" visible = @adv && @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 = @adv && @tha2 && @change > 0 endparam param mmode3 caption = "Z3 Mode" enum = "z+z3""z-z3""z3-z""z*z3""z/z3""z3/z" default = 0 hint = "Defines relationship of z3 to z in 3rd z block" visible = @adv && @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 = @adv && @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @adv && @change > 5 endfunc ; texture------------------------------------------------------------- heading caption = "Textures" visible = (@rnd2 == 0 && @fbmtxt == 0 && @decamt == 0 && \ @gnarl_amt == 0) endheading heading caption = "Textures [active]" visible = (@rnd2 != 0 || @fbmtxt != 0 || @decamt != 0 || \ @gnarl_amt != 0) endheading param advt caption = "Textures" default = false endparam float param txamt caption = "Overall Tx Percent" default = 100.0 hint = "Controls the amount of \ Random, fBm, Decimal, Popgnarl and Geometrix \ texture applied cumulatively. Negative values change the tonality \ of the textures" 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 hint = "Negative values alter the tones of the texture" 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" hint = "Determines which variable(s) initialize(s) the texture" default = 0 visible = @advt && @advfbm endparam param ztyp4 caption = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Formula""Pixel" default = 2 hint = "Determines which kind of variable is used in \ 'fBm Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 a caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param b caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param c caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param d 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 hint = "Negative values alter the tones of the texture" 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 Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Formula" default = 2 hint = "Determines which kind of variable is used in \ 'Decimal Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 = "Soften Texture" 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 hint = "Negative values alter the tones of the texture" 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Formula" default = 2 hint = "Determines which kind of variable is used in \ 'Popgnarl Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 hint = "Negative values alter the tones of the texture" 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Formula" default = 2 hint = "Determines which kind of variable is used in \ 'Geometrix Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" 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 txia5 caption = "Pattern 1" default = (0.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param txib5 caption = "Pattern 2" default = (1.0,0.0) visible = @advt && @advtr && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param txic5 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.4 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 = "Scale" default = 1.0 hint = "Higher values create more detail in the texture" visible = @advt && @advtr endparam float param trp1 caption = "Density" default = 1 visible = @advt && @advtr hint = "Densest texture is at '1'" 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 = true 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 = "Init Variable Type" enum = "#z""Morph z""Trap Z""Trap2 Z""Formula" default = 2 hint = "Determines which kind of variable is used in \ 'Add'l Tx Initialization' (when complex variable is present). Textures \ created with 'Dist' and 'Trap Z' and Z2 conform to the element shapes \ and change with changes in the Morph values, 'Morph z' textures do not \ conform to element shapes and change with Morph values and '#z' textures \ do not conform and remain invariant. Pixel values are not affected by \ the formula at all 'Pattern' values conform to the pattern no matter \ what the pattern percentage chosen. Trap X and Y values apply only when \ traps are active" visible = @advt && @advatx && (@trinit < 5 || @trinit > 14 && @trinit < 21) 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 } Sine-mod_III { ; Modified sine mask by Mark Townsend ; ; Additional functionality added by Dan Kuzmenka 24 Jan 2001 ; Extended Morph parameters, masking, textures and a ; few other odds and ends added by Toby Marshall ; ; version 2.21, 26 Apr.2005 ; version 2.22, 24 Feb. 2008; added "Pattern" to texture initilisations ; version 2.23, 21 Mar. 2008; added "Average". "Farthest" and "Sum" ; trapping modes, and "Edge Definition" param. ; version 2.24, 8 Apr. 2008; added "limited iterations"; many thanks ; to Damien M. Jones for allowing me to use this code of his. ; version 2.25, 9 Apr. 2008; added a pattern repeat param to the ; limited iter code, adapted from Ron Barnett. ; version 2.26, 10 Apr. 2008; added more limited iter code. ; version 2.27, 12 Apr. 2008, rationalized and standardized ; limited iter code. ; ; Many thanks to Dan for allowing me to both tweak and ; host this wonderful ucl in my folder. If I have ; managed to extend its functionality it is naught but ; a reflection of the quality of the original. ; ; And kind thanks to Michèle Dessureault, Damien M. Jones, ; Andreas Lober and Dennis Magar for allowing their ; textures to be included here. ; ; Morph notes: This version maintains backward-compatibility ; with "Sine-mod_II" so long as the "Morph II" box is not ; checked. ; ; When "Morph II" is activated by default only ; "Morph function Z1" is active; you must set ; "Morph function Z2" & 3 to some function other than ; "zero" to activate them when they appear as the ; appropriate Morph choice is selected. ; ; When "Morph II" is active there is also the possibility ; of choosing the variable type for Z1-3 in any of the ; three positions where that secondary Z expression appears, ; via the "Z1(2,3)Type" parameters. ; ; Other changes from "Sine-mod II" include the addition of a ; fourth function and the possibility of entering decimal ; values for the number of color ranges in "Modulated ; Iteration" coloring mode, in which case you get a ; precession of color ranges. ; ; Look also for a section entitled "Shaping Parameters". ; Included are the fruits of a few of my ideas for adding ; some options to the definition and processing of the real ; and imaginary variables and the complex variable that is ; their product. ; ; In addition I have added a function and three parameters ; that become active in all coloring modes except "Distance", ; which affect the mapping of the gradient onto the elements ; in those modes. ; init: complex trap_z = (0,0) complex nuvar = 0 float dist = 0 complex trap2_z = (0,0) complex trap_p =(0,0) int iter = 0 int i = 0 int trap_iter = 0 bool trapped = false float min_dist = 1e20 if @trap_mode == 4 min_dist = 0 endif if @trap_mode == 0 || @trap_mode == 2 trapped = true endif float dave = 0 float dsum = 0 float distance = 0 w=(0.0,0.0) float t2 = 0 float tx = abs(@tp) int it = 0 float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) float texture=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 complex z1q = (0,0) complex z1p = (0,0) complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,0) float texture_tr = 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] bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z IF (@invert) z1=1/z1 ENDIF if @th2 == 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 aah = @nufunc((z1-@tw)+@nufunc4(z2-@tw4)^@exp4) bbh = @nufunc((z1-@tw)-@nufunc4(z2-@tw4)^@exp4) cch = @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 = aah elseif @mmode == "z-|z|" nuvar = bbh elseif @mmode == "|z|-z" nuvar = cch 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 if @coord == 0 if @math1 == 0 x = 1/x^2 x = (@ha + real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3))))^@power1 elseif @math1 == 1 x = (@ha - real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3))))^@power1 elseif @math1 == 2 x = (@ha * real(@fn3(@ht * imag((@fn1((z1-@r1)*@r2)^@r3)))))^@power1 elseif @math1 == 3 x = (@ha / real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3))))^@power1 elseif @math1 == 4 x = (@ha ^ real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3))))^@power1 elseif @math1 == 5 x = (real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3)))-@ha)^@power1 elseif @math1 == 6 x = (real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3)))/@ha)^@power1 elseif @math1 == 7 x = (real(@fn3(@ht * imag(@fn1((z1-@r1)*@r2)^@r3)))^@ha)^@power1 endif if @math2 == 0 y = (@va + real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3))))^@power2 elseif @math2 == 1 y = (@va - real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3))))^@power2 elseif @math2 == 2 y = (@va * real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3))))^@power2 elseif @math2 == 3 y = (@va / real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3))))^@power2 elseif @math2 == 4 y = (@va ^ real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3))))^@power2 elseif @math2 == 5 y = (real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3)))-@va)^@power2 elseif @math2 == 6 y = (real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3)))/@va)^@power2 elseif @math2 == 7 y = (real(@fn3(@vt * real(@fn2((z1-@t1)*@t2)^@t3)))^@va)^@power2 endif if @math3 == 0 w = @fnx((x*@parx2-@parx)^@parx3 + @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 1 w = @fnx((x*@parx2-@parx)^@parx3 - @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 2 w = @fnx((x*@parx2-@parx)^@parx3 * @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 3 w = @fnx((x*@parx2-@parx)^@parx3 / @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 4 w = @fnx((x*@parx2-@parx)^@parx3 ^ @zfunc((y*@pary2-@pary)^@pary3))^@power3 endif elseif @coord == 1 float r = cabs(@fn1((z1-@r1)*@r2)^@r3) float theta = atan2(@fn2((z1-@t1)*@t2)^@t3) if theta < 0 theta = theta + 2 * #pi endif float or = r if @math1 == 0 r = (r + @ha * sin(@ht * theta))^@power1 elseif @math1 == 1 r = (r - @ha * sin(@ht * theta))^@power1 elseif @math1 == 2 r = (r * @ha * sin(@ht * theta))^@power1 elseif @math1 == 3 r = (r / @ha * sin(@ht * theta))^@power1 elseif @math1 == 4 r = (r ^ @ha * sin(@ht * theta))^@power1 elseif @math1 == 5 r = (@ha * sin(@ht * theta)-r)^@power1 elseif @math1 == 6 r = (@ha * sin(@ht * theta)/r)^@power1 elseif @math1 == 7 r = (@ha * sin(@ht * theta)^r)^@power1 endif if @math2 == 0 theta = (theta + @va * cos(@vt * or))^@power2 elseif @math2 == 1 theta = (theta - @va * cos(@vt * or))^@power2 elseif @math2 == 2 theta = (theta * @va * cos(@vt * or))^@power2 elseif @math2 == 3 theta = (theta / @va * cos(@vt * or))^@power2 elseif @math2 == 4 theta = (theta ^ @va * cos(@vt * or))^@power2 elseif @math2 == 5 theta = (@va - theta * cos(@vt * or))^@power2 elseif @math2 == 6 theta = (@va / theta * cos(@vt * or))^@power2 elseif @math2 == 7 theta = (@va ^ theta * cos(@vt * or))^@power2 endif x = r * cos(theta) y = r * sin(theta) if @math3 == 0 w = @fnx((x*@parx2-@parx)^@parx3 + @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 1 w = @fnx((x*@parx2-@parx)^@parx3 - @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 2 w = @fnx((x*@parx2-@parx)^@parx3 * @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 3 w = @fnx((x*@parx2-@parx)^@parx3 / @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 4 w = @fnx((x*@parx2-@parx)^@parx3 ^ @zfunc((y*@pary2-@pary)^@pary3))^@power3 endif elseif @coord == 2 float r = cabs(@fn1((z1-@r1)*@r2)^@r3) float theta = atan2(@fn2((z1-@t1)*@t2)^@t3) if theta < 0 theta = theta + 2 * #pi endif float or = r if @math1 == 0 r = (r + @ha * sin(@ht * theta))^@power1 elseif @math1 == 1 r = (r - @ha * sin(@ht * theta))^@power1 elseif @math1 == 2 r = (r * @ha * sin(@ht * theta))^@power1 elseif @math1 == 3 r = (r / @ha * sin(@ht * theta))^@power1 elseif @math1 == 4 r = (r ^ @ha * sin(@ht * theta))^@power1 elseif @math1 == 5 r = (@ha * sin(@ht * theta)-r)^@power1 elseif @math1 == 6 r = (@ha * sin(@ht * theta)/r)^@power1 elseif @math1 == 7 r = (@ha * sin(@ht * theta)^r)^@power1 endif if @math2 == 0 theta = (theta + @va * cos(@vt * or))^@power2 elseif @math2 == 1 theta = (theta - @va * cos(@vt * or))^@power2 elseif @math2 == 2 theta = (theta * @va * cos(@vt * or))^@power2 elseif @math2 == 3 theta = (theta / @va * cos(@vt * or))^@power2 elseif @math2 == 4 theta = (theta ^ @va * cos(@vt * or))^@power2 elseif @math2 == 5 theta = (@va - theta * cos(@vt * or))^@power2 elseif @math2 == 6 theta = (@va / theta * cos(@vt * or))^@power2 elseif @math2 == 7 theta = (@va ^ theta * cos(@vt * or))^@power2 endif x = r * cosh(theta) y = r * sinh(theta) if @math3 == 0 w = @fnx((x*@parx2-@parx)^@parx3 + @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 1 w = @fnx((x*@parx2-@parx)^@parx3 - @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 2 w = @fnx((x*@parx2-@parx)^@parx3 * @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 3 w = @fnx((x*@parx2-@parx)^@parx3 / @zfunc((y*@pary2-@pary)^@pary3))^@power3 elseif @math3 == 4 w = @fnx((x*@parx2-@parx)^@parx3 ^ @zfunc((y*@pary2-@pary)^@pary3))^@power3 endif endif IF @vartype == "Normal" w = w ELSEIF @vartype == "Modulus" w = |w| ELSEIF @vartype == "Atan2" w = atan2(w) ELSEIF @vartype == "Real" w = real(w) ELSEIF @vartype == "Imag" w = imag(w) ENDIF IF @nuflav == true IF @opadd == "None" w = w ELSEIF @opadd == "+(X+Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X+Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X-Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd== "-(X-Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y-X)" w = w + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y-X)" w = w - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X*Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X*Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X/Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X/Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y/X)" w = w + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y/X)" w = w - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X^Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X^Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y^X)" w = w + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y^X)" w = w - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ENDIF ELSE IF @opadd == "None" w = w ELSEIF @opadd == "+(X+Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X+Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X-Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd== "-(X-Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y-X)" w = w + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y-X)" w = w - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X*Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X*Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X/Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X/Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y/X)" w = w + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y/X)" w = w - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X^Y)" w = w + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X^Y)" w = w - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y^X)" w = w + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y^X)" w = w - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ENDIF ENDIF complex zq = (0,0) IF @ztype == "Normal" zq = z1 ELSEIF @ztype == "Modulus" zq = |z1| ELSEIF @ztype == "Atan2" zq = atan2(z1) ELSEIF @ztype == "Real" zq = real(z1) ELSEIF @ztype == "Imag" zq = imag(z1) ENDIF IF @type == true dist = cabs(w + @zfntry(((zq-@zamt1)*@zamt2)^@zamt3)) ELSE dist = cabs(@zfntry(((zq-@zamt1)*@zamt2)^@zamt3)-w) ENDIF if @avgflv == true if @mode_change == 0 dsum = dist + (dsum) dave = dsum/(i+1) elseif @mode_change == 1 dsum = cabs(cotanh(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 2 dsum = cabs(log(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 3 dsum = |log(dist +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(dist +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(dist +(dsum))| dave = dsum/(i+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(dist +(dsum))) dave = dsum/(i+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 8 dsum = cabs(cos(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 9 dsum = cabs(recip(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(dist +(dsum))| dave = dsum/(i+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(dist +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(dist +(dsum))) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(dist +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(dist +(dsum))) dave = dsum/(i+1) dave = cabs(log(dave)) endif else dsum = dist +(dsum) dave = dsum/(i+1) if @mode_change == 0 dsum = dist + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(dist +(dsum))) elseif @mode_change == 2 dsum = cabs(log(dist +(dsum))) elseif @mode_change == 3 dsum = |log(dist +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(dist +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(dist +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(dist +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(dist +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(dist +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(dist +(dsum))) dave = dsum/(i+1) elseif @mode_change == 10 dsum = |recip(dist +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(dist +(dsum)) dave = dsum/(i+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(dist +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(dist +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(dist +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(dist +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(dist +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(dist +(dsum))) dave = cabs(log(dave)) endif endif if @follow == true if iter >= @skip1 && iter < @skip2 if @version < 2.27 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @trap_mode == 0 ; closest if dist < min_dist min_dist = dist + @edge/3 trap_p = w trap_z = z1 trap2_z = #z trap_iter = iter endif elseif @trap_mode == 1 ;last if !trapped && dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 2 ;first if dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 3 ;average if dist <= @size trapped = true min_dist = dave + @edge/3 distance = dave trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 4; farthest if dist > min_dist && dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 5 ; sum if dist <= @size trapped = true min_dist = distance + @edge/3 distance = distance + dist trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 6 ; sum outline if dist <= @size trapped = true min_dist = distance + @edge/3 distance = distance + min_dist + .1 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif endif endif endif elseif @follow == false if @version < 2.27 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if iter >= @skip1 && iter < @skip2 if @trap_mode == 0 ; closest if dist < min_dist min_dist = dist + @edge/3 trap_p = w trap_z = z1 trap2_z = #z trap_iter = iter endif elseif @trap_mode == 1 ;last if !trapped && dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 2 ;first if dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 3 ;average if dist <= @size trapped = true min_dist = dave + @edge/3 distance = dave trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 4; farthest if dist > min_dist && dist <= @size trapped = true min_dist = dist + @edge/3 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 5 ; sum if dist <= @size trapped = true min_dist = distance + @edge/3 distance = distance + dist trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif elseif @trap_mode == 6 ; sum outline if dist <= @size trapped = true min_dist = distance + @edge/3 distance = distance + min_dist + .1 trap_z = z1 trap2_z = #z trap_p = w trap_iter = iter endif endif endif endif endif iter = iter + 1 if @version < 2.25 iter = i endif i = i + 1 z_values[i] = #z final: 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 == "Pattern" tz = ((trap_p-@txia1)*@txib1)^@txic1 elseif @ztyp == "Dist" tz = ((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 t2 = abs((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 == "Pattern" tz = ((trap_p-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Dist" tz = ((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 + @c) % 256 float by1 = (by0 + @d) % 256 float rx0 = real(pfb) - floor(real(pfb)) float ry0 = imag(pfb) - floor(imag(pfb)) float rx1 = rx0 - @a float ry1 = ry0 - @b 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 if @fbm_limit !=0 texture_fbm= texture_fbm % @fbm_limit endif if @fbm_sgn == true texture_fbm = abs(texture_fbm) endif 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 == "Pattern" tz = ((trap_p-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Dist" tz = ((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 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 == "Pattern" tz = ((trap_p-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Dist" tz = ((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 == "Pattern" tz = ((trap_p-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Dist" tz = ((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)^@exp*2)*@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 if @invt == false if real(1/@msk) < min_dist && !(@msk == 0) #solid = true endif elseif @invt == true if real(1/@msk) > min_dist && !(@msk == 0) #solid = true endif endif if !trapped #solid = true else if @color == 0 tmp = min_dist elseif @color == 1 tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @color == 2 tmp = 0.01 * real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) elseif @color == 3 tmp = real(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @color == 4 tmp = imag(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @color == 5 theta = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if theta < 0 theta = theta + 2 * #pi endif theta = 1 / (2 * #pi) * theta tmp = theta elseif @color == 6 ; Modulated iteration tmp = (real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) % @colRange) / @colRange*@sep elseif @color == 7 ; Angle to Trap float arg = atan2((@colorFn((trap_z - trap_p)-@tz1)*@tz2)^@tz3) if arg < 0 arg = arg + 2 * #pi endif tmp = 1 / (2 * #pi) * arg endif endif #index = real(@indfn(tmp^@shad+(texture)))+(tx*@txamt/10)/100 + t2*(tx*@txamt/10)/100 \ + rn*@r*(tx*@txamt/10)/100 default: title = "Sine-mod_III" param version caption = "Version" default = 2.27 visible = false endparam param trp caption = "More Parameters" hint = "Additional parameters and functions added 7/07/03." default = true endparam param coord caption = "Coodinate Mode" enum = "Cartesian" "Polar" "Hyper" endparam param invert caption = "Invert z" default = FALSE endparam heading caption = "Parameters" endheading param trap_mode caption = "Trap Mode" enum = "Closest" "First [masked]" "Last [masked]""Average""Farthest""Sum"\ "Sum Outline" hint = "All modes except 'Closest' are automatically masked. Use \ 'Size' param to control masking." endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @trap_mode == 3 endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @trap_mode == 3 endparam float param size caption = " Size" default = 1 hint = "This param determines element size all trap modes except \ 'Closest'" visible = @trap_mode != 0 endparam param @color caption = "Coloring Mode" enum = "Distance" "Magnitude" "Iteration" "Real" "Imag" "Angle" \ "Modulated Iter" "Angle to Trap" endparam float param colRange caption = "Color Ranges" default = 8.0 visible = @color == "Modulated Iter" endparam float param sep caption = "Separation" default = 1.0 visible = @color == "Modulated Iter" endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @color > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @color > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color > 0 endparam int param skip1 caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam float param edge caption = "Edge Definition" default = 0 hint = "Increasing this value adds an edge to the elements. You \ will have to adjust your gradient. Generally you will want \ positive values" endparam float param ht caption = "Frequency #1" default = 10.0 endparam float param ha caption = "Amplitude #1" default = 0.5 endparam float param vt caption = "Frequency #2" default = 10.0 endparam float param va caption = "Amplitude #2" default = 0.5 endparam complex param shad caption = "Element Shading" default = (1,0) endparam heading caption = "Arithmetic Functions" endheading param math1 caption = "First arithmetic function" enum = "+" "-" "*" "/" "^""invert -""invert /""invert ^" endparam param power1 caption = "1st function exponent" default = 1.0 endparam param math2 caption = "Second arithmetic function" enum = "+" "-" "*" "/" "^""invert -""invert /""invert ^" endparam param power2 caption = "2nd function exponent" default = 1.0 endparam param math3 caption = "Third arithmetic function" enum = "+" "-" "*" "/" "^" endparam param power3 caption = "3rd function exponent" default = 1.0 endparam heading caption = "Functions" endheading func fn1 caption = "First Function" default = ident() endfunc func fn2 caption = "Second Function" default = flip() endfunc func zfunc caption = "Third function" default = flip() endfunc func fnx caption = "Fourth function" default = ident() endfunc func fn3 caption = "Extra Function" default = sin() hint = "This function is used only for the Cartesian mode." endfunc func indfn caption = "Index Function" default = ident() hint = "This function affects the shading of the elements." endfunc heading caption = "Shaping Parameters" visible = @parx == (0,0) && @pary == (0,0) && @parx2 == (1,0) && @pary2 == \ (1,0) && @parx3 == (1,0) && @pary3 == (1,0) && @r1 == (0,0) && \ @r2 == (1,0) && @r3 == (1,0) && @t1 == (0,0) && @t2 == (1,0) && \ @t3 == (1,0) && @type == false && @ztype == 0 && @vartype == 0 \ && @zamt1 == (0,0) && @zamt2 == (1,0) && @zamt3 == (1,0) && \ @parx == (0,0) && @pary == (0,0) && @parx2 == (1,0) && @pary2 == \ (1,0)&& @parx3 == (1,0) && @pary3 == (1,0) && @opadd == 0 && \ @nuflav == false && @xtra1x == (0,0) && @xtra1y == (0,0) && \ @xtra2x == (1,0)&& @xtra2y == (1,0) && @xtra3x == (1,0) && @xtra3y \ == (1,0) endheading heading caption = "Shaping Parameters [active]" visible = @parx != (0,0) || @pary != (0,0) || @parx2 != (1,0) || @pary2 != \ (1,0) || @parx3 != (1,0) || @pary3 != (1,0) || @r1 != (0,0) || \ @r2 != (1,0) || @r3 != (1,0) || @t1 != (0,0) || @t2 != (1,0) || \ @t3 != (1,0) || @type != false || @ztype != 0 || @vartype != 0 \ || @zamt1 != (0,0) || @zamt2 != (1,0) || @zamt3 != (1,0) || \ @parx != (0,0) || @pary != (0,0) || @parx2 != (1,0) || @pary2 != \ (1,0)|| @parx3 != (1,0) || @pary3 != (1,0) || @opadd != 0 || \ @nuflav != false || @xtra1x != (0,0) || @xtra1y != (0,0) || \ @xtra2x != (1,0)|| @xtra2y != (1,0) || @xtra3x != (1,0) || @xtra3y \ != (1,0) endheading bool param shp caption = "Shaping Parameters" default = true endparam complex param r1 caption = "Offset 1" default = (0,0) visible = @shp endparam complex param t1 caption = "Offset 2" default = (0,0) visible = @shp endparam complex param r2 caption = "Strength 1" default = (1,0) visible = @shp endparam complex param t2 caption = "Strength 2" default = (1,0) visible = @shp endparam complex param r3 caption = "Power 1" default = (1,0) visible = @shp endparam complex param t3 caption = "Power 2" default = (1,0) visible = @shp endparam bool param type caption = "Accent" default = false visible = @shp endparam int param ztype caption = "Mix Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @shp endparam func zfntry caption = "Mix Function" default = ident() visible = @shp endfunc complex param zamt1 caption = "Mix Offset" default = (0,0) visible = @shp endparam complex param zamt2 caption = "Mix Strength" default = (1,0) visible = @shp endparam complex param zamt3 caption = "Mix Power" default = (1,0) visible = @shp endparam int param vartype caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @shp endparam complex param parx caption = "X Offset" default = (0,0) visible = @shp endparam complex param pary caption = "Y Offset" default = (0,0) visible = @shp endparam complex param parx2 caption = "X Strength" default = (1,0) visible = @shp endparam complex param pary2 caption = "Y Strength" default = (1,0) visible = @shp endparam complex param parx3 caption = "X Power" default = (1,0) visible = @shp endparam complex param pary3 caption = "Y Power" default = (1,0) visible = @shp endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @shp endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @shp endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @shp endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @shp endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @shp endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @shp endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @shp endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @shp endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @shp endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @shp endparam ; Morph................................................................. heading caption = "Morph Parameters" visible = (@change == 0 && @exp1 == (1,0) && @exp2 == (1,0) && @exp1 == (1,0)\ && @tw == (0,0) && @tw2 == (0,0) && @tw3 == (0,0) && @th2 == false) endheading heading caption = "Morph Parameters [active]" visible = (@change != 0 || @exp1 != (1,0) || @exp2 != (1,0) || @exp1 != (1,0) \ || @tw != (0,0) || @tw2 != (0,0) || @tw3 != (0,0) || @th2 == true) endheading param adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = true endparam param th2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @th2 endparam param zchange1 caption = "Z1 type" enum = "|z|""atan2(z)""real(z)""imag(z)" default = 0 hint = "Determines the character of z1 variable " visible = @adv && @th2 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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @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 = @adv && @th2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @th2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @th2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @th2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @th2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @th2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @th2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @th2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @th2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @th2 && @adv && @change > 5 endfunc heading caption = "Masking" visible = @msk == 0 endheading heading caption = "Masking [active]" visible = @msk != 0 endheading param admsk caption = "Masking" default = true endparam float param msk caption = "Distance Masking" default = 0.0 visible = @admsk endparam param invt caption = "Invert Mask" default = false visible = @admsk endparam 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 = true 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 = true 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""Pattern""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 a caption = "Distribution 1" default = 1 visible = @advt && @advfbm endparam float param b caption = "Distribution 2" default = 1 visible = @advt && @advfbm endparam float param c caption = "Distribution 3" default = 1 visible = @advt && @advfbm endparam float param d 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""Pattern""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 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" 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""Pattern""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 = true 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""Pattern""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.4 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 = "Scale" default = 1.0 hint = "Higher values create more detail in the texture" visible = @advt && @advtr endparam float param trp1 caption = "Density" default = 1 visible = @advt && @advtr hint = "Densest texture is at '1'" 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""Pattern""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 } ************************************************ kcc/tm-PlaneCurveTrapsII { ; ; This file owes its existence to the skill and ; generosity of Ken Childress. All the "nuts ; and bolts" are his; I developed only the trap ; shapes and a few colormaps. In fact this coloring ; is structurally and operationally identical to ; "Plane Curve Traps" in kcc3.ucl and should be ; considered an extension of it. ; ; Ken was kind enough to let me create a separate ; file so that I could make additions to it at ; my discretion. ; ; Many thanks, Ken. ; ; Toby Marshall ; ; History: ; Version 1, Dec. 2002 ; Version 1.1, Jun. 2003--enabled "skip iter" param ; Version 1.2, July 2003--added some extra parameters ; Version 1.3, Apr. 2004--added Ken Childress' "Trap ; Mode" parameter. ; Version 1.4, Mar. 2005--added a "shaping parameters" ; section that works on X and Y and the minimum ; distance definition. Added Morph II parameters. ; Ken was also kind enough to allow me to inclue ; all the PCT shapes from "Plane Curve Traps" ; Version 1.5, Mar. 2006--added "Invert Trap" param ; Version 1.6, Apr. 2008--added "limited iterations"; ; many thanks to Damien M. Jones for letting me use ; this code of his. ; Version 1.7, Apr. 2008--added a pattern repeat param ; to the limited iter code, adapted from Ron Barnett. ; Version 1.8, Apr. 2008--added more limited iter code. ; Version 1.9 14 Apr. 2008--rationalized and standardized ; limited iter code. ; global: color colorMap [24, 2] int ranges = 24 int offset = 0 if (@colorPreset == "Gradient") ; Use the gradient for the color ranges. ranges = @colorRanges offset = 0 elseif (@colorPreset == "Custom") ; User specified custom range. ; Initial values by Toby Marshall. colorMap [0,0] = @colorMax1, colorMap [0,1] = @colorMin1 colorMap [1,0] = @colorMax2, colorMap [1,1] = @colorMin2 colorMap [2,0] = @colorMax3, colorMap [2,1] = @colorMin3 colorMap [3,0] = @colorMax4, colorMap [3,1] = @colorMin4 colorMap [4,0] = @colorMax5, colorMap [4,1] = @colorMin5 colorMap [5,0] = @colorMax6, colorMap [5,1] = @colorMin6 colorMap [6,0] = @colorMax7, colorMap [6,1] = @colorMin7 colorMap [7,0] = @colorMax8, colorMap [7,1] = @colorMin8 colorMap [8,0] = @customMax9, colorMap [8,1] = @customMin9 colorMap [9,0] = @customMax10, colorMap [9,1] = @customMin10 colorMap [10,0] = @customMax11, colorMap [10,1] = @customMin11 colorMap [11,0] = @customMax12, colorMap [11,1] = @customMin12 colorMap [12,0] = @customMax13, colorMap [12,1] = @customMin13 colorMap [13,0] = @customMax14, colorMap [13,1] = @customMin14 colorMap [14,0] = @customMax15, colorMap [14,1] = @customMin15 colorMap [15,0] = @customMax16, colorMap [15,1] = @customMin16 colorMap [16,0] = @customMax17, colorMap [16,1] = @customMin17 colorMap [17,0] = @customMax18, colorMap [17,1] = @customMin18 colorMap [18,0] = @customMax19, colorMap [18,1] = @customMin19 colorMap [19,0] = @customMax20, colorMap [19,1] = @customMin20 colorMap [20,0] = @customMax21, colorMap [20,1] = @customMin21 colorMap [21,0] = @customMax22, colorMap [21,1] = @customMin22 colorMap [22,0] = @customMax23, colorMap [22,1] = @customMin23 colorMap [23,0] = @customMax24, colorMap [23,1] = @customMin24 ranges = @colorRanges offset = @colorOffset elseif (@colorPreset == "Generate") ; Compute the color ranges using the gradient. ranges = 0 offset = @colorOffset while ranges < @numRanges color gradientColor = gradient(ranges/@numRanges) colorMap [ranges,0] = hsl(hue(gradientColor), sat(gradientColor), @luminanceUpper) colorMap [ranges,1] = hsl(hue(gradientColor), sat(gradientColor), @luminanceLower) ranges = ranges + 1 endwhile elseif (@colorPreset == "Default") ; colorMap [0,0] = @defaultMax1, colorMap [0,1] = @defaultMin1 colorMap [1,0] = @defaultMax2, colorMap [1,1] = @defaultMin2 colorMap [2,0] = @defaultMax3, colorMap [2,1] = @defaultMin3 colorMap [3,0] = @defaultMax4, colorMap [3,1] = @defaultMin4 colorMap [4,0] = @defaultMax5, colorMap [4,1] = @defaultMin5 colorMap [5,0] = @defaultMax6, colorMap [5,1] = @defaultMin6 colorMap [6,0] = @defaultMax7, colorMap [6,1] = @defaultMin7 colorMap [7,0] = @defaultMax8, colorMap [7,1] = @defaultMin8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Default 12") ; Created by Toby Marshall. colorMap [0,0] = @default12Max1, colorMap [0,1] = @default12Min1 colorMap [1,0] = @default12Max2, colorMap [1,1] = @default12Min2 colorMap [2,0] = @default12Max3, colorMap [2,1] = @default12Min3 colorMap [3,0] = @default12Max4, colorMap [3,1] = @default12Min4 colorMap [4,0] = @default12Max5, colorMap [4,1] = @default12Min5 colorMap [5,0] = @default12Max6, colorMap [5,1] = @default12Min6 colorMap [6,0] = @default12Max7, colorMap [6,1] = @default12Min7 colorMap [7,0] = @default12Max8, colorMap [7,1] = @default12Min8 colorMap [8,0] = @default12Max9, colorMap [8,1] = @default12Min9 colorMap [9,0] = @default12Max10, colorMap [9,1] = @default12Min10 colorMap [10,0] = @default12Max11, colorMap [10,1] = @default12Min11 colorMap [11,0] = @default12Max12, colorMap [11,1] = @default12Min12 ranges = 12 offset = @colorOffset elseif (@colorPreset == "Default 16") ; Created by Toby Marshall. colorMap [0,0] = @default16Max1, colorMap [0,1] = @default16Min1 colorMap [1,0] = @default16Max2, colorMap [1,1] = @default16Min2 colorMap [2,0] = @default16Max3, colorMap [2,1] = @default16Min3 colorMap [3,0] = @default16Max4, colorMap [3,1] = @default16Min4 colorMap [4,0] = @default16Max5, colorMap [4,1] = @default16Min5 colorMap [5,0] = @default16Max6, colorMap [5,1] = @default16Min6 colorMap [6,0] = @default16Max7, colorMap [6,1] = @default16Min7 colorMap [7,0] = @default16Max8, colorMap [7,1] = @default16Min8 colorMap [8,0] = @default16Max9, colorMap [8,1] = @default16Min9 colorMap [9,0] = @default16Max10, colorMap [9,1] = @default16Min10 colorMap [10,0] = @default16Max11, colorMap [10,1] = @default16Min11 colorMap [11,0] = @default16Max12, colorMap [11,1] = @default16Min12 colorMap [12,0] = @default16Max13, colorMap [12,1] = @default16Min13 colorMap [13,0] = @default16Max14, colorMap [13,1] = @default16Min14 colorMap [14,0] = @default16Max15, colorMap [14,1] = @default16Min15 colorMap [15,0] = @default16Max16, colorMap [15,1] = @default16Min16 ranges = 16 offset = @colorOffset elseif (@colorPreset == "Default 24") ; Created by Toby Marshall. colorMap [0,0] = @default24Max1, colorMap [0,1] = @default24Min1 colorMap [1,0] = @default24Max2, colorMap [1,1] = @default24Min2 colorMap [2,0] = @default24Max3, colorMap [2,1] = @default24Min3 colorMap [3,0] = @default24Max4, colorMap [3,1] = @default24Min4 colorMap [4,0] = @default24Max5, colorMap [4,1] = @default24Min5 colorMap [5,0] = @default24Max6, colorMap [5,1] = @default24Min6 colorMap [6,0] = @default24Max7, colorMap [6,1] = @default24Min7 colorMap [7,0] = @default24Max8, colorMap [7,1] = @default24Min8 colorMap [8,0] = @default24Max9, colorMap [8,1] = @default24Min9 colorMap [9,0] = @default24Max10, colorMap [9,1] = @default24Min10 colorMap [10,0] = @default24Max11, colorMap [10,1] = @default24Min11 colorMap [11,0] = @default24Max12, colorMap [11,1] = @default24Min12 colorMap [12,0] = @default24Max13, colorMap [12,1] = @default24Min13 colorMap [13,0] = @default24Max14, colorMap [13,1] = @default24Min14 colorMap [14,0] = @default24Max15, colorMap [14,1] = @default24Min15 colorMap [15,0] = @default24Max16, colorMap [15,1] = @default24Min16 colorMap [16,0] = @default24Max17, colorMap [16,1] = @default24Min17 colorMap [17,0] = @default24Max18, colorMap [17,1] = @default24Min18 colorMap [18,0] = @default24Max19, colorMap [18,1] = @default24Min19 colorMap [19,0] = @default24Max20, colorMap [19,1] = @default24Min20 colorMap [20,0] = @default24Max21, colorMap [20,1] = @default24Min21 colorMap [21,0] = @default24Max22, colorMap [21,1] = @default24Min22 colorMap [22,0] = @default24Max23, colorMap [22,1] = @default24Min23 colorMap [23,0] = @default24Max24, colorMap [23,1] = @default24Min24 ranges = 24 offset = @colorOffset elseif (@colorPreset == "Color Wheel 12") ; Created by Toby Marshall. colorMap [0,0] = @colorWheel12Max1, colorMap [0,1] = @colorWheel12Min1 colorMap [1,0] = @colorWheel12Max2, colorMap [1,1] = @colorWheel12Min2 colorMap [2,0] = @colorWheel12Max3, colorMap [2,1] = @colorWheel12Min3 colorMap [3,0] = @colorWheel12Max4, colorMap [3,1] = @colorWheel12Min4 colorMap [4,0] = @colorWheel12Max5, colorMap [4,1] = @colorWheel12Min5 colorMap [5,0] = @colorWheel12Max6, colorMap [5,1] = @colorWheel12Min6 colorMap [6,0] = @colorWheel12Max7, colorMap [6,1] = @colorWheel12Min7 colorMap [7,0] = @colorWheel12Max8, colorMap [7,1] = @colorWheel12Min8 colorMap [8,0] = @colorWheel12Max9, colorMap [8,1] = @colorWheel12Min9 colorMap [9,0] = @colorWheel12Max10, colorMap [9,1] = @colorWheel12Min10 colorMap [10,0] = @colorWheel12Max11, colorMap [10,1] = @colorWheel12Min11 colorMap [11,0] = @colorWheel12Max12, colorMap [11,1] = @colorWheel12Min12 ranges = 12 offset = @colorOffset elseif (@colorPreset == "Alhambra 8") ; Created by Toby Marshall. colorMap [0,0] = @alhambra8Max1, colorMap [0,1] = @alhambra8Min1 colorMap [1,0] = @alhambra8Max2, colorMap [1,1] = @alhambra8Min2 colorMap [2,0] = @alhambra8Max3, colorMap [2,1] = @alhambra8Min3 colorMap [3,0] = @alhambra8Max4, colorMap [3,1] = @alhambra8Min4 colorMap [4,0] = @alhambra8Max5, colorMap [4,1] = @alhambra8Min5 colorMap [5,0] = @alhambra8Max6, colorMap [5,1] = @alhambra8Min6 colorMap [6,0] = @alhambra8Max7, colorMap [6,1] = @alhambra8Min7 colorMap [7,0] = @alhambra8Max8, colorMap [7,1] = @alhambra8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Belvedere 8") ; Created by Toby Marshall. colorMap [0,0] = @belvedere8Max1, colorMap [0,1] = @belvedere8Min1 colorMap [1,0] = @belvedere8Max2, colorMap [1,1] = @belvedere8Min2 colorMap [2,0] = @belvedere8Max3, colorMap [2,1] = @belvedere8Min3 colorMap [3,0] = @belvedere8Max4, colorMap [3,1] = @belvedere8Min4 colorMap [4,0] = @belvedere8Max5, colorMap [4,1] = @belvedere8Min5 colorMap [5,0] = @belvedere8Max6, colorMap [5,1] = @belvedere8Min6 colorMap [6,0] = @belvedere8Max7, colorMap [6,1] = @belvedere8Min7 colorMap [7,0] = @belvedere8Max8, colorMap [7,1] = @belvedere8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Bouquet 8") ; Created by Toby Marshall. colorMap [0,0] = @bouquet8Max1, colorMap [0,1] = @bouquet8Min1 colorMap [1,0] = @bouquet8Max2, colorMap [1,1] = @bouquet8Min2 colorMap [2,0] = @bouquet8Max3, colorMap [2,1] = @bouquet8Min3 colorMap [3,0] = @bouquet8Max4, colorMap [3,1] = @bouquet8Min4 colorMap [4,0] = @bouquet8Max5, colorMap [4,1] = @bouquet8Min5 colorMap [5,0] = @bouquet8Max6, colorMap [5,1] = @bouquet8Min6 colorMap [6,0] = @bouquet8Max7, colorMap [6,1] = @bouquet8Min7 colorMap [7,0] = @bouquet8Max8, colorMap [7,1] = @bouquet8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Color Switch 8") ; Created by Toby Marshall. colorMap [0,0] = @colorSwitch8Max1, colorMap [0,1] = @colorSwitch8Min1 colorMap [1,0] = @colorSwitch8Max2, colorMap [1,1] = @colorSwitch8Min2 colorMap [2,0] = @colorSwitch8Max3, colorMap [2,1] = @colorSwitch8Min3 colorMap [3,0] = @colorSwitch8Max4, colorMap [3,1] = @colorSwitch8Min4 colorMap [4,0] = @colorSwitch8Max5, colorMap [4,1] = @colorSwitch8Min5 colorMap [5,0] = @colorSwitch8Max6, colorMap [5,1] = @colorSwitch8Min6 colorMap [6,0] = @colorSwitch8Max7, colorMap [6,1] = @colorSwitch8Min7 colorMap [7,0] = @colorSwitch8Max8, colorMap [7,1] = @colorSwitch8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Evening Sky 8") ; Created by Toby Marshall. colorMap [0,0] = @eveningSky8Max1, colorMap [0,1] = @eveningSky8Min1 colorMap [1,0] = @eveningSky8Max2, colorMap [1,1] = @eveningSky8Min2 colorMap [2,0] = @eveningSky8Max3, colorMap [2,1] = @eveningSky8Min3 colorMap [3,0] = @eveningSky8Max4, colorMap [3,1] = @eveningSky8Min4 colorMap [4,0] = @eveningSky8Max5, colorMap [4,1] = @eveningSky8Min5 colorMap [5,0] = @eveningSky8Max6, colorMap [5,1] = @eveningSky8Min6 colorMap [6,0] = @eveningSky8Max7, colorMap [6,1] = @eveningSky8Min7 colorMap [7,0] = @eveningSky8Max8, colorMap [7,1] = @eveningSky8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Fantasia 8") ; Created by Toby Marshall. colorMap [0,0] = @fantasia8Max1, colorMap [0,1] = @fantasia8Min1 colorMap [1,0] = @fantasia8Max2, colorMap [1,1] = @fantasia8Min2 colorMap [2,0] = @fantasia8Max3, colorMap [2,1] = @fantasia8Min3 colorMap [3,0] = @fantasia8Max4, colorMap [3,1] = @fantasia8Min4 colorMap [4,0] = @fantasia8Max5, colorMap [4,1] = @fantasia8Min5 colorMap [5,0] = @fantasia8Max6, colorMap [5,1] = @fantasia8Min6 colorMap [6,0] = @fantasia8Max7, colorMap [6,1] = @fantasia8Min7 colorMap [7,0] = @fantasia8Max8, colorMap [7,1] = @fantasia8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Flowering Orchard 8") ; Created by Toby Marshall. colorMap [0,0] = @floweringOrchard8Max1, colorMap [0,1] = @floweringOrchard8Min1 colorMap [1,0] = @floweringOrchard8Max2, colorMap [1,1] = @floweringOrchard8Min2 colorMap [2,0] = @floweringOrchard8Max3, colorMap [2,1] = @floweringOrchard8Min3 colorMap [3,0] = @floweringOrchard8Max4, colorMap [3,1] = @floweringOrchard8Min4 colorMap [4,0] = @floweringOrchard8Max5, colorMap [4,1] = @floweringOrchard8Min5 colorMap [5,0] = @floweringOrchard8Max6, colorMap [5,1] = @floweringOrchard8Min6 colorMap [6,0] = @floweringOrchard8Max7, colorMap [6,1] = @floweringOrchard8Min7 colorMap [7,0] = @floweringOrchard8Max8, colorMap [7,1] = @floweringOrchard8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Morning Sky 8") ; Created by Toby Marshall. colorMap [0,0] = @morningSky8Max1, colorMap [0,1] = @morningSky8Min1 colorMap [1,0] = @morningSky8Max2, colorMap [1,1] = @morningSky8Min2 colorMap [2,0] = @morningSky8Max3, colorMap [2,1] = @morningSky8Min3 colorMap [3,0] = @morningSky8Max4, colorMap [3,1] = @morningSky8Min4 colorMap [4,0] = @morningSky8Max5, colorMap [4,1] = @morningSky8Min5 colorMap [5,0] = @morningSky8Max6, colorMap [5,1] = @morningSky8Min6 colorMap [6,0] = @morningSky8Max7, colorMap [6,1] = @morningSky8Min7 colorMap [7,0] = @morningSky8Max8, colorMap [7,1] = @morningSky8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Pastel 8") ; colorMap [0,0] = @pastel8Max1, colorMap [0,1] = @pastel8Min1 colorMap [1,0] = @pastel8Max2, colorMap [1,1] = @pastel8Min2 colorMap [2,0] = @pastel8Max3, colorMap [2,1] = @pastel8Min3 colorMap [3,0] = @pastel8Max4, colorMap [3,1] = @pastel8Min4 colorMap [4,0] = @pastel8Max5, colorMap [4,1] = @pastel8Min5 colorMap [5,0] = @pastel8Max6, colorMap [5,1] = @pastel8Min6 colorMap [6,0] = @pastel8Max7, colorMap [6,1] = @pastel8Min7 colorMap [7,0] = @pastel8Max8, colorMap [7,1] = @pastel8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Pastel Rainbow 8") ; Created by Angela Wilczynski. colorMap [0,0] = @pastelRainbow8Max1, colorMap [0,1] = @pastelRainbow8Min1 colorMap [1,0] = @pastelRainbow8Max2, colorMap [1,1] = @pastelRainbow8Min2 colorMap [2,0] = @pastelRainbow8Max3, colorMap [2,1] = @pastelRainbow8Min3 colorMap [3,0] = @pastelRainbow8Max4, colorMap [3,1] = @pastelRainbow8Min4 colorMap [4,0] = @pastelRainbow8Max5, colorMap [4,1] = @pastelRainbow8Min5 colorMap [5,0] = @pastelRainbow8Max6, colorMap [5,1] = @pastelRainbow8Min6 colorMap [6,0] = @pastelRainbow8Max7, colorMap [6,1] = @pastelRainbow8Min7 colorMap [7,0] = @pastelRainbow8Max8, colorMap [7,1] = @pastelRainbow8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Showtime 8") ; Created by Toby Marshall. colorMap [0,0] = @showtime8Max1, colorMap [0,1] = @showtime8Min1 colorMap [1,0] = @showtime8Max2, colorMap [1,1] = @showtime8Min2 colorMap [2,0] = @showtime8Max3, colorMap [2,1] = @showtime8Min3 colorMap [3,0] = @showtime8Max4, colorMap [3,1] = @showtime8Min4 colorMap [4,0] = @showtime8Max5, colorMap [4,1] = @showtime8Min5 colorMap [5,0] = @showtime8Max6, colorMap [5,1] = @showtime8Min6 colorMap [6,0] = @showtime8Max7, colorMap [6,1] = @showtime8Min7 colorMap [7,0] = @showtime8Max8, colorMap [7,1] = @showtime8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Soleil 8") ; Created by Toby Marshall. colorMap [0,0] = @soleil8Max1, colorMap [0,1] = @soleil8Min1 colorMap [1,0] = @soleil8Max2, colorMap [1,1] = @soleil8Min2 colorMap [2,0] = @soleil8Max3, colorMap [2,1] = @soleil8Min3 colorMap [3,0] = @soleil8Max4, colorMap [3,1] = @soleil8Min4 colorMap [4,0] = @soleil8Max5, colorMap [4,1] = @soleil8Min5 colorMap [5,0] = @soleil8Max6, colorMap [5,1] = @soleil8Min6 colorMap [6,0] = @soleil8Max7, colorMap [6,1] = @soleil8Min7 colorMap [7,0] = @soleil8Max8, colorMap [7,1] = @soleil8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Chill 8") ; Created by Toby Marshall. colorMap [0,0] = @chillMax1, colorMap [0,1] = @chillMin1 colorMap [1,0] = @chillMax2, colorMap [1,1] = @chillMin2 colorMap [2,0] = @chillMax3, colorMap [2,1] = @chillMin3 colorMap [3,0] = @chillMax4, colorMap [3,1] = @chillMin4 colorMap [4,0] = @chillMax5, colorMap [4,1] = @chillMin5 colorMap [5,0] = @chillMax6, colorMap [5,1] = @chillMin6 colorMap [6,0] = @chillMax7, colorMap [6,1] = @chillMin7 colorMap [7,0] = @chillMax8, colorMap [7,1] = @chillMin8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Cloud Nine 8") ; Created by Toby Marshall. colorMap [0,0] = @cloudNineMax1, colorMap [0,1] = @cloudNineMin1 colorMap [1,0] = @cloudNineMax2, colorMap [1,1] = @cloudNineMin2 colorMap [2,0] = @cloudNineMax3, colorMap [2,1] = @cloudNineMin3 colorMap [3,0] = @cloudNineMax4, colorMap [3,1] = @cloudNineMin4 colorMap [4,0] = @cloudNineMax5, colorMap [4,1] = @cloudNineMin5 colorMap [5,0] = @cloudNineMax6, colorMap [5,1] = @cloudNineMin6 colorMap [6,0] = @cloudNineMax7, colorMap [6,1] = @cloudNineMin7 colorMap [7,0] = @cloudNineMax8, colorMap [7,1] = @cloudNineMin8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "La Terra 8") ; Created by Toby Marshall. colorMap [0,0] = @laTerraMax1, colorMap [0,1] = @laTerraMin1 colorMap [1,0] = @laTerraMax2, colorMap [1,1] = @laTerraMin2 colorMap [2,0] = @laTerraMax3, colorMap [2,1] = @laTerraMin3 colorMap [3,0] = @laTerraMax4, colorMap [3,1] = @laTerraMin4 colorMap [4,0] = @laTerraMax5, colorMap [4,1] = @laTerraMin5 colorMap [5,0] = @laTerraMax6, colorMap [5,1] = @laTerraMin6 colorMap [6,0] = @laTerraMax7, colorMap [6,1] = @laTerraMin7 colorMap [7,0] = @laTerraMax8, colorMap [7,1] = @laTerraMin8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Santa Fe 8") ; Created by Toby Marshall. colorMap [0,0] = @santaFe8Max1, colorMap [0,1] = @santaFe8Min1 colorMap [1,0] = @santaFe8Max2, colorMap [1,1] = @santaFe8Min2 colorMap [2,0] = @santaFe8Max3, colorMap [2,1] = @santaFe8Min3 colorMap [3,0] = @santaFe8Max4, colorMap [3,1] = @santaFe8Min4 colorMap [4,0] = @santaFe8Max5, colorMap [4,1] = @santaFe8Min5 colorMap [5,0] = @santaFe8Max6, colorMap [5,1] = @santaFe8Min6 colorMap [6,0] = @santaFe8Max7, colorMap [6,1] = @santaFe8Min7 colorMap [7,0] = @santaFe8Max8, colorMap [7,1] = @santaFe8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Spring 8") ; Created by Toby Marshall. colorMap [0,0] = @spring8Max1, colorMap [0,1] = @spring8Min1 colorMap [1,0] = @spring8Max2, colorMap [1,1] = @spring8Min2 colorMap [2,0] = @spring8Max3, colorMap [2,1] = @spring8Min3 colorMap [3,0] = @spring8Max4, colorMap [3,1] = @spring8Min4 colorMap [4,0] = @spring8Max5, colorMap [4,1] = @spring8Min5 colorMap [5,0] = @spring8Max6, colorMap [5,1] = @spring8Min6 colorMap [6,0] = @spring8Max7, colorMap [6,1] = @spring8Min7 colorMap [7,0] = @spring8Max8, colorMap [7,1] = @spring8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Summer 8") ; Created by Toby Marshall. colorMap [0,0] = @summer8Max1, colorMap [0,1] = @summer8Min1 colorMap [1,0] = @summer8Max2, colorMap [1,1] = @summer8Min2 colorMap [2,0] = @summer8Max3, colorMap [2,1] = @summer8Min3 colorMap [3,0] = @summer8Max4, colorMap [3,1] = @summer8Min4 colorMap [4,0] = @summer8Max5, colorMap [4,1] = @summer8Min5 colorMap [5,0] = @summer8Max6, colorMap [5,1] = @summer8Min6 colorMap [6,0] = @summer8Max7, colorMap [6,1] = @summer8Min7 colorMap [7,0] = @summer8Max8, colorMap [7,1] = @summer8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Fall 8") ; Created by Toby Marshall. colorMap [0,0] = @fall8Max1, colorMap [0,1] = @fall8Min1 colorMap [1,0] = @fall8Max2, colorMap [1,1] = @fall8Min2 colorMap [2,0] = @fall8Max3, colorMap [2,1] = @fall8Min3 colorMap [3,0] = @fall8Max4, colorMap [3,1] = @fall8Min4 colorMap [4,0] = @fall8Max5, colorMap [4,1] = @fall8Min5 colorMap [5,0] = @fall8Max6, colorMap [5,1] = @fall8Min6 colorMap [6,0] = @fall8Max7, colorMap [6,1] = @fall8Min7 colorMap [7,0] = @fall8Max8, colorMap [7,1] = @fall8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Winter 8") ; Created by Toby Marshall. colorMap [0,0] = @winter8Max1, colorMap [0,1] = @winter8Min1 colorMap [1,0] = @winter8Max2, colorMap [1,1] = @winter8Min2 colorMap [2,0] = @winter8Max3, colorMap [2,1] = @winter8Min3 colorMap [3,0] = @winter8Max4, colorMap [3,1] = @winter8Min4 colorMap [4,0] = @winter8Max5, colorMap [4,1] = @winter8Min5 colorMap [5,0] = @winter8Max6, colorMap [5,1] = @winter8Min6 colorMap [6,0] = @winter8Max7, colorMap [6,1] = @winter8Min7 colorMap [7,0] = @winter8Max8, colorMap [7,1] = @winter8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Mojave 8") ; Created by Toby Marshall. colorMap [0,0] = @mojave8Max1, colorMap [0,1] = @mojave8Min1 colorMap [1,0] = @mojave8Max2, colorMap [1,1] = @mojave8Min2 colorMap [2,0] = @mojave8Max3, colorMap [2,1] = @mojave8Min3 colorMap [3,0] = @mojave8Max4, colorMap [3,1] = @mojave8Min4 colorMap [4,0] = @mojave8Max5, colorMap [4,1] = @mojave8Min5 colorMap [5,0] = @mojave8Max6, colorMap [5,1] = @mojave8Min6 colorMap [6,0] = @mojave8Max7, colorMap [6,1] = @mojave8Min7 colorMap [7,0] = @mojave8Max8, colorMap [7,1] = @mojave8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Gold/Green 8") ; colorMap [0,0] = @goldGreen8Max1, colorMap [0,1] = @goldGreen8Min1 colorMap [1,0] = @goldGreen8Max2, colorMap [1,1] = @goldGreen8Min2 colorMap [2,0] = @goldGreen8Max3, colorMap [2,1] = @goldGreen8Min3 colorMap [3,0] = @goldGreen8Max4, colorMap [3,1] = @goldGreen8Min4 colorMap [4,0] = @goldGreen8Max5, colorMap [4,1] = @goldGreen8Min5 colorMap [5,0] = @goldGreen8Max6, colorMap [5,1] = @goldGreen8Min6 colorMap [6,0] = @goldGreen8Max7, colorMap [6,1] = @goldGreen8Min7 colorMap [7,0] = @goldGreen8Max8, colorMap [7,1] = @goldGreen8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Gold/Green Alt 8") ; colorMap [0,0] = @goldGreenAlt8Max1, colorMap [0,1] = @goldGreenAlt8Min1 colorMap [1,0] = @goldGreenAlt8Max2, colorMap [1,1] = @goldGreenAlt8Min2 colorMap [2,0] = @goldGreenAlt8Max3, colorMap [2,1] = @goldGreenAlt8Min3 colorMap [3,0] = @goldGreenAlt8Max4, colorMap [3,1] = @goldGreenAlt8Min4 colorMap [4,0] = @goldGreenAlt8Max5, colorMap [4,1] = @goldGreenAlt8Min5 colorMap [5,0] = @goldGreenAlt8Max6, colorMap [5,1] = @goldGreenAlt8Min6 colorMap [6,0] = @goldGreenAlt8Max7, colorMap [6,1] = @goldGreenAlt8Min7 colorMap [7,0] = @goldGreenAlt8Max8, colorMap [7,1] = @goldGreenAlt8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Gold/Silver 8") ; colorMap [0,0] = @goldSilver8Max1, colorMap [0,1] = @goldSilver8Min1 colorMap [1,0] = @goldSilver8Max2, colorMap [1,1] = @goldSilver8Min2 colorMap [2,0] = @goldSilver8Max3, colorMap [2,1] = @goldSilver8Min3 colorMap [3,0] = @goldSilver8Max4, colorMap [3,1] = @goldSilver8Min4 colorMap [4,0] = @goldSilver8Max5, colorMap [4,1] = @goldSilver8Min5 colorMap [5,0] = @goldSilver8Max6, colorMap [5,1] = @goldSilver8Min6 colorMap [6,0] = @goldSilver8Max7, colorMap [6,1] = @goldSilver8Min7 colorMap [7,0] = @goldSilver8Max8, colorMap [7,1] = @goldSilver8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Silver/Blue 8") ; colorMap [0,0] = @silverBlue8Max1, colorMap [0,1] = @silverBlue8Min1 colorMap [1,0] = @silverBlue8Max2, colorMap [1,1] = @silverBlue8Min2 colorMap [2,0] = @silverBlue8Max3, colorMap [2,1] = @silverBlue8Min3 colorMap [3,0] = @silverBlue8Max4, colorMap [3,1] = @silverBlue8Min4 colorMap [4,0] = @silverBlue8Max5, colorMap [4,1] = @silverBlue8Min5 colorMap [5,0] = @silverBlue8Max6, colorMap [5,1] = @silverBlue8Min6 colorMap [6,0] = @silverBlue8Max7, colorMap [6,1] = @silverBlue8Min7 colorMap [7,0] = @silverBlue8Max8, colorMap [7,1] = @silverBlue8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Silver/Blue Alt 8") ; colorMap [0,0] = @silverBlueAlt8Max1, colorMap [0,1] = @silverBlueAlt8Min1 colorMap [1,0] = @silverBlueAlt8Max2, colorMap [1,1] = @silverBlueAlt8Min2 colorMap [2,0] = @silverBlueAlt8Max3, colorMap [2,1] = @silverBlueAlt8Min3 colorMap [3,0] = @silverBlueAlt8Max4, colorMap [3,1] = @silverBlueAlt8Min4 colorMap [4,0] = @silverBlueAlt8Max5, colorMap [4,1] = @silverBlueAlt8Min5 colorMap [5,0] = @silverBlueAlt8Max6, colorMap [5,1] = @silverBlueAlt8Min6 colorMap [6,0] = @silverBlueAlt8Max7, colorMap [6,1] = @silverBlueAlt8Min7 colorMap [7,0] = @silverBlueAlt8Max8, colorMap [7,1] = @silverBlueAlt8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Gold/Silver Alt 8") ; colorMap [0,0] = @goldSilverAlt8Max1, colorMap [0,1] = @goldSilverAlt8Min1 colorMap [1,0] = @goldSilverAlt8Max2, colorMap [1,1] = @goldSilverAlt8Min2 colorMap [2,0] = @goldSilverAlt8Max3, colorMap [2,1] = @goldSilverAlt8Min3 colorMap [3,0] = @goldSilverAlt8Max4, colorMap [3,1] = @goldSilverAlt8Min4 colorMap [4,0] = @goldSilverAlt8Max5, colorMap [4,1] = @goldSilverAlt8Min5 colorMap [5,0] = @goldSilverAlt8Max6, colorMap [5,1] = @goldSilverAlt8Min6 colorMap [6,0] = @goldSilverAlt8Max7, colorMap [6,1] = @goldSilverAlt8Min7 colorMap [7,0] = @goldSilverAlt8Max8, colorMap [7,1] = @goldSilverAlt8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Purple/Yellow 8") ; colorMap [0,0] = @purpleYellow8Max1, colorMap [0,1] = @purpleYellow8Min1 colorMap [1,0] = @purpleYellow8Max2, colorMap [1,1] = @purpleYellow8Min2 colorMap [2,0] = @purpleYellow8Max3, colorMap [2,1] = @purpleYellow8Min3 colorMap [3,0] = @purpleYellow8Max4, colorMap [3,1] = @purpleYellow8Min4 colorMap [4,0] = @purpleYellow8Max5, colorMap [4,1] = @purpleYellow8Min5 colorMap [5,0] = @purpleYellow8Max6, colorMap [5,1] = @purpleYellow8Min6 colorMap [6,0] = @purpleYellow8Max7, colorMap [6,1] = @purpleYellow8Min7 colorMap [7,0] = @purpleYellow8Max8, colorMap [7,1] = @purpleYellow8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Purple/Yellow Alt 8") ; colorMap [0,0] = @purpleYellowAlt8Max1, colorMap [0,1] = @purpleYellowAlt8Min1 colorMap [1,0] = @purpleYellowAlt8Max2, colorMap [1,1] = @purpleYellowAlt8Min2 colorMap [2,0] = @purpleYellowAlt8Max3, colorMap [2,1] = @purpleYellowAlt8Min3 colorMap [3,0] = @purpleYellowAlt8Max4, colorMap [3,1] = @purpleYellowAlt8Min4 colorMap [4,0] = @purpleYellowAlt8Max5, colorMap [4,1] = @purpleYellowAlt8Min5 colorMap [5,0] = @purpleYellowAlt8Max6, colorMap [5,1] = @purpleYellowAlt8Min6 colorMap [6,0] = @purpleYellowAlt8Max7, colorMap [6,1] = @purpleYellowAlt8Min7 colorMap [7,0] = @purpleYellowAlt8Max8, colorMap [7,1] = @purpleYellowAlt8Min8 ranges = 8 offset = @colorOffset elseif (@colorPreset == "Fourth of July 3") ; colorMap [0,0] = @fourthOfJuly3Max1, colorMap [0,1] = @fourthOfJuly3Min1 colorMap [1,0] = @fourthOfJuly3Max2, colorMap [1,1] = @fourthOfJuly3Min2 colorMap [2,0] = @fourthOfJuly3Max3, colorMap [2,1] = @fourthOfJuly3Min3 ranges = 3 offset = @colorOffset elseif (@colorPreset == "Blue/Silver 2") ; colorMap [0,0] = @blueSilver2Max1, colorMap [0,1] = @blueSilver2Min1 colorMap [1,0] = @blueSilver2Max2, colorMap [1,1] = @blueSilver2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Blue/White 2") ; colorMap [0,0] = @blueWhite2Max1, colorMap [0,1] = @blueWhite2Min1 colorMap [1,0] = @blueWhite2Max2, colorMap [1,1] = @blueWhite2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Cyan/Magenta 2") ; colorMap [0,0] = @cyanMagenta2Max1, colorMap [0,1] = @cyanMagenta2Min1 colorMap [1,0] = @cyanMagenta2Max2, colorMap [1,1] = @cyanMagenta2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Cyan/Yellow 2") ; colorMap [0,0] = @cyanYellow2Max1, colorMap [0,1] = @cyanYellow2Min1 colorMap [1,0] = @cyanYellow2Max2, colorMap [1,1] = @cyanYellow2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Gold/Green 2") ; colorMap [0,0] = @goldGreen2Max1, colorMap [0,1] = @goldGreen2Min1 colorMap [1,0] = @goldGreen2Max2, colorMap [1,1] = @goldGreen2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Purple/Yellow 2") ; colorMap [0,0] = @purpleYellow2Max1, colorMap [0,1] = @purpleYellow2Min1 colorMap [1,0] = @purpleYellow2Max2, colorMap [1,1] = @purpleYellow2Min2 ranges = 2 offset = @colorOffset elseif (@colorPreset == "Red/Tan 2") ; colorMap [0,0] = @redTan2Max1, colorMap [0,1] = @redTan2Min1 colorMap [1,0] = @redTan2Max2, colorMap [1,1] = @redTan2Min2 ranges = 2 offset = @colorOffset endif if (@perturbRanges == "8 Range Custom" && ranges == 8) ; If we are using 8 ranges, then take into account ; the rangeOrdering parameter. int range[8] ; Convert range ordering from 12345678 to .12345678 float ordering = @rangeOrder / 100000000 ; Convert .12345678 to 1.2345678 ordering = ordering * 10 ; Get the first digit int range[0] = trunc (ordering) ; Subract the first digit, i.e. 1.2345678 becomes .2345678 ordering = ordering - range[0] ; Get the second digit ordering = ordering * 10 int range[1] = trunc (ordering) ordering = ordering - range[1] ; Get the third digit ordering = ordering * 10 int range[2] = trunc (ordering) ordering = ordering - range[2] ; Get the fourth digit ordering = ordering * 10 int range[3] = trunc (ordering) ordering = ordering - range[3] ; Get the fifth digit ordering = ordering * 10 int range[4] = trunc (ordering) ordering = ordering - range[4] ; Get the sixth digit ordering = ordering * 10 int range[5] = trunc (ordering) ordering = ordering - range[5] ; Get the seventh digit ordering = ordering * 10 int range[6] = trunc (ordering) ordering = ordering - range[6] ; Get the eighth digit ordering = ordering * 10 int range[7] = round (ordering) ordering = ordering - range[7] ; Save the original order of the maps. color tempMap[8,2] tempMap[0,0] = colorMap[0,0], tempMap[0,1] = colorMap[0,1] tempMap[1,0] = colorMap[1,0], tempMap[1,1] = colorMap[1,1] tempMap[2,0] = colorMap[2,0], tempMap[2,1] = colorMap[2,1] tempMap[3,0] = colorMap[3,0], tempMap[3,1] = colorMap[3,1] tempMap[4,0] = colorMap[4,0], tempMap[4,1] = colorMap[4,1] tempMap[5,0] = colorMap[5,0], tempMap[5,1] = colorMap[5,1] tempMap[6,0] = colorMap[6,0], tempMap[6,1] = colorMap[6,1] tempMap[7,0] = colorMap[7,0], tempMap[7,1] = colorMap[7,1] ; Reorder the maps according to the rangeOrder parameter. colorMap[0,0] = tempMap[range[0]-1,0], colorMap[0,1] = tempMap[range[0]-1,1] colorMap[1,0] = tempMap[range[1]-1,0], colorMap[1,1] = tempMap[range[1]-1,1] colorMap[2,0] = tempMap[range[2]-1,0], colorMap[2,1] = tempMap[range[2]-1,1] colorMap[3,0] = tempMap[range[3]-1,0], colorMap[3,1] = tempMap[range[3]-1,1] colorMap[4,0] = tempMap[range[4]-1,0], colorMap[4,1] = tempMap[range[4]-1,1] colorMap[5,0] = tempMap[range[5]-1,0], colorMap[5,1] = tempMap[range[5]-1,1] colorMap[6,0] = tempMap[range[6]-1,0], colorMap[6,1] = tempMap[range[6]-1,1] colorMap[7,0] = tempMap[range[7]-1,0], colorMap[7,1] = tempMap[range[7]-1,1] endif init: int rangeNum = 0 int iter = 0 int trapIter = 0 float minDist = 0.0 float x = 0.0 float y = 0.0 float angle = 0.0 float texture = 0.0 float colorIndex = 0.0 float indexFactor = 0.0 float trapWidth = 0.0 float bwidth = 0.0 float noise = 0.0 float sum = 0.0 complex p = 0 complex pat_p = 0.0 color trappedColor = rgb (0,0,0) bool trapped = false bool trappedOnce = false bool useBorder = false bool masked = false complex trappedZ = (0.0,0.0) complex ztest = (0.0,0.0) complex ztest2 = (0.0,0.0) complex z1 = 0 complex z1p = 0 complex z1q = 0 complex z2 = 0 complex z3 = 0 complex z4 = 0 complex nuvar = 0 bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z 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 if (@borderWidth > 0.0) && (@colorPreset == "Gradient") && \ (@colorMode != "Normal") bwidth = @borderWidth else bwidth = 0.0 endif ztest = z1 - @offset ztest = ztest*exp(1i*pi/180*@rotation)/@size x = sqrt(@ratio)*real((@xfunc(ztest-@x1)*@x2)^@x3) y = 1/sqrt(@ratio)*imag((@yfunc(ztest-@y1)*@y2)^@y3) ; Check the trap mode. If trapMode == "First Iteration", then ; everything is normal. If trapMode == "Last Iteration", then ; we need to keep looping so that we can capture the "Last" ; value that falls in the trap range. This will put larger ; shapes below smaller ones. if @trapMode == "Last Iteration" trapped = false endif ; if !trapped && iter >= @skip && iter < @skip2 if @trapType == "Alien Waves" ztest2 = @fn1(@fn2(((y*@shapeAdjust1)/@fn5(x*@shapeAdjust4))\ ^@fn4(y^@shapeAdjust2)-@fn6(x^@shapeAdjust5)-\ @fn3(y+(1-@shapeAdjust3))))-@distort elseif @trapType == "Bad Hair Day" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn5(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4)))-@distort elseif @trapType == "Barbed Wire" ztest2 = @fn1(abs(@fn2(x^@shapeAdjust4*@shapeAdjust1))+ \ abs(@fn3((y*@shapeAdjust3)^@fn4(y*@shapeAdjust2)))-1)- @distort elseif @trapType == "Baubles & Bangles" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust1)-1))^2+@fn3 \ (y^2+(1-@shapeAdjust2))* @fn4(y^(.2*@shapeAdjust3)-1) \ *@fn5(y*@shapeAdjust4-2)* @fn6(y+(3-@shapeAdjust5)))-@distort elseif @trapType == "Bighorn Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)+(@fn3(y^2*@shapeAdjust2)* \ @fn4(y^2+(1-@shapeAdjust6)))*@fn5(y^(5-@shapeAdjust7))/ \ @fn6(x^(2*@shapeAdjust3))*@fn7(x^2*@shapeAdjust4-@fn8 \ (y^@shapeAdjust5)))-@distort elseif @trapType == "Binary Curve" ztest2 = @fn1((@fn2(x^(3-@shapeAdjust5))-@shapeAdjust1)/@fn3 \ (x^2-2*@shapeAdjust3)^2+ @fn4(y^(2-@shapeAdjust4)- \ @shapeAdjust2^2)^2)-@distort elseif @trapType == "Bird of Paradise" ztest2 = @fn1(atan(@fn4((x*@shapeAdjust1)*@fn3(y^@shapeAdjust3)))- \ @fn2(y*@shapeAdjust2))-@distort elseif @trapType == "Cabuchon Curve" ztest2 = @fn1(@fn2(x^(@shapeAdjust3)))-@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((x^(2*@shapeAdjust7)) \ +@fn6(y^2+(1-@shapeAdjust6)))/@shapeAdjust2^2-@fn5 \ (x*@shapeAdjust5)-@distort elseif @trapType == "Cardinal Points Curve" ztest2 = @fn1(@fn2(x^4+(1-@shapeAdjust2))-@fn3(y^(3+@shapeAdjust3))-2* \ @fn4(abs(x^(3-@shapeAdjust4))-@fn5(y^2*@shapeAdjust1)))-@distort elseif @trapType == "Chaos Adorned" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))^ \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Chaos Unleashed" ztest2 = @fn1(@shapeAdjust1^4*@fn2((y^@shapeAdjust3)^@fn5 \ (y*@shapeAdjust4))-@shapeAdjust2^2*@fn3((x^@shapeAdjust5) \ ^@fn6(x+(1-@shapeAdjust6)))* (2*@shapeAdjust1-@fn4 \ (x^@shapeAdjust7)))-@distort elseif @trapType == "Church Key Curve" ztest2 = @fn1(@fn2((x*@shapeAdjust4)^@shapeAdjust1))+ \ @fn3(y*2.4*@shapeAdjust2)^@fn4(y-(1-@shapeAdjust3))-@distort elseif @trapType == "Compass Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust1))*(@fn3(x^2*@shapeAdjust3)+ \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust5)))-@distort elseif @trapType == "Conductor's Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)-@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Conjoined Circle Curve" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3(y^(2*@shapeAdjust3)))*\ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))-@shapeAdjust1- \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Cooking Pot Curve" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)-(@shapeAdjust1^2- \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*(@shapeAdjust5)))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Cosmic Rays" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))*@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)/@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Crochet Hooks" ztest2 = @fn1(@fn2(y^3*@shapeAdjust1)+(@fn3((x+(1-@shapeAdjust2))^ \ @fn5(y^@shapeAdjust3)/@fn4((x*@shapeAdjust4)^@shapeAdjust5))))- \ @distort elseif @trapType == "Crosshatch Curve" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)* \ @fn3(y+(1-@shapeAdjust3))))-@distort elseif @trapType == "D&U Curve" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))+@fn3((y^(2*@shapeAdjust4))^ \ @fn4(y*@shapeAdjust2))-@shapeAdjust3)-@distort elseif @trapType == "Dogleg Curve" ztest2 = @fn1(atan(@fn4((x*@shapeAdjust1)+@fn3(y^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(y^@shapeAdjust3))-@distort elseif @trapType == "Double Circle Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))*\ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Double Trine" ztest2 = @fn1(atan(@fn4((x*@shapeAdjust1)*@fn3(y^@shapeAdjust3)))- \ @fn2(y*@shapeAdjust2)/@fn5(x^@shapeAdjust4))-@distort elseif @trapType == "Dribs & Drabs" ztest2 = @fn1((@fn2(x^@shapeAdjust2)+@fn3(y^(2+@shapeAdjust3))^ \ @fn6(y^@shapeAdjust6)-4*@fn4(x^(3*@shapeAdjust4))* \ @fn5(y^(2*@shapeAdjust5))*@shapeAdjust1^2))-@distort elseif @trapType == "Driftwood Curve" ztest2 = @fn1(((@fn2(x^@shapeAdjust3)-.5*@shapeAdjust10)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(y+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust11)+ \ @fn6(y^(1+@shapeAdjust7)))+4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-1.5*@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Dulcimer Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))*\ (@fn4(y^@shapeAdjust4)*@fn5(y^@shapeAdjust5))-@shapeAdjust1* \ abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Eye of the Needle" ztest2 = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2*@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Exclamation Point" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)*@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Fatback" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust3))+ \ @fn4(y-@shapeAdjust4)/@fn5(y^(3*@shapeAdjust2)))-@distort elseif @trapType == "Floreate Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)+@fn3((y*@shapeAdjust4)^ \ @fn4(y*@shapeAdjust2))-@shapeAdjust3)-@distort elseif @trapType == "Glyph Curve" ztest2 = @fn1(((@fn2(x*@shapeAdjust3)-@shapeAdjust2)^2- \ @fn3(y^2*@shapeAdjust4))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Gravity Waves" ztest2 = @fn1(atan(@fn4((x^(2*@shapeAdjust1))+@fn3(y^@shapeAdjust4)* \ 2*@shapeAdjust2))-@fn2(y^@shapeAdjust3))-@distort elseif @trapType == "Harpoon Curve" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust3)))*@fn3(y^2*@shapeAdjust4)+ \ @shapeAdjust1^2-@fn4((x*@shapeAdjust7)^@fn6(y*@shapeAdjust6))- \ @shapeAdjust2^2-@fn5(x^@shapeAdjust5)-@distort elseif @trapType == "Hook & Spar" ztest2 = @fn1(@fn2(y^@shapeAdjust1))-@fn3(y*@shapeAdjust2)^ \ @fn4(x^@shapeAdjust3)-@distort elseif @trapType == "Hoops & Plates" ztest2 = @fn1((@fn2((x+(1-@shapeAdjust4))^@fn5(x+(1-@shapeAdjust4)))+ \ @fn3(y^2*@shapeAdjust2)+@shapeAdjust1)^2-4*@shapeAdjust1^2* \ @fn4(x^@shapeAdjust3)-1)-@distort elseif @trapType == "Horned Torus Curve" ztest2 = @fn1(@fn2(y^2*@shapeAdjust1)-(@fn3(x^2*@shapeAdjust2)+ \ @fn4(y^2+(1-@shapeAdjust6)))*@fn5(x^(4*@shapeAdjust7))/ \ @fn6(x^(3-@shapeAdjust3))/@fn7(x^2*@shapeAdjust4/@fn8 \ (y^@shapeAdjust5)))-@distort elseif @trapType == "Indented Parabola" ztest2 = @fn1(@fn2(y^@shapeAdjust1))+@fn3(x*.2*@shapeAdjust2)- \ @fn4(y^(2*@shapeAdjust3))-@distort elseif @trapType == "Intersecting Ovals" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Leaves of Grass" ztest2 = @fn1(@fn2(y^@shapeAdjust1))-@fn3(x*@shapeAdjust2)^ \ @fn4(y^@shapeAdjust3)-@distort elseif @trapType == "Lipped Ovals" ztest2 = @fn1(abs(@fn2(x^2*@shapeAdjust3*@shapeAdjust1))+ \ abs(@fn3(y^@shapeAdjust2))-1)-@distort elseif @trapType == "M Curve" ztest2 = @fn1(@fn2(y^@shapeAdjust1))+@fn3(@shapeAdjust4*x^(3*@shapeAdjust2))-\ @fn4(y^(2*@shapeAdjust3))-@distort elseif @trapType == "Mercury Curve" ztest2 = @fn1(((@fn2(x*@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2*@shapeAdjust4))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(x^(2*@shapeAdjust9)))-@distort elseif @trapType == "Miscellanea" ztest2 = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5((y*@shapeAdjust10)^ \ (@fn10(x^@shapeAdjust11)))-@shapeAdjust2)+4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3) \ +2*@fn8(y^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Moorish Fantasy" ztest2 = @fn1(@fn2((x*@shapeAdjust4)^@shapeAdjust1))- \ @fn3(y*@shapeAdjust2)^@fn4(y-(1-@shapeAdjust3))-@distort elseif @trapType == "Mousehead Curve" ztest2 = @fn1(((@fn2(x^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+ \ @fn6(y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1))-@shapeAdjust2))* \ @fn8(y^(2*@shapeAdjust9)))-@distort elseif @trapType == "Nested Ovals" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1^2- \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Nesting Birds Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((.2*y*@shapeAdjust6)^ \ @fn9(y*@shapeAdjust2))*@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))/@fn6(x^(2*@shapeAdjust8))* \ @fn7(x^2*(3*@shapeAdjust4)-@fn8(.5*y^@shapeAdjust5)))-@distort elseif @trapType == "O-nami Curve" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))/ \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Odds 'n Ends" ztest2 = @fn1((@fn2(y^(2*@shapeAdjust7))-@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1*@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2-@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Omega Curve" ztest2 = @fn1(atan(@fn4((x^(2*@shapeAdjust1))/@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust2))+@fn2(x^@shapeAdjust3))-@distort elseif @trapType == "Ornate Curve" ztest2 = @fn1((@fn2(y^(2*@shapeAdjust7))/@fn3(x^2+(1-@shapeAdjust8)))* \ @fn4((x^@shapeAdjust9)-@fn9(y*@shapeAdjust4))* \ (@shapeAdjust1-@fn5(x*@shapeAdjust10)-@shapeAdjust2)-4* \ (@fn6(x^2*@shapeAdjust6)+@fn7(y^2*@shapeAdjust3)-2*@fn8 \ (x^@shapeAdjust5))^2*@shapeAdjust1)-@distort elseif @trapType == "Ovals" ztest2 = @fn1(@fn2(x*@shapeAdjust2-@fn6(y*@shapeAdjust4))- \ @fn3(x^2*@shapeAdjust3+@fn4(y^(2*@shapeAdjust5)))-2* \ @shapeAdjust1*@fn5(y^(2*@shapeAdjust6)))-@distort elseif @trapType == "Ovate Waves" ztest2 = @fn1(@fn2(y^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(y^2*@shapeAdjust4)-@fn4((y*@shapeAdjust7)^ \ @fn6(y^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust6)))-@distort elseif @trapType == "Ovate Waves 2" ztest2 = @fn1(@fn2(y^4*@shapeAdjust3)-@shapeAdjust1^2* \ @fn3(y^2*@shapeAdjust4)-@fn4((x*@shapeAdjust7)^ \ @fn6(x^@shapeAdjust5))+@shapeAdjust2^2* \ @fn5(x^(2*@shapeAdjust6)))-@distort elseif @trapType == "Pacifier Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)/@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Parenthetical Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))-atan \ (@fn4(y^@shapeAdjust4)/@fn5(y^@shapeAdjust5))+@shapeAdjust1* \ abs(@fn6(y+(1-@shapeAdjust6))))-@distort elseif @trapType == "Pincers" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)/@fn3(y^(1+@shapeAdjust3))+ \ @fn4((y^@shapeAdjust4)^@fn6(y*@shapeAdjust2))/ \ @fn5(y^2+(1-@shapeAdjust5)))-@distort elseif @trapType == "Pisces Curve" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust1))-1)^2-@fn3(.6*y^2+ \ (1-@shapeAdjust2))* @fn4(y^@shapeAdjust3-1)* \ @fn5(y*@shapeAdjust4-1)* @fn6(3*y+(6-@shapeAdjust5)))-@distort elseif @trapType == "Plane & Tail" ztest2 = @fn1(@shapeAdjust1^4/@fn2((x^(2*@shapeAdjust3)) \ +@fn5(y^@shapeAdjust4))* @shapeAdjust2^2- \ @fn3((x^(2*@shapeAdjust5))^@fn6(x+(1-@shapeAdjust6)))/\ (2*@shapeAdjust1/@fn4(y^@shapeAdjust7)))-@distort elseif @trapType == "Plane & Tail 2" ztest2 = @fn1(@shapeAdjust1^4/@fn2((x^(2*@shapeAdjust3)) \ +@fn5(y^@shapeAdjust4)) *@shapeAdjust2^2- \ @fn3((x^(2*@shapeAdjust5))^ @fn6(x+(1-@shapeAdjust6))) \ /(2*@shapeAdjust1-@fn4(y^@shapeAdjust7)))-@distort elseif @trapType == "Seagull Curve" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(y^(5-@shapeAdjust3))+@fn5(x+(1-@shapeAdjust5))+ \ @fn4(y^(7-@shapeAdjust4))))-@distort elseif @trapType == "Simple Curve" ztest2 = @fn1(atan(@fn4((x^@shapeAdjust4*@shapeAdjust1)- \ @fn3(y^@shapeAdjust5)*@shapeAdjust2))-@fn2(y^@shapeAdjust3))- \ @distort elseif @trapType == "Smoke Rings" ztest2 = @fn1(@shapeAdjust1^4+@fn2((@shapeAdjust8*x^(2*@shapeAdjust3))* \ @fn5(y^@shapeAdjust4))- @shapeAdjust2^2- \ @fn3((x^(@shapeAdjust5))^@fn6(x+(1-@shapeAdjust6))) \ /(2*@shapeAdjust1-@fn4(y^@shapeAdjust7)))-@distort elseif @trapType == "Sneering Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)-(@fn3((x*.2*@shapeAdjust6)* \ @fn9(y*@shapeAdjust2))-@fn4(y^2+(1-@shapeAdjust7)))* \ @fn5(y^(4*@shapeAdjust3))-@fn6(x^(2*@shapeAdjust8))/\ @fn7(x^(2*@shapeAdjust4)+@fn8(y^(.5*@shapeAdjust5))))-@distort elseif @trapType == "Space Debris" ztest2 = @fn1(@shapeAdjust1^4*@fn2((y^2*@shapeAdjust3)/ \ @fn5(x^2*@shapeAdjust4))- @shapeAdjust2^2* \ @fn3((x^@shapeAdjust5)^@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Spectacles Curve" ztest2 = @fn1(@fn2(x^4*@shapeAdjust2)+@fn3(y^4*@shapeAdjust3)-2* \ @shapeAdjust5*@fn4(abs(x^@shapeAdjust4)- \ @fn5(y^2*@shapeAdjust1)))-@distort elseif @trapType == "Spiked Cusp" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)* \ @fn3(x*@shapeAdjust3)))-@distort elseif @trapType == "Squared Circle Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust1))*(@fn3(x^2*@shapeAdjust3)- \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2/2+ \ @fn5(y^(4*@shapeAdjust5)))-@distort elseif @trapType == "Squeezed Rectangle Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust2)-@shapeAdjust1* \ (@fn3(y^(5-@shapeAdjust3))-@fn5(x^@shapeAdjust5)- \ @fn4(y^(7-@shapeAdjust4))))-@distort elseif @trapType == "Swallow Curve" ztest2 = @fn1(@fn2((x^2*@shapeAdjust2))-@fn3((y^2*@shapeAdjust3)))^2-4* \ @shapeAdjust1*@fn4((x^@shapeAdjust5^@fn6(y^2*@shapeAdjust4))* \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Stretched Oval Curve" ztest2 = @fn1(@shapeAdjust1^4+@fn2((y^(2*@shapeAdjust3))/@fn5 \ (x^(2*@shapeAdjust4)))-@shapeAdjust2^2* \ @fn3((x^(2*@shapeAdjust5))*@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Switchback Curve" ztest2 = @fn1(atan(@fn4((x^(2*@shapeAdjust1))*@fn3(y^@shapeAdjust4)* \ @shapeAdjust2))-@fn2(x^@shapeAdjust3))-@distort elseif @trapType == "Taurus Curve" ztest2 = @fn1(@fn2(x^(@shapeAdjust3)))-@fn3(y^(2*@shapeAdjust4))/ \ @shapeAdjust1^2-@fn4((x^(2*@shapeAdjust7))+ \ @fn6(y^2+(1-@shapeAdjust6)))/@shapeAdjust2^2* \ @fn5(x^@shapeAdjust5)-@distort elseif @trapType == "Teardrop Curve" ztest2 = @fn1(@shapeAdjust1^4*@fn2((y^(2*@shapeAdjust3))/@fn5(x^2*@shapeAdjust4))- \ @shapeAdjust2^2*@fn3((x^(2*@shapeAdjust5))/@fn6(x+(1-@shapeAdjust6)))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust7)))-@distort elseif @trapType == "Tennis Anyone?" ztest2 = @fn1(@fn2(x^2*@shapeAdjust3)+2*@shapeAdjust1* \ @fn3((x^@shapeAdjust7)-@fn6(y*@shapeAdjust4))- \ @shapeAdjust1^2)^2-@fn4(y^2*@shapeAdjust5)* \ (@shapeAdjust2^2-@fn5(x^2*@shapeAdjust6))- @distort elseif @trapType == "Thick 'n Thin" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn4(y^@shapeAdjust2)/ \ @fn3(y+(1-@shapeAdjust3))))-@distort elseif @trapType == "Thorned Cross" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn5(y^@shapeAdjust2)* \ @fn3(x*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4)))-@distort elseif @trapType == "Three Point Curve" ztest2 = @fn1((@fn2(x^2)-@shapeAdjust1^2)*@fn3(x^2-@shapeAdjust3)^2+ \ @fn4(y^(4-@shapeAdjust4)-@shapeAdjust2^2)^2)- @distort elseif @trapType == "Tsuba curve" ztest2 = @fn1(@fn2(y^(2*@shapeAdjust2))-(.4*@shapeAdjust1^2* \ @fn3(x^2*@shapeAdjust3)))-(@fn4(x^(2*@shapeAdjust5))+2* \ @shapeAdjust4*@fn5(y^(2*@shapeAdjust6))-.5*@shapeAdjust1^2)^2- \ @distort elseif @trapType == "Wheel in Trough" ztest2 = @fn1((@fn2((x*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(y^2*@shapeAdjust3))*atan2(@fn4(y^@shapeAdjust7)* \ @fn5(x^(1+@shapeAdjust5)))-@shapeAdjust1* \ @fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Whip Curve" ztest2 = @fn1(@fn2((y*@shapeAdjust1)^@fn6(y^@shapeAdjust2)* \ @fn3(y*@shapeAdjust3))+@fn4(x+(1-@shapeAdjust4))- \ @fn5(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Ampersand Curve" ztest2 = @fn1((@fn2(y^(2*@shapeAdjust3))-@fn3(x^2+(1-@shapeAdjust4)))* \ @fn4((x^@shapeAdjust5)-1)*(@shapeAdjust1* \ @fn5(x)-@shapeAdjust2)- 4*(@fn6(x^2*@shapeAdjust6)+ \ @fn7(y^(2*@shapeAdjust7))-2* @fn8(x^@shapeAdjust8))^2)-@distort elseif @trapType == "ArcTangent" ztest2 = @fn1(atan(@fn2(x^@shapeAdjust1*@shapeAdjust3))- \ @fn3(y^@shapeAdjust2))-@distort elseif @trapType == "Bean Curve" ztest2 = @fn1(@fn2(x^4*@shapeAdjust1)+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^(2*@shapeAdjust3))+@fn5(y^4*@shapeAdjust4)- \ @fn6(x^@shapeAdjust5)*@fn7(x^(2*@shapeAdjust6)+ \ @fn8(y^2+(1-@shapeAdjust7))))-@distort elseif @trapType == "Bicorn Curve" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1^2-@fn3(x^2)))- \ (@fn4(x^(2*@shapeAdjust3))+2*@shapeAdjust1* \ @fn5(y^@shapeAdjust4)-@shapeAdjust1^2)^2-@distort elseif @trapType == "Bicuspid Curve" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust2)-@shapeAdjust1^2)* \ @fn3(x^@shapeAdjust3-@shapeAdjust1)^2+ \ @fn4(y^(2*@shapeAdjust4)-@shapeAdjust1^2)^2)-@distort elseif @trapType == "Bifoliate" ztest2 = @fn1(@fn2(x^4*@shapeAdjust2)+@fn3(y^4*@shapeAdjust3)- \ 2*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(2*@shapeAdjust5))))-@distort elseif @trapType == "Bifolium" ztest2 = @fn1(@fn2(x^(1+@shapeAdjust2))+@fn3(y^2+(1-@shapeAdjust3)))^2- \ 4*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(3-@shapeAdjust5)))-@distort elseif @trapType == "Bow" ztest2 = @fn1(@fn2(x^4*@shapeAdjust1)-@fn3(x^2+(1-@shapeAdjust2))* \ @fn4(y^@shapeAdjust3)+@fn5(y^3*@shapeAdjust4))-@distort elseif @trapType == "Butterfly Curve" ztest2 = @fn1(@fn2(y^(6*@shapeAdjust1))-(@fn3(x^2+(1-@shapeAdjust2))- \ @fn4(x^6+(1-@shapeAdjust3))))-@distort elseif @trapType == "Cassini Ovals" ztest2 = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^2*@shapeAdjust4)+ \ @shapeAdjust1^2)^2-4*@shapeAdjust1^2* \ @fn4(x^(3-@shapeAdjust5))-@shapeAdjust2^4)-@distort elseif @trapType == "Circle" ztest2 = @fn1(@fn2((x*@shapeAdjust1)^(3-@shapeAdjust2))+ \ @fn3((y*@shapeAdjust3)^(3-@shapeAdjust4))-1)-@distort elseif @trapType == "Cissoid of Diocles" ztest2 = @fn1(@fn2(x^@shapeAdjust2)*@fn3(x^2+(1-@shapeAdjust3)+ \ @fn4(y^2*@shapeAdjust4))-2*@shapeAdjust1* \ @fn5(y^2+(1-@shapeAdjust5)))-@distort elseif @trapType == "Cochleoid" ztest2 = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))* \ atan(@fn4(y^@shapeAdjust4)/@fn5(x^@shapeAdjust5))- \ @shapeAdjust1*abs(@fn6(y^@shapeAdjust6)))-@distort elseif @trapType == "Cocked Hat" ztest2 = @fn1(@fn2(x^2*@shapeAdjust3)+2*@shapeAdjust1*@fn3(y^@shapeAdjust4)- \ @shapeAdjust1^2)^2-@fn4(y^(3-@shapeAdjust5))* \ (@shapeAdjust2^2-@fn5(x^2*@shapeAdjust6))-@distort elseif @trapType == "Conchoid of Nicomedes" ztest2 = @fn1((@fn2(x-@shapeAdjust1))^2*(@fn3(x^(2*@shapeAdjust3))+ \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(x^2*@shapeAdjust5))-@distort elseif @trapType == "Cruciform" ztest2 = @fn1(@fn2(x^2*@shapeAdjust3)*@fn3(y^(1+@shapeAdjust4))- \ @shapeAdjust1^2*@fn4(x^(1+@shapeAdjust5))-@shapeAdjust2^2* \ @fn5(y^(3-@shapeAdjust6)))-@distort elseif @trapType == "Devil's Curve" ztest2 = @fn1(@fn2(y^(3+@shapeAdjust4))-@shapeAdjust1^2* \ @fn3(y^2+(1-@shapeAdjust5))-@fn4(x^4*@shapeAdjust3)+ \ @shapeAdjust2^2*@fn5(x^(1+@shapeAdjust6)))-@distort elseif @trapType == "Diamond" ztest2 = @fn1(abs(@fn2(x*@shapeAdjust1))+abs(@fn3(y^@shapeAdjust2))-1)- \ @distort elseif @trapType == "Dumbbell Curve" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(x^(5-@shapeAdjust3))-@fn4(x^(7-@shapeAdjust4))))-@distort elseif @trapType == "Dürer's Conchoid" ztest2 = @fn1(2*@fn2(y^(1+@shapeAdjust3))*(@fn3(x^(1+@shapeAdjust4))+ \ @fn4(y^2*@shapeAdjust5))-2*@shapeAdjust2* \ @fn5(y^2+(1-@shapeAdjust6))*(@fn6(x^@shapeAdjust7)+ \ @fn7(y+(1-@shapeAdjust8)))+(@shapeAdjust2^2-3*@shapeAdjust1^2)* \ @fn8(y^(1+@shapeAdjust9))-@shapeAdjust1^2* \ @fn9(x^2*@shapeAdjust10)+2*@shapeAdjust1^2*@shapeAdjust2* \ (@fn10(x^@shapeAdjust11)+@fn11(y^@shapeAdjust12))+ \ @shapeAdjust1^2*(@shapeAdjust1^2-@shapeAdjust2^2))-@distort elseif @trapType == "Eight Curve" ztest2 = @fn1(@fn2(x^(3+@shapeAdjust2))-@shapeAdjust1^2* \ (@fn3(x^2*@shapeAdjust3)-@fn4(y^2*@shapeAdjust4)))-@distort elseif @trapType == "Happy Accident" ztest2 = @fn1((@fn2((x*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(y^2*@shapeAdjust3))*atan2(@fn4(y^@shapeAdjust7)* \ @fn5(x^@shapeAdjust5))-@shapeAdjust1*@fn6 \ (y^@shapeAdjust6))-@distort elseif @trapType == "Hyperbola" ztest2 = @fn1(@fn2((x*@shapeAdjust1)^(1+@shapeAdjust2))- \ @fn3((y*@shapeAdjust3)^(1+@shapeAdjust4)) + 1)-@distort elseif @trapType == "Kappa Curve" ztest2 = @fn1((@fn2(x^(3-@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))* \ @fn4(y^(1+@shapeAdjust4))-@shapeAdjust1^2* \ @fn5(x^2*@shapeAdjust5))-@distort elseif @trapType == "Keppler's Folium" ztest2 = @fn1(((@fn2(x^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+@fn6 \ (y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1)))-@shapeAdjust2)* \ @fn8(y^(2*@shapeAdjust9)))-@distort elseif @trapType == "Keratoid Cusp" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))*@fn3(y^@shapeAdjust2)+ \ @fn4(x^(5*@shapeAdjust3))-@fn5(y^(3-@shapeAdjust4)))-@distort elseif @trapType == "Knot Curve" ztest2 = @fn1((@fn2(x^(1+@shapeAdjust1)-1)^2)-@fn3(y^2*@shapeAdjust2)* \ (3+2*@fn4(y*@shapeAdjust3)))-@distort elseif @trapType == "Lemniscate" ztest2 = @fn1((@fn2(x^2+(1-@shapeAdjust2))+@fn3(y^(1+@shapeAdjust3)))^2- \ 2*@shapeAdjust1*(@fn4(x^(2*@shapeAdjust4))- \ @fn5(y^2*@shapeAdjust5)))-@distort elseif @trapType == "Lemniscate Corrected" ztest2 = @fn1(@fn2(x^4+(1-@shapeAdjust2))+@fn3(y^4+(3-@shapeAdjust3))* \ @fn4(x^2*@shapeAdjust4)*@fn5(y^(2*@shapeAdjust5))-2* \ @shapeAdjust1^2*(@fn6(x^(2*@shapeAdjust6))- \ @fn7(y^(1+@shapeAdjust7))))-@distort elseif @trapType == "Limacon" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust3))+@fn3(y^2+(1-@shapeAdjust4))-2* \ @shapeAdjust1*@fn4(x^@shapeAdjust5))^2-@shapeAdjust2^2* \ (@fn5(x^2*@shapeAdjust6)+@fn6(y^2*@shapeAdjust7)))-@distort elseif @trapType == "Line" ztest2 = @fn1(y^@shapeAdjust1)-@distort elseif @trapType == "Links Curve" ztest2 = @fn1((@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-3* \ @fn4(x^@shapeAdjust3))^2-4*@fn5(x^(2*@shapeAdjust4))* \ (2-abs(@fn6(x^@shapeAdjust5))))-@distort elseif @trapType == "Maltese Cross Curve" ztest2 = @fn1(@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-abs \ (@fn4(x^@shapeAdjust3))*abs(@fn5(y+(1-@shapeAdjust4)))* \ (@fn6(x^(2+(1-@shapeAdjust5))-@fn7(y^(2*@shapeAdjust6)))))- \ @distort elseif @trapType == "Parabola" ztest2 = @fn1(@fn2(x^(2*@shapeAdjust1))-@fn3(y^@shapeAdjust2))-@distort elseif @trapType == "Pear-Shaped Curve" ztest2 = @fn1(@fn2(x^(4-@shapeAdjust3))* \ (@shapeAdjust1-@fn3(x^@shapeAdjust4))-@shapeAdjust2^2* \ @fn4(y^(2*@shapeAdjust5)))-@distort elseif @trapType == "Piriform" ztest2 = @fn1(@shapeAdjust1^4*@fn2(y^(2*@shapeAdjust3))-@shapeAdjust2^2* \ @fn3(x^(3*@shapeAdjust4))*(2*@shapeAdjust1-@fn4(x/@shapeAdjust5)))- \ @distort elseif @trapType == "Quadrifolium" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))^3-4* \ @fn4(x^2+(1-@shapeAdjust4))*@fn5(y^(3-@shapeAdjust5))* \ @shapeAdjust1^2)-@distort elseif @trapType == "Rose Curve" complex tz = atan2(x + flip(y)) ztest2 = @fn1(@shapeAdjust1*cos(@fn2(tz^@shapeAdjust3)) + \ @shapeAdjust2*sin(@fn3(tz^@shapeAdjust4)))-@distort elseif @trapType == "Serpentine Curve" ztest2 = @fn1(@shapeAdjust1*@shapeAdjust2*@fn2(x^@shapeAdjust3)/ \ @fn3((x+1-@shapeAdjust3)^2+@shapeAdjust1^2)- \ @fn4(y^@shapeAdjust4))-@distort elseif @trapType == "sin(x)/x" ztest2 = @fn1(10*@fn2(sin(x^@shapeAdjust1))/@fn3(x*@shapeAdjust2)- \ @fn4(y^@shapeAdjust3))-@distort elseif @trapType == "Sinus + Cosinus" ztest2 = @fn1(sin(@shapeAdjust1*@fn2(x^@shapeAdjust3))+ \ cos(@shapeAdjust2*@fn3(x+(1-@shapeAdjust4)))+ \ @fn4(y^@shapeAdjust5))-@distort elseif @trapType == "Spiral" ztest2 = abs((x^(2*@shapeAdjust2)+y^(2*@shapeAdjust3))^ \ @shapeAdjust1%1-.5+atan2(x*@shapeAdjust4+ \ (flip(y^@shapeAdjust5)))/(2*pi)) ztest3 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+ \ atan2(x+flip(y))/(2*pi)+1) if real(ztest3) < real(ztest2) ztest2 = real(ztest3) endif ztest3 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+atan2(x+flip(y))/(2*pi)-1) if real(ztest3) < real(ztest2) ztest2 = real(ztest3) endif elseif @trapType == "Square" if abs(x) > abs(y) ztest2 = @fn1(@fn2(abs(x^@shapeAdjust1))-1)-@distort else ztest2 = @fn3(@fn4(abs(y^@shapeAdjust2))-1)-@distort2 endif elseif @trapType == "Stirrup Curve" ztest2 = @fn1(@fn2((x^2-1)^2)-@fn3(y^2)*@fn4(y-1)*@fn5(y-2)* \ @fn6(y+5))-@distort elseif @trapType == "Strange Shape" ztest2 = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3((y*@shapeAdjust8)^ \ (2*@shapeAdjust3)))*atan2(@fn4(x*@shapeAdjust4)^ \ @shapeAdjust7+flip(@fn5(y^@shapeAdjust5)))- \ @shapeAdjust1*@fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Swastika Curve" ztest2 = @fn1(@fn2(y^(4*@shapeAdjust1))-@fn3(x^4*@shapeAdjust2)- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort elseif @trapType == "Tangent" ztest2 = @fn1(tan(@fn2((x*@shapeAdjust1)^@shapeAdjust2))- \ @fn3(y*@shapeAdjust3)^@shapeAdjust4)-@distort elseif @trapType == "Trefoil" ztest2 = @fn1(@fn2(x^(5-@shapeAdjust1))+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^2*@shapeAdjust3)+@fn5(y^(4*@shapeAdjust4))- \ @fn6(x^@shapeAdjust5)*(@fn7(x^2*@shapeAdjust6)- \ @fn8(y^2+(1-@shapeAdjust7))))-@distort elseif @trapType == "Trident" ztest2 = @fn1(@fn2(x^3*@shapeAdjust2)-@shapeAdjust1^3- \ @fn3(x^@shapeAdjust3)*@fn4(y*@shapeAdjust4))-@distort elseif @trapType == "Trident of Descartes" ztest2 = @fn1((@shapeAdjust1+@fn2(x^@shapeAdjust2))* \ (@shapeAdjust1-@fn3(x*@shapeAdjust3))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust4))/ \ (@shapeAdjust1*@fn5(x+(1-@shapeAdjust5)))- \ @fn6(y^@shapeAdjust6))-@distort elseif @trapType == "Trifolium" ztest2 = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^(2*@shapeAdjust4)))* \ (@fn4(y^(2*@shapeAdjust5))+@fn5(x^@shapeAdjust6)* \ @fn6(x+@shapeAdjust1))-4*@shapeAdjust2* \ @fn7(x^@shapeAdjust7)*@fn8(y^2+(1-@shapeAdjust8)))-@distort elseif @trapType == "Trisectrix of Maclaurin" ztest2 = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1+ \ @fn3(x^@shapeAdjust3))-@fn4(x^(2*@shapeAdjust4))* \ (3*@shapeAdjust1-@fn5(x*@shapeAdjust5)))-@distort elseif @trapType == "Twisted Cross" ztest2 = @fn1(@fn2(y^(5-@shapeAdjust1))-@fn3(x^(5-@shapeAdjust2))- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort elseif @trapType == "Witch of Agnesi" ztest2 = @fn1(8*@shapeAdjust2*@shapeAdjust1^3/ \ @fn2(x^(2*@shapeAdjust3)+4*@shapeAdjust1^2)- \ @fn3(y^@shapeAdjust4))-@distort endif IF @light ztest2 = z1-ztest2 ELSE ztest2 = ztest2 ENDIF IF @varType == "Normal" ztest2 = @varFn((ztest2-@xb1)*@xb2)^@xb3 ELSEIF @varType == "Modulus" ztest2 = @varFn((|ztest2|-@xb1)*@xb2)^@xb3 ELSEIF @varType == "Atan2" ztest2 = @varFn(atan2(ztest2-@xb1)*@xb2)^@xb3 ELSEIF @varType == "Real" ztest2 = @varFn(real(ztest2-@xb1)*@xb2)^@xb3 ELSEIF @varType == "Imag" ztest2 = @varFn(imag(ztest2-@xb1)*@xb2)^@xb3 ENDIF IF @nuflav == true IF @opadd == "None" ztest2 = ztest2 ELSEIF @opadd == "+(X+Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X+Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X-Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd== "-(X-Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y-X)" ztest2 = ztest2 + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y-X)" ztest2 = ztest2 - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X*Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X*Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X/Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X/Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y/X)" ztest2 = ztest2 + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y/X)" ztest2 = ztest2 - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X^Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X^Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y^X)" ztest2 = ztest2 + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y^X)" ztest2 = ztest2 - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ENDIF ELSE IF @opadd == "None" ztest2 = ztest2 ELSEIF @opadd == "+(X+Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X+Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X-Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd== "-(X-Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y-X)" ztest2 = ztest2 + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y-X)" ztest2 = ztest2 - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X*Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X*Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(X/Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X/Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y/X)" ztest2 = ztest2 + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y/X)" ztest2 = ztest2 - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "+(X^Y)" ztest2 = ztest2 + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "-(X^Y)" ztest2 = ztest2 - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) ELSEIF @opadd == "+(Y^X)" ztest2 = ztest2 + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ELSEIF @opadd == "-(Y^X)" ztest2 = ztest2 - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) ENDIF ENDIF if @follow == true if !trapped && iter >= @skip && iter < @skip2 if @trapsVersion < 190 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @ipattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @ipattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @ipattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @ipattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @ipattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @dist == false minDist = abs(real((((ztest2)-@zt1)*@zt2)^@zt3)) else minDist = abs(real(((@thatfn((z1)-@zp1)*@zp2)^@zp3)-@thisfn(((ztest2) \ -@zt1)*@zt2)^@zt3)) endif trapWidth = @width indexFactor = (@colorsPerRange - 1) / trapWidth if minDist < trapWidth && !trapped trapped = true trappedOnce = true trappedZ = z1 trapIter = iter if minDist < (trapWidth - bWidth) rangeNum = (iter + offset) % ranges if (@perturbRanges == "Even/Odd") ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 2 4 6 1 3 5 7 if ((trunc (ranges / 2) * 2) == ranges) ; Number of ranges is even. if (rangeNum < ranges / 2) rangeNum = (rangeNum + rangeNum) % ranges else rangeNum = (rangeNum + rangeNum + 1) % ranges endif else ; Number of ranges is odd. rangeNum = (rangeNum + rangeNum) % ranges endif elseif (@perturbRanges == "1st Half / 2nd Half") ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 4 1 5 2 6 3 7 if ((trunc (rangeNum / 2) * 2) == rangeNum) ; rangeNum is even. rangeNum = rangeNum - trunc (rangeNum / 2) else ; rangeNum is odd. rangeNum = rangeNum + trunc ((ranges - rangeNum) / 2) endif endif trappedColor = blend (colorMap [rangeNum,0], colorMap [rangeNum,1], minDist/@width) colorIndex = indexFactor * minDist + rangeNum * @colorsPerRange else useBorder = true endif endif endif endif elseif @follow == false if @trapsVersion < 190 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @ipattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @ipattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @ipattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @ipattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @ipattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if !trapped && iter >= @skip && iter < @skip2 if @dist == false minDist = abs(real((((ztest2)-@zt1)*@zt2)^@zt3)) else minDist = abs(real(((@thatfn((z1)-@zp1)*@zp2)^@zp3)-@thisfn(((ztest2) \ -@zt1)*@zt2)^@zt3)) endif trapWidth = @width indexFactor = (@colorsPerRange - 1) / trapWidth if minDist < trapWidth && !trapped trapped = true trappedOnce = true trappedZ = z1 trapIter = iter if minDist < (trapWidth - bWidth) rangeNum = (iter + offset) % ranges if (@perturbRanges == "Even/Odd") ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 2 4 6 1 3 5 7 if ((trunc (ranges / 2) * 2) == ranges) ; Number of ranges is even. if (rangeNum < ranges / 2) rangeNum = (rangeNum + rangeNum) % ranges else rangeNum = (rangeNum + rangeNum + 1) % ranges endif else ; Number of ranges is odd. rangeNum = (rangeNum + rangeNum) % ranges endif elseif (@perturbRanges == "1st Half / 2nd Half") ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 4 1 5 2 6 3 7 if ((trunc (rangeNum / 2) * 2) == rangeNum) ; rangeNum is even. rangeNum = rangeNum - trunc (rangeNum / 2) else ; rangeNum is odd. rangeNum = rangeNum + trunc ((ranges - rangeNum) / 2) endif endif trappedColor = blend (colorMap [rangeNum,0], colorMap [rangeNum,1], minDist/@width) colorIndex = indexFactor * minDist + rangeNum * @colorsPerRange else useBorder = true endif endif endif endif endif iter = iter + 1 final: if trappedOnce if (@trapType == "Design Gradient") ; rangeNum = trunc(#y / trunc (#height / ranges)) rangeNum = (trunc(#y / trunc (#height / ranges)) + offset) % ranges trappedColor = blend (colorMap [rangeNum,0], colorMap [rangeNum,1], #x / #width) endif ; Skip FBM if we are in shape border area. if (@useFBM) && !useBorder if @mask_type == "Distance" if minDist > @mask masked = true endif elseif @mask_type == "Iteration" if @mask != 0 float mask_val = trapIter if @mask_mod != 0 mask_val = trapIter % @mask_mod endif if mask_val < @mask masked = true endif endif elseif @mask_type == "Range" if (trapIter >= @mask) && (trapIter <= @mask_mod) masked = true endif endif if @inverse masked = !masked endif if masked #solid = true else if (@texture_type == "Random") ;Random texture = @rnd * real(#random) else ; fBm if (@rnd != 0) complex rr = (0,1) ^ (@angle / 90.0) complex rr2 = (0,1) ^ (@anglestep / 90.0) if @initial == "Pixel" pat_p = #pixel * rr + @fbmOffset p = #pixel * @fbmscale * rr + @fbmoffset elseif @initial == "Orbit" pat_p = trappedZ * rr + @fbmOffset p = trappedZ * @fbmscale * rr + @fbmoffset ; elseif @initial == "Trap" ; pat_p = trap_p * rr + @fbmOffset ; complex p = trap_p * @fbmscale * rr + @fbmoffset endif float freq = 1.0 int ii = @octaves while (ii > 0) ; determine integer coordinate for corners of square ; surrounding p float bx0 = floor(real(p)) % 256 float by0 = floor(imag(p)) % 256 if (bx0 < 0) bx0 = bx0 + 256 endif if (by0 < 0) by0 = by0 + 256 endif float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(p) - floor(real(p)) float ry0 = imag(p) - floor(imag(p)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@power % 65536 + by0)^@power % 65536 float b10 = (bx1^@power % 65536 + by0)^@power % 65536 float b01 = (bx0^@power % 65536 + by1)^@power % 65536 float b11 = (bx1^@power % 65536 + by1)^@power % 65536 float g_b00_0 = (b00)^@power*0.25 % 512 - 256 float g_b10_0 = (b10)^@power*0.25 % 512 - 256 float g_b01_0 = (b01)^@power*0.25 % 512 - 256 float g_b11_0 = (b11)^@power*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@power*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@power*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@power*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@power*0.25 % 512 - 256 float d = 0.0; d = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * d g_b00_1 = g_b00_1 * d d = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * d g_b10_1 = g_b10_1 * d d = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * d g_b01_1 = g_b01_1 * d d = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * d g_b11_1 = g_b11_1 * d 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 a = u1 + sx*(v1 - u1) float b = u2 + sx*(v2 - u2) if @fbmfunc == "Ident" ; Ident sum = sum + (a + sy * (b - a)) * freq elseif @fbmfunc == "Abs" ; Abs sum = sum + sqrt(2) * abs(a + sy * (b - a)) * freq elseif @fbmfunc == "Sqr" ; Sqr sum = sum + 4 * sqr(a + sy * (b - a)) * freq elseif @fbmfunc == "Sqrt" ; Sqrt noise = a + sy * (b - a) if noise < 0 noise = imag(sqrt(noise)) else noise = real(sqrt(noise)) endif sum = sum + noise * freq elseif @fbmfunc == "Ceil" ; Ceil sum = sum + ceil(a + sy * (b - a)) * freq endif freq = freq * @step p = p * rr2 / @step ii = ii - 1 endwhile endif if @pattern == "None" noise = sum elseif @pattern == "Marble" ; Marble noise = real(sin(@pfreq * real(pat_p) + (@turb * sum))) elseif @pattern == "Wood" ; Wood noise = cabs(@pfreq * pat_p) + (@turb * sum) elseif @pattern == "Cells" ; Cells float x = sin(@pfreq * real(pat_p)) float y = cos(@pfreq * imag(pat_p)) noise = cabs(x + flip(y)) + (@turb * sum) elseif @pattern == "Squares" p = round(pat_p * @pfreq) / @pfreq noise = 2 * cabs(@pfreq * pat_p - @pfreq * p) + (@turb * sum) endif if @texture_type == "fBm" ; Original fBm texture = @rnd * noise elseif @texture_type == "Corrected fBm" ; Corrected fBm texture = @rnd * ((noise + 1) * 0.5) endif endif endif endif if (@colorPreset == "Gradient") if (useBorder) if (@solidBorder) #solid = true else #color = @borderColor endif elseif (@colorMode == "Angle") angle = atan2 (trappedZ) if (angle < 0) angle = angle + 2 * #pi endif angle = 1.0 / (2 * #pi) * angle #color = gradient (angle + texture) elseif (@colorMode == "Iteration") #color = gradient (trapIter * 0.01 + texture) elseif (@colorMode == "Modulated Iter") #color = gradient ((trapIter % 8) / 8 + texture) elseif (@colorMode == "Magnitude") #color = gradient (cabs(trappedZ) + texture) elseif (@colorMode == "Real") #color = gradient (abs(real(trappedZ)) + texture) elseif (@colorMode == "Imag") #color = gradient (abs(imag(trappedZ)) + texture) else #color = gradient ((colorIndex + 1) % 256 / 256 + texture) endif else #color = trappedColor endif else if @solid #solid = TRUE else #color = @backColor endif endif default: title = "Plane Curve Traps II" ; -------------------------------------------------------------------- ; Version ;-------------------------------------------------------------------- param trapsVersion caption = "Formula Version" default = 190 hint = "You should never see this parameter; it's used internally to track \ which version of the formula was used to create your image, so that \ if a bug is found which breaks backwards-compatibility, the formula \ can adapt transparently." visible = false endparam ; Trap Selection Parameters heading caption = "Trap Parameters" endheading param trapType caption = "Trap Type" enum = "Design Gradient" \ "Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day"\ "Barbed Wire""Baubles & Bangles""Bean Curve""Bicorn Curve" \ "Bicuspid Curve""Bifoliate""Bifolium" "Bighorn Curve""Binary Curve" \ "Bird of Paradise""Bow""Butterfly Curve""Cabuchon Curve" \ "Cardinal Points Curve""Cassini Ovals""Chaos Adorned""Chaos Unleashed" \ "Church Key Curve""Circle""Cissoid of Diocles""Cochleoid""Cocked Hat" \ "Compass Curve""Conchoid of Nicomedes""Conjoined Circle Curve" \ "Conductor's Curve""Cooking Pot Curve""Cosmic Rays""Crochet Hooks" \ "Crosshatch Curve""Cruciform""D&U Curve""Devil's Curve""Diamond" \ "Dogleg Curve""Double Circle Curve""Double Trine""Dribs & Drabs" \ "Driftwood Curve""Dulcimer Curve""Dumbbell Curve""Dürer's Conchoid" \ "Eight Curve""Eye of the Needle""Exclamation Point""Fatback" \ "Floreate Curve""Glyph Curve""Gravity Waves""Happy Accident" \ "Harpoon Curve" "Hook & Spar""Hoops & Plates""Horned Torus Curve" \ "Hyperbola""Indented Parabola""Intersecting Ovals""Kappa Curve" \ "Keppler's Folium""Keratoid Cusp""Knot Curve""Leaves of Grass" \ "Lemniscate""Lemniscate Corrected""Limacon""Line" "Links Curve" \ "Lipped Ovals""M curve""Maltese Cross Curve""Mercury Curve""Miscellanea" \ "Moorish Fantasy""Mousehead Curve""Nested Ovals""Nesting Birds Curve" \ "O-nami Curve""Odds 'n Ends""Omega Curve""Ornate Curve""Ovals" \ "Ovate Waves""Ovate Waves 2""Pacifier Curve""Parabola" \ "Parenthetical Curve""Pear-Shaped Curve""Pincers" "Piriform" \ "Pisces Curve""Plane & Tail""Plane & Tail 2""Quadrifolium""Rose Curve" \ "Seagull Curve" "Serpentine Curve""Simple Curve""sin(x)/x" \ "Sinus + Cosinus""Smoke Rings""Sneering Curve""Space Debris" \ "Spectacles Curve""Spiked Cusp""Spiral""Square""Squared Circle Curve" \ "Squeezed Rectangle Curve""Stirrup Curve""Strange Shape" \ "Stretched Oval Curve""Swallow Curve""Swastika Curve""Switchback Curve" \ "Tangent""Taurus Curve""Teardrop Curve""Tennis Anyone?""Thick 'n Thin" \ "Thorned Cross""Three Point Curve""Trefoil""Trident" \ "Trident of Descartes""Trifolium""Trisectrix of Maclaurin""Tsuba Curve" \ "Twisted Cross""Wheel in Trough""Whip Curve""Witch of Agnesi" default = 2 hint = "The trap type." endparam bool param light caption = "Invert Trap" default = false hint = "Inverts the trapped shape" endparam param trapMode caption = "Trap Mode" enum = "First Iteration" "Last Iteration" default = 0 hint = "Select 'First Iteration' to trap the first point that \ falls in the range. Select 'Last Iteration' to select \ the last point that falls in the range. This has the \ effect of placing larger shapes below smaller ones." endparam complex param offset caption = "Offset" default = (0.0,0.0) hint = "Offset for the center of the trap." endparam float param size caption = "Size" default = 1.0 hint = "The size of the trap shape." endparam float param width caption = "Width" default = 0.1 hint = "The width of the trap." endparam float param borderWidth caption = "Shape Border Width" default = 0.0 hint = "The width of the border around each shape." visible = (@colorPreset == "Gradient") && (@colorMode != "Normal") endparam float param rotation caption = "Rotation" default = 0.0 hint = "The amount to rotate the trap shape about its origin." endparam float param ratio caption = "Height/Width Ratio" default = 1.0 hint = "The ration of height to width." endparam int param skip caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param ipattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." visible = ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") || (@trapType == "Cosmic Rays") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Double Trine") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") ||\ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." visible = ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") ||(@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") || (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Spiral") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Trisectrix of Maclaurin")) endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv && ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv && ((@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || (@trapType == "Pincers") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv && ((@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Strange Shape") || (@trapType == "Trifolium")) endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv && ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium")) endparam float param shapeAdjust10 caption = "Shape Adj. X" default = 1.0 hint = "Shape adjustment parameter X." visible = @adv && ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Miscellanea") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust11 caption = "Shape Adj. XI" default = 1.0 hint = "Shape adjustment parameter XI." visible = @adv && ((@trapType == "Driftwood Curve") || \ (@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust12 caption = "Shape Adj. XII" default = 1.0 hint = "Shape adjustment parameter XII." visible = @adv && (@trapType == "Dürer's Conchoid") endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endparam float param distort2 caption = "Fission 2" hint = "Shifts some of the lines in 'Square'" default = 0 visible = @adv && (@trapType == "Square") endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn2 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") ||\ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn3 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hook & Spar") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifoliate") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || \ (@trapType == "Witch of Agnesi")) endfunc func fn4 default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Church Key Curve") || (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Crosshatch Curve") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Double Circle Curve") || (@trapType == "Double Trine") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Hook & Spar") || (@trapType == "Hoops & Plates") || \ (@trapType == "Horned Torus Curve") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "O-nami Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Omega Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thick 'n Thin") || \ (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||\ (@trapType == "Cosmic Rays") || (@trapType == "Crochet Hooks") || \ (@trapType == "Double Circle Curve") || \ (@trapType == "Double Trine") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Exclamation Point") || \ (@trapType == "Fatback") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bifoliate") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Kappa Curve") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Quadrifolium") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")|| \ (@trapType == "Double Circle Curve") || \ (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || (@trapType == "Dulcimer Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "O-nami Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || \ (@trapType == "Pacifier Curve") || \ (@trapType == "Parenthetical Curve") || \ (@trapType == "Pincers") || \ (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Plane & Tail 2") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") ||(@trapType == "Bean Curve") || \ (@trapType == "Cochleoid") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && ((@trapType == "Bighorn Curve")|| \ (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate Corrected") || \ (@trapType == "Maltese Cross Curve")||\ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && \ ((@trapType == "Bighorn Curve")|| (@trapType == "Conductor's Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || (@trapType == "Horned Torus Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn9 caption = "Function 9" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && \ ((@trapType == "Conductor's Curve")||(@trapType == "Eye of the Needle")||\ (@trapType == "Miscellanea") || (@trapType == "Nesting Birds Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Pacifier Curve") || (@trapType == "Sneering Curve") || \ (@trapType == "Dürer's Conchoid")) endfunc func fn10 caption = "Function 10" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && \ ((@trapType == "Miscellanea") || (@trapType == "Dürer's Conchoid")) endfunc func fn11 caption = "Function 11" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = @adv && (@trapType == "Dürer's Conchoid") endfunc ;-------------------------------------------------------------------- ; Common Parameters ;-------------------------------------------------------------------- param adv caption = "Advanced Options" hint = "Additional shaping parameters and functions." default = false endparam param trp ; included only for backward compatibility caption = "More Trap Parameters" default = true visible = false endparam ; more shaping parameters........................................... heading caption = "More Shaping Parameters" visible = @adv endheading complex param zt1 caption = "Mode Offset" default = (0,0) visible = @adv endparam complex param zt2 caption = "Mode Strength" default = (1,0) visible = @adv endparam complex param zt3 caption = "Mode Power" default = (1,0) visible = @adv endparam bool param dist caption = "New Mode" default = false visible = @adv endparam func thisfn caption = "New Mode Fn A" default = ident() visible = @dist == true && @adv endfunc func thatfn caption = "New Mode Fn B" default = ident () visible = @dist == true && @adv endfunc complex param zp1 caption = "New Mode Offset" default = (0,0) visible = @dist == true && @adv endparam complex param zp2 caption = "New Mode Strength" default = (1,0) visible = @dist == true && @adv endparam complex param zp3 caption = "New Mode Power" default = (1,0) visible = @dist == true && @adv endparam func xfunc caption = "Global X Fn" default = ident() visible = @adv endfunc func yfunc caption = "Global Y Fn" default = ident() visible = @adv endfunc complex param x1 caption = "Global X Offset" default = (0,0) visible = @adv endparam complex param y1 caption = "Global Y Offset" default = (0,0) visible = @adv endparam complex param x2 caption = "Global X Strength" default = (1,0) visible = @adv endparam complex param y2 caption = "Global Y Strength" default = (1,0) visible = @adv endparam complex param x3 caption = "Global X Power" default = (1,0) visible = @adv endparam complex param y3 caption = "Global Y Power" default = (1,0) visible = @adv endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @adv endparam func varFn caption = "X/Y Function" default = ident() visible = @adv endfunc complex param xb1 caption = "X/Y Offset" default = (0,0) visible = @adv endparam complex param xb2 caption = "X/Y Strength" default = (1,0) visible = @adv endparam complex param xb3 caption = "X/Y Power" default = (1,0) visible = @adv endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @adv endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 && @adv endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 && @adv endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @opadd > 0 && @adv endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @adv endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @adv endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @adv endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 && @adv endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @adv endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 && @adv endparam ; Morph Parameters-------------------------------------------------- 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 ;-------------------------------------------------------------------- ; Color Settings ;-------------------------------------------------------------------- heading caption = "Color Settings" endheading param colorPreset caption = "Color Preset" enum = "Gradient" "Custom" "Generate" "Default" "Default 12" \ "Default 16" "Default 24" "Color Wheel 12" "Alhambra 8" \ "Belvedere 8" "Bouquet 8" "Color Switch 8" "Evening Sky 8" \ "Fantasia 8" "Flowering Orchard 8" "Morning Sky 8" "Pastel 8" \ "Pastel Rainbow 8" "Showtime 8" "Soleil 8" "Chill 8" \ "Cloud Nine 8" "La Terra 8" "Santa Fe 8" "Spring 8" "Summer 8" \ "Fall 8" "Winter 8" "Mojave 8" "Gold/Green 8" "Gold/Green Alt 8" \ "Gold/Silver 8" "Gold/Silver Alt 8" "Purple/Yellow 8" \ "Purple/Yellow Alt 8" "Silver/Blue 8" "Silver/Blue Alt 8" \ "Fourth of July 3" "Blue/Silver 2" "Blue/White 2" "Cyan/Magenta 2" \ "Cyan/Yellow 2" "Gold/Green 2" "Purple/Yellow 2" "Red/Tan 2" default = 3 hint = "Use 'Gradient' for colors from the gradient. \ Use 'Custom' to set your own color ranges. \ Use 'Default' for the default colors. \ Use 'Generate' to create 3D-like colors from the \ gradient (allows using the gradient randomize function). \ Use any of the other predefined settings for those colors." endparam param customize caption = "Show/Customize" default = false hint = "Check to customize the selected color preset. NOTE: If you \ modify the default values for any of the range(s), you cannot \ get back to the default values for the range(s) you modify \ unless you reload the UCL." visible = (@colorPreset != "Gradient") && (@colorPreset != "Generate") \ && (@colorPreset != "Custom") endparam param colorMode caption = "Coloring Mode" enum = "Normal" "Angle" "Iteration" "Modulated Iter" "Magnitude" \ "Real" "Imag" default = 0 hint = "The type of coloring to use when the orbit is trapped." visible = (@colorPreset == "Gradient") endparam float param luminanceUpper caption = "Lum. Upper Value" default = 0.60 min = 0.0 max = 1.0 hint = "The value of the Luminance component for the upper value \ when generating the ranges from the gradient. This value \ is used with the brighter end of the color range." visible = (@colorPreset == "Generate") endparam float param luminanceLower caption = "Lum. Lower Value" default = 0.10 min = 0.0 max = 1.0 hint = "The value of the Luminance component for the lower value \ when generating the ranges from the gradient. This value \ is used with the darker end of the color range." visible = (@colorPreset == "Generate") endparam int param colorRanges caption = "Number of Ranges" default = 8 min = 1 max = 24 hint = "The number of color ranges (1..24)." visible = (@colorPreset == "Custom") || (@colorPreset == "Gradient") && \ (@colorMode == "Normal") endparam int param numRanges caption = "Number of Ranges" default = 8 min = 1 max = 200 hint = "The number of color ranges." visible = (@colorPreset == "Generate") endparam int param colorsPerRange caption = "Number of Colors" default = 30 hint = "The number of colors per range." visible = (@colorPreset == "Gradient") && (@colorMode == "Normal") endparam param perturbRanges caption = "Perturb Ranges" enum = "None" "Even/Odd" "1st Half / 2nd Half" "8 Range Custom" default = 0 hint = "Modify the way the ranges are assigned to the elements. \ 'None' = Assign in Order (0 1 2 3 4 5 6 7); 'Even Odd' = \ Assign Even Ranges, then Odd Ranges (0 2 4 6 1 3 5 7); \ '1st Half / 2nd Half' = Assign from first half of range, \ then 2nd half (0 4 1 5 2 6 3 7); '8 Range Custom' = Assign \ the ordering by entering digits 1-8. Only works for ranges \ with 8 colors." visible = ((@colorPreset == "Custom" && @colorRanges >= 3) || \ (@colorPreset == "Generate" && @numRanges >= 3) || \ (@colorPreset == "Gradient" && @colorRanges >= 3) || \ (@colorPreset != "Custom" && @colorPreset != "Generate" && \ @colorPreset != "Gradient")) && (@colorMode == "Normal") endparam int param rangeOrder caption = "Range Order" default = 12345678 min = 11111111 max = 88888888 hint = "Specify the color range ordering. Use digits 1-8 to specify \ the order the ranges will be used. For example, to reverse \ the ordering, specify 87654321. To alternate, use 13572468. \ If color map or preset is defined that does not contain exactly \ 8 ranges, then this parameter will not have any effect." visible = (@perturbRanges == "8 Range Custom") endparam heading caption = " " endheading ;-------------------------------------------------------------------- ; Color Defaults for Custom ;-------------------------------------------------------------------- heading caption = " Custom Color Settings" visible = (@colorPreset == "Custom") endheading color param colorMax1 caption = "Color Range 1 High" default = rgb(255/255,0/255,211/255) hint = "Specifies the color at the high end of Range #1." visible = (@colorPreset == "Custom") endparam color param colorMin1 caption = "Color Range 1 Low" default = rgb(104/255,0/255,64/255) hint = "Specifies the color at the low end of Range #1." visible = (@colorPreset == "Custom") endparam color param colorMax2 caption = "Color Range 2 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@colorRanges >= 2) && (@colorPreset == "Custom") endparam color param colorMin2 caption = "Color Range 2 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@colorRanges >= 2) && (@colorPreset == "Custom") endparam color param colorMax3 caption = "Color Range 3 High" default = rgb(255/255,118/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@colorRanges >= 3) && (@colorPreset == "Custom") endparam color param colorMin3 caption = "Color Range 3 Low" default = rgb(100/255,36/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@colorRanges >= 3) && (@colorPreset == "Custom") endparam color param colorMax4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@colorRanges >= 4) && (@colorPreset == "Custom") endparam color param colorMin4 caption = "Color Range 4 Low" default = rgb(92/255,61/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@colorRanges >= 4) && (@colorPreset == "Custom") endparam color param colorMax5 caption = "Color Range 5 High" default = rgb(0/255,255/255,55/255) hint = "Specifies the color at the high end of Range #5." visible = (@colorRanges >= 5) && (@colorPreset == "Custom") endparam color param colorMin5 caption = "Color Range 5 Low" default = rgb(0/255,78/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@colorRanges >= 5) && (@colorPreset == "Custom") endparam color param colorMax6 caption = "Color Range 6 High" default = rgb(0/255,255/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@colorRanges >= 6) && (@colorPreset == "Custom") endparam color param colorMin6 caption = "Color Range 6 Low" default = rgb(0/255,71/255,74/255) hint = "Specifies the color at the low end of Range #6." visible = (@colorRanges >= 6) && (@colorPreset == "Custom") endparam color param colorMax7 caption = "Color Range 7 High" default = rgb(0/255,90/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@colorRanges >= 7) && (@colorPreset == "Custom") endparam color param colorMin7 caption = "Color Range 7 Low" default = rgb(0/255,0/255,102/255) hint = "Specifies the color at the low end of Range #7." visible = (@colorRanges >= 7) && (@colorPreset == "Custom") endparam color param colorMax8 caption = "Color Range 8 High" default = rgb(175/255,0/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@colorRanges >= 8) && (@colorPreset == "Custom") endparam color param colorMin8 caption = "Color Range 8 Low" default = rgb(57/255,0/255,86/255) hint = "Specifies the color at the low end of Range #8." visible = (@colorRanges >= 8) && (@colorPreset == "Custom") endparam color param customMax9 caption = "Color Range 9 High" default = rgb (255/255,0/255,134/255) hint = "Specifies the color at the high end of Range #9." visible = (@colorRanges >= 9) && (@colorPreset == "Custom") endparam color param customMin9 caption = "Color Range 9 Low" default = rgb(106/255,0/255,55/255) hint = "Specifies the color at the low end of Range #9." visible = (@colorRanges >= 9) && (@colorPreset == "Custom") endparam color param customMax10 caption = "Color Range 10 High" default = rgb(255/255,54/255,0/255) hint = "Specifies the color at the high end of Range #10." visible = (@colorRanges >= 10) && (@colorPreset == "Custom") endparam color param customMin10 caption = "Color Range 10 Low" default = rgb(94/255,18/255,0/255) hint = "Specifies the color at the low end of Range #10." visible = (@colorRanges >= 10) && (@colorPreset == "Custom") endparam color param customMax11 caption = "Color Range 11 High" default = rgb(255/255,157/255,0/255) hint = "Specifies the color at the high end of Range #11." visible = (@colorRanges >= 11) && (@colorPreset == "Custom") endparam color param customMin11 caption = "Color Range 11 Low" default = rgb(90/255,40/255,0/255) hint = "Specifies the color at the low end of Range #11." visible = (@colorRanges >= 11) && (@colorPreset == "Custom") endparam color param customMax12 caption = "Color Range 12 High" default = rgb(229/255,255/255,0/255) hint = "Specifies the color at the high end of Range #12." visible = (@colorRanges >= 12) && (@colorPreset == "Custom") endparam color param customMin12 caption = "Color Range 12 Low" default = rgb(68/255,68/255,0/255) hint = "Specifies the color at the low end of Range #12." visible = (@colorRanges >= 12) && (@colorPreset == "Custom") endparam color param customMax13 caption = "Color Range 13 High" default = rgb(0/255,255/255,136/255) hint = "Specifies the color at the high end of Range #13." visible = (@colorRanges >= 13) && (@colorPreset == "Custom") endparam color param customMin13 caption = "Color Range 13 Low" default = rgb(0/255,66/255,30/255) hint = "Specifies the color at the low end of Range #13." visible = (@colorRanges >= 13) && (@colorPreset == "Custom") endparam color param customMax14 caption = "Color Range 14 High" default = rgb(0/255,212/255,255/255) hint = "Specifies the color at the high end of Range #14." visible = (@colorRanges >= 14) && (@colorPreset == "Custom") endparam color param customMin14 caption = "Color Range 14 Low" default = rgb(0/255,57/255,82/255) hint = "Specifies the color at the low end of Range #14." visible = (@colorRanges >= 14) && (@colorPreset == "Custom") endparam color param customMax15 caption = "Color Range 15 High" default = rgb(92/255,77/255,255/255) hint = "Specifies the color at the high end of Range #15." visible = (@colorRanges >= 15) && (@colorPreset == "Custom") endparam color param customMin15 caption = "Color Range 15 Low" default = rgb(28/255,0/255,94/255) hint = "Specifies the color at the low end of Range #15." visible = (@colorRanges >= 15) && (@colorPreset == "Custom") endparam color param customMax16 caption = "Color Range 16 High" default = rgb(209/255,0/255,255/255) hint = "Specifies the color at the high end of Range #16." visible = (@colorRanges >= 16) && (@colorPreset == "Custom") endparam color param customMin16 caption = "Color Range 16 Low" default = rgb(69/255,0/255,82/255) hint = "Specifies the color at the low end of Range #16." visible = (@colorRanges >= 16) && (@colorPreset == "Custom") endparam color param customMax17 caption = "Color Range 17 High" default = rgb(255/255,0/255,255/255) hint = "Specifies the color at the high end of Range #17." visible = (@colorRanges >= 17) && (@colorPreset == "Custom") endparam color param customMin17 caption = "Color Range 17 Low" default = rgb(84/255,0/255,84/255) hint = "Specifies the color at the low end of Range #17." visible = (@colorRanges >= 17) && (@colorPreset == "Custom") endparam color param customMax18 caption = "Color Range 18 High" default = rgb(255/255,35/255,88/255) hint = "Specifies the color at the high end of Range #18." visible = (@colorRanges >= 18) && (@colorPreset == "Custom") endparam color param customMin18 caption = "Color Range 18 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #18." visible = (@colorRanges >= 18) && (@colorPreset == "Custom") endparam color param customMax19 caption = "Color Range 19 High" default = rgb(255/255,85/255,0/255) hint = "Specifies the color at the high end of Range #19." visible = (@colorRanges >= 19) && (@colorPreset == "Custom") endparam color param customMin19 caption = "Color Range 19 Low" default = rgb(92/255,26/255,0/255) hint = "Specifies the color at the low end of Range #19." visible = (@colorRanges >= 19) && (@colorPreset == "Custom") endparam color param customMax20 caption = "Color Range 20 High" default = rgb(255/255,203/255,0/255) hint = "Specifies the color at the high end of Range #20." visible = (@colorRanges >= 20) && (@colorPreset == "Custom") endparam color param customMin20 caption = "Color Range 20 Low" default = rgb(82/255,54/255,0/255) hint = "Specifies the color at the low end of Range #20." visible = (@colorRanges >= 20) && (@colorPreset == "Custom") endparam color param customMax21 caption = "Color Range 21 High" default = rgb(191/255,255/255,0/255) hint = "Specifies the color at the high end of Range #21." visible = (@colorRanges >= 21) && (@colorPreset == "Custom") endparam color param customMin21 caption = "Color Range 21 Low" default = rgb(32/255,64/255,0/255) hint = "Specifies the color at the low end of Range #21." visible = (@colorRanges >= 21) && (@colorPreset == "Custom") endparam color param customMax22 caption = "Color Range 22 High" default = rgb(0/255,255/255,203/255) hint = "Specifies the color at the high end of Range #22." visible = (@colorRanges >= 22) && (@colorPreset == "Custom") endparam color param customMin22 caption = "Color Range 22 Low" default = rgb(0/255,62/255,48/255) hint = "Specifies the color at the low end of Range #22." visible = (@colorRanges >= 22) && (@colorPreset == "Custom") endparam color param customMax23 caption = "Color Range 23 High" default = rgb(0/255,153/255,255/255) hint = "Specifies the color at the high end of Range #23." visible = (@colorRanges >= 23) && (@colorPreset == "Custom") endparam color param customMin23 caption = "Color Range 23 Low" default = rgb(0/255,37/255,104/255) hint = "Specifies the color at the low end of Range #23." visible = (@colorRanges >= 23) && (@colorPreset == "Custom") endparam color param customMax24 caption = "Color Range 24 High" default = rgb(131/255,67/255,255/255) hint = "Specifies the color at the high end of Range #24." visible = (@colorRanges >= 24) && (@colorPreset == "Custom") endparam color param customMin24 caption = "Color Range 24 Low" default = rgb(57/255,0/255,112/255) hint = "Specifies the color at the low end of Range #24." visible = (@colorRanges >= 24) && (@colorPreset == "Custom") endparam ;-------------------------------------------------------------------- ; Color Defaults for Default ;-------------------------------------------------------------------- heading caption = " Default Settings" visible = (@customize && @colorPreset == "Default") endheading color param defaultMax1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax2 caption = "Color Range 2 High" default = rgb(252/255,0/255,172/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin2 caption = "Color Range 2 Low" default = rgb(96/255,0/255,32/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax3 caption = "Color Range 3 High" default = rgb(252/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin3 caption = "Color Range 3 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax4 caption = "Color Range 4 High" default = rgb(252/255,128/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin4 caption = "Color Range 4 Low" default = rgb(160/255,16/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax5 caption = "Color Range 5 High" default = rgb(252/255,252/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin5 caption = "Color Range 5 Low" default = rgb(152/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax6 caption = "Color Range 6 High" default = rgb(0/255,252/255,128/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin6 caption = "Color Range 6 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax7 caption = "Color Range 7 High" default = rgb(0/255,252/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin7 caption = "Color Range 7 Low" default = rgb(0/255,48/255,48/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Default") endparam color param defaultMax8 caption = "Color Range 8 High" default = rgb(64/255,64/255,252/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Default") endparam color param defaultMin8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Default") endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 12 ;-------------------------------------------------------------------- heading caption = " Default 12 Color Settings" visible = (@customize && @colorPreset == "Default 12") endheading color param default12Max1 caption = "Color Range 1 High" default = rgb(255/255,85/255,253/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min1 caption = "Color Range 1 Low" default = rgb(98/255,0/255,76/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max2 caption = "Color Range 2 High" default = rgb(252/255,0/255,143/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min2 caption = "Color Range 2 Low" default = rgb(98/255,0/255,54/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max3 caption = "Color Range 3 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min3 caption = "Color Range 3 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max4 caption = "Color Range 4 High" default = rgb(255/255,97/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min4 caption = "Color Range 4 Low" default = rgb(104/255,27/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max5 caption = "Color Range 5 High" default = rgb(255/255,187/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min5 caption = "Color Range 5 Low" default = rgb(110/255,54/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max6 caption = "Color Range 6 High" default = rgb(255/255,248/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min6 caption = "Color Range 6 Low" default = rgb(102/255,60/255,6/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max7 caption = "Color Range 7 High" default = rgb(0/255,255/255,58/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min7 caption = "Color Range 7 Low" default = rgb(0/255,76/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max8 caption = "Color Range 8 High" default = rgb(0/255,255/255,205/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min8 caption = "Color Range 8 Low" default = rgb(0/255,89/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max9 caption = "Color Range 9 High" default = rgb(0/255,194/255,255/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min9 caption = "Color Range 9 Low" default = rgb(0/255,80/255,92/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max10 caption = "Color Range 10 High" default = rgb(35/255,109/255,255/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min10 caption = "Color Range 10 Low" default = rgb(0/255,4/255,102/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max11 caption = "Color Range 11 High" default = rgb(149/255,53/255,255/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min11 caption = "Color Range 11 Low" default = rgb(53/255,0/255,96/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Max12 caption = "Color Range 12 High" default = rgb(195/255,0/255,252/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize && @colorPreset == "Default 12") endparam color param default12Min12 caption = "Color Range 12 Low" default = rgb(58/255,0/255,84/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize && @colorPreset == "Default 12") endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 16 ;-------------------------------------------------------------------- heading caption = " Default 16 Color Settings" visible = (@customize && @colorPreset == "Default 16") endheading color param default16Max1 caption = "Color Range 1 High" default = rgb(255/255,31/255,114/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min1 caption = "Color Range 1 Low" default = rgb(94/255,0/255,40/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max2 caption = "Color Range 2 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min2 caption = "Color Range 2 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max3 caption = "Color Range 3 High" default = rgb(255/255,78/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min3 caption = "Color Range 3 Low" default = rgb(88/255,27/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max4 caption = "Color Range 4 High" default = rgb(255/255,110/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min4 caption = "Color Range 4 Low" default = rgb(90/255,30/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max5 caption = "Color Range 5 High" default = rgb(255/255,187/255,31/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min5 caption = "Color Range 5 Low" default = rgb(88/255,38/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min6 caption = "Color Range 6 Low" default = rgb(96/255,57/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max7 caption = "Color Range 7 High" default = rgb(170/255,255/255,37/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min7 caption = "Color Range 7 Low" default = rgb(41/255,68/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max8 caption = "Color Range 8 High" default = rgb(0/255,255/255,94/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min8 caption = "Color Range 8 Low" default = rgb(0/255,62/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max9 caption = "Color Range 9 High" default = rgb(0/255,238/255,203/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min9 caption = "Color Range 9 Low" default = rgb(0/255,64/255,54/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max10 caption = "Color Range 10 High" default = rgb(11/255,166/255,255/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min10 caption = "Color Range 10 Low" default = rgb(0/255,38/255,78/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max11 caption = "Color Range 11 High" default = rgb(0/255,68/255,255/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min11 caption = "Color Range 11 Low" default = rgb(0/255,20/255,88/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max12 caption = "Color Range 12 High" default = rgb(99/255,0/255,255/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min12 caption = "Color Range 12 Low" default = rgb(47/255,0/255,94/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max13 caption = "Color Range 13 High" default = rgb(145/255,0/255,255/255) hint = "Specifies the color at the high end of Range #13." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min13 caption = "Color Range 13 Low" default = rgb(69/255,0/255,102/255) hint = "Specifies the color at the low end of Range #13." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max14 caption = "Color Range 14 High" default = rgb(221/255,0/255,255/255) hint = "Specifies the color at the high end of Range #14." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min14 caption = "Color Range 14 Low" default = rgb(86/255,0/255,100/255) hint = "Specifies the color at the low end of Range #14." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max15 caption = "Color Range 15 High" default = rgb(255/255,0/255,255/255) hint = "Specifies the color at the high end of Range #15." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min15 caption = "Color Range 15 Low" default = rgb(90/255,0/255,75/255) hint = "Specifies the color at the low end of Range #15." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Max16 caption = "Color Range 16 High" default = rgb(255/255,0/255,140/255) hint = "Specifies the color at the high end of Range #16." visible = (@customize && @colorPreset == "Default 16") endparam color param default16Min16 caption = "Color Range 16 Low" default = rgb(96/255,0/255,60/255) hint = "Specifies the color at the low end of Range #16." visible = (@customize && @colorPreset == "Default 16") endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 24 ;-------------------------------------------------------------------- heading caption = " Default 24 Color Settings" visible = (@customize && @colorPreset == "Default 24") endheading color param default24Max1 caption = "Color Range 1 High" default = rgb(255/255,0/255,211/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min1 caption = "Color Range 1 Low" default = rgb(104/255,0/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max2 caption = "Color Range 2 High" default = rgb(255/255,0/255,134/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min2 caption = "Color Range 2 Low" default = rgb(106/255,0/255,55/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max3 caption = "Color Range 3 High" default = rgb(255/255,35/255,88/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min3 caption = "Color Range 3 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max4 caption = "Color Range 4 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min4 caption = "Color Range 4 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max5 caption = "Color Range 5 High" default = rgb(255/255,54/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min5 caption = "Color Range 5 Low" default = rgb(92/255,26/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max6 caption = "Color Range 6 High" default = rgb(255/255,85/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min6 caption = "Color Range 6 Low" default = rgb(96/255,27/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max7 caption = "Color Range 7 High" default = rgb(255/255,118/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min7 caption = "Color Range 7 Low" default = rgb(100/255,38/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max8 caption = "Color Range 8 High" default = rgb(255/255,157/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min8 caption = "Color Range 8 Low" default = rgb(90/255,40/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max9 caption = "Color Range 9 High" default = rgb(255/255,203/255,0/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min9 caption = "Color Range 9 Low" default = rgb(82/255,54/255,0/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max10 caption = "Color Range 10 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min10 caption = "Color Range 10 Low" default = rgb(92/255,61/255,0/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max11 caption = "Color Range 11 High" default = rgb(229/255,255/255,0/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min11 caption = "Color Range 11 Low" default = rgb(68/255,68/255,0/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max12 caption = "Color Range 12 High" default = rgb(191/255,255/255,0/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min12 caption = "Color Range 12 Low" default = rgb(32/255,64/255,0/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max13 caption = "Color Range 13 High" default = rgb(0/255,255/255,55/255) hint = "Specifies the color at the high end of Range #13." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min13 caption = "Color Range 13 Low" default = rgb(0/255,78/255,0/255) hint = "Specifies the color at the low end of Range #13." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max14 caption = "Color Range 14 High" default = rgb(0/255,255/255,136/255) hint = "Specifies the color at the high end of Range #14." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min14 caption = "Color Range 14 Low" default = rgb(0/255,66/255,30/255) hint = "Specifies the color at the low end of Range #14." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max15 caption = "Color Range 15 High" default = rgb(0/255,255/255,203/255) hint = "Specifies the color at the high end of Range #15." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min15 caption = "Color Range 15 Low" default = rgb(0/255,62/255,48/255) hint = "Specifies the color at the low end of Range #15." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max16 caption = "Color Range 16 High" default = rgb(0/255,255/255,255/255) hint = "Specifies the color at the high end of Range #16." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min16 caption = "Color Range 16 Low" default = rgb(0/255,71/255,74/255) hint = "Specifies the color at the low end of Range #16." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max17 caption = "Color Range 17 High" default = rgb(0/255,212/255,255/255) hint = "Specifies the color at the high end of Range #17." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min17 caption = "Color Range 17 Low" default = rgb(0/255,57/255,82/255) hint = "Specifies the color at the low end of Range #17." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max18 caption = "Color Range 18 High" default = rgb(0/255,153/255,255/255) hint = "Specifies the color at the high end of Range #18." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min18 caption = "Color Range 18 Low" default = rgb(0/255,37/255,104/255) hint = "Specifies the color at the low end of Range #18." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max19 caption = "Color Range 19 High" default = rgb(0/255,90/255,255/255) hint = "Specifies the color at the high end of Range #19." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min19 caption = "Color Range 19 Low" default = rgb(0/255,0/255,102/255) hint = "Specifies the color at the low end of Range #19." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max20 caption = "Color Range 20 High" default = rgb(92/255,77/255,255/255) hint = "Specifies the color at the high end of Range #20." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min20 caption = "Color Range 20 Low" default = rgb(28/255,0/255,94/255) hint = "Specifies the color at the low end of Range #20." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max21 caption = "Color Range 21 High" default = rgb(131/255,67/255,255/255) hint = "Specifies the color at the high end of Range #21." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min21 caption = "Color Range 21 Low" default = rgb(57/255,0/255,112/255) hint = "Specifies the color at the low end of Range #21." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max22 caption = "Color Range 22 High" default = rgb(175/255,0/255,255/255) hint = "Specifies the color at the high end of Range #22." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min22 caption = "Color Range 22 Low" default = rgb(57/255,0/255,86/255) hint = "Specifies the color at the low end of Range #22." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max23 caption = "Color Range 23 High" default = rgb(209/255,0/255,255/255) hint = "Specifies the color at the high end of Range #23." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min23 caption = "Color Range 23 Low" default = rgb(64/255,0/255,76/255) hint = "Specifies the color at the low end of Range #23." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Max24 caption = "Color Range 24 High" default = rgb(255/255,0/255,255/255) hint = "Specifies the color at the high end of Range #24." visible = (@customize && @colorPreset == "Default 24") endparam color param default24Min24 caption = "Color Range 24 Low" default = rgb(84/255,0/255,84/255) hint = "Specifies the color at the low end of Range #24." visible = (@customize && @colorPreset == "Default 24") endparam ;-------------------------------------------------------------------- ; Color Defaults for Color Wheel 12 ;-------------------------------------------------------------------- heading caption = " Color Wheel 12 Settings" visible = (@customize && @colorPreset == "Color Wheel 12") endheading color param colorWheel12Max1 caption = "Color Range 1 High" default = rgb(142/255,117/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min1 caption = "Color Range 1 Low" default = rgb(52/255,0/255,100/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max2 caption = "Color Range 2 High" default = rgb(224/255,9/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min2 caption = "Color Range 2 Low" default = rgb(86/255,0/255,84/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max3 caption = "Color Range 3 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min3 caption = "Color Range 3 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max4 caption = "Color Range 4 High" default = rgb(252/255,167/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min4 caption = "Color Range 4 Low" default = rgb(95/255,54/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max5 caption = "Color Range 5 High" default = rgb(190/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min5 caption = "Color Range 5 Low" default = rgb(63/255,84/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max6 caption = "Color Range 6 High" default = rgb(0/255,231/255,213/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min6 caption = "Color Range 6 Low" default = rgb(4/255,62/255,62/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max7 caption = "Color Range 7 High" default = rgb(182/255,27/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min7 caption = "Color Range 7 Low" default = rgb(53/255,0/255,92/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max8 caption = "Color Range 8 High" default = rgb(255/255,33/255,146/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min8 caption = "Color Range 8 Low" default = rgb(80/255,0/255,53/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max9 caption = "Color Range 9 High" default = rgb(255/255,110/255,0/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min9 caption = "Color Range 9 Low" default = rgb(101/255,25/255,21/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max10 caption = "Color Range 10 High" default = rgb(255/255,241/255,0/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min10 caption = "Color Range 10 Low" default = rgb(88/255,69/255,0/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max11 caption = "Color Range 11 High" default = rgb(0/255,248/255,103/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min11 caption = "Color Range 11 Low" default = rgb(0/255,83/255,15/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Max12 caption = "Color Range 12 High" default = rgb(27/255,119/255,255/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize && @colorPreset == "Color Wheel 12") endparam color param colorWheel12Min12 caption = "Color Range 12 Low" default = rgb(0/255,31/255,92/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize && @colorPreset == "Color Wheel 12") endparam ;-------------------------------------------------------------------- ; Color Defaults for Alhambra 8 ;-------------------------------------------------------------------- heading caption = " Alhambra 8 Settings" visible = (@customize && @colorPreset == "Alhambra 8") endheading color param alhambra8Max1 caption = "Color Range 1 High" default = rgb(15/255,222/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min1 caption = "Color Range 1 Low" default = rgb(0/255,43/255,52/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max2 caption = "Color Range 2 High" default = rgb(255/255,204/255,75/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min2 caption = "Color Range 2 Low" default = rgb(92/255,58/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max3 caption = "Color Range 3 High" default = rgb(188/255,152/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min3 caption = "Color Range 3 Low" default = rgb(41/255,0/255,70/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max4 caption = "Color Range 4 High" default = rgb(255/255,155/255,109/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min4 caption = "Color Range 4 Low" default = rgb(95/255,36/255,14/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max5 caption = "Color Range 5 High" default = rgb(121/255,180/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min5 caption = "Color Range 5 Low" default = rgb(0/255,47/255,91/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max6 caption = "Color Range 6 High" default = rgb(255/255,131/255,126/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min6 caption = "Color Range 6 Low" default = rgb(104/255,20/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max7 caption = "Color Range 7 High" default = rgb(33/255,255/255,220/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min7 caption = "Color Range 7 Low" default = rgb(0/255,67/255,49/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Max8 caption = "Color Range 8 High" default = rgb(255/255,177/255,93/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Alhambra 8") endparam color param alhambra8Min8 caption = "Color Range 8 Low" default = rgb(100/255,44/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Alhambra 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Belvedere 8 ;-------------------------------------------------------------------- heading caption = " Belvedere 8 Settings" visible = (@customize && @colorPreset == "Belvedere 8") endheading color param belvedere8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min1 caption = "Color Range 1 Low" default = rgb(92/255,92/255,122/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min2 caption = "Color Range 2 Low" default = rgb(92/255,92/255,122/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max3 caption = "Color Range 3 High" default = rgb(123/255,201/255,254/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min3 caption = "Color Range 3 Low" default = rgb(0/255,45/255,68/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max4 caption = "Color Range 4 High" default = rgb(255/255,230/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min4 caption = "Color Range 4 Low" default = rgb(162/255,28/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max5 caption = "Color Range 5 High" default = rgb(255/255,230/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min5 caption = "Color Range 5 Low" default = rgb(162/255,28/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max6 caption = "Color Range 6 High" default = rgb(0/255,255/255,217/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min6 caption = "Color Range 6 Low" default = rgb(0/255,54/255,46/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max7 caption = "Color Range 7 High" default = rgb(255/255,20/255,70/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min7 caption = "Color Range 7 Low" default = rgb(100/255,0/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Max8 caption = "Color Range 8 High" default = rgb(95/255,84/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Belvedere 8") endparam color param belvedere8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,89/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Belvedere 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Bouquet 8 ;-------------------------------------------------------------------- heading caption = " Bouquet 8 Settings" visible = (@customize && @colorPreset == "Bouquet 8") endheading color param bouquet8Max1 caption = "Color Range 1 High" default = rgb(0/255,255/255,131/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min1 caption = "Color Range 1 Low" default = rgb(0/255,84/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max2 caption = "Color Range 2 High" default = rgb(52/255,255/255,198/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min2 caption = "Color Range 2 Low" default = rgb(0/255,82/255,60/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max3 caption = "Color Range 3 High" default = rgb(0/255,244/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min3 caption = "Color Range 3 Low" default = rgb(0/255,64/255,74/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max4 caption = "Color Range 4 High" default = rgb(180/255,169/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min4 caption = "Color Range 4 Low" default = rgb(40/255,12/255,64/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max5 caption = "Color Range 5 High" default = rgb(251/255,148/255,230/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min5 caption = "Color Range 5 Low" default = rgb(100/255,20/255,67/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max6 caption = "Color Range 6 High" default = rgb(255/255,101/255,140/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min6 caption = "Color Range 6 Low" default = rgb(84/255,15/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max7 caption = "Color Range 7 High" default = rgb(255/255,149/255,111/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min7 caption = "Color Range 7 Low" default = rgb(77/255,36/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Max8 caption = "Color Range 8 High" default = rgb(255/255,252/255,125/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Bouquet 8") endparam color param bouquet8Min8 caption = "Color Range 8 Low" default = rgb(95/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Bouquet 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Color Switch 8 ;-------------------------------------------------------------------- heading caption = " Color Switch 8 Settings" visible = (@customize && @colorPreset == "Color Switch 8") endheading color param colorSwitch8Max1 caption = "Color Range 1 High" default = rgb(255/255,33/255,52/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min1 caption = "Color Range 1 Low" default = rgb(90/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max2 caption = "Color Range 2 High" default = rgb(61/255,136/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,82/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max3 caption = "Color Range 3 High" default = rgb(0/255,255/255,44/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min3 caption = "Color Range 3 Low" default = rgb(0/255,70/255,7/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max4 caption = "Color Range 4 High" default = rgb(255/255,131/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min4 caption = "Color Range 4 Low" default = rgb(105/255,40/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max5 caption = "Color Range 5 High" default = rgb(255/255,27/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min5 caption = "Color Range 5 Low" default = rgb(104/255,0/255,78/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max6 caption = "Color Range 6 High" default = rgb(168/255,87/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min6 caption = "Color Range 6 Low" default = rgb(35/255,0/255,58/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max7 caption = "Color Range 7 High" default = rgb(0/255,252/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min7 caption = "Color Range 7 Low" default = rgb(0/255,60/255,60/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,38/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Color Switch 8") endparam color param colorSwitch8Min8 caption = "Color Range 8 Low" default = rgb(90/255,90/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Color Switch 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Evening Sky 8 ;-------------------------------------------------------------------- heading caption = " Evening Sky 8 Settings" visible = (@customize && @colorPreset == "Evening Sky 8") endheading color param eveningSky8Max1 caption = "Color Range 1 High" default = rgb(255/255,238/255,222/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min1 caption = "Color Range 1 Low" default = rgb(50/255,35/255,35/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max2 caption = "Color Range 2 High" default = rgb(255/255,226/255,85/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min2 caption = "Color Range 2 Low" default = rgb(85/255,54/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max3 caption = "Color Range 3 High" default = rgb(249/255,148/255,216/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min3 caption = "Color Range 3 Low" default = rgb(79/255,20/255,57/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max4 caption = "Color Range 4 High" default = rgb(159/255,159/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min4 caption = "Color Range 4 Low" default = rgb(22/255,16/255,54/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max5 caption = "Color Range 5 High" default = rgb(255/255,175/255,79/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min5 caption = "Color Range 5 Low" default = rgb(62/255,42/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max6 caption = "Color Range 6 High" default = rgb(124/255,190/255,251/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min6 caption = "Color Range 6 Low" default = rgb(13/255,40/255,62/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max7 caption = "Color Range 7 High" default = rgb(255/255,111/255,123/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min7 caption = "Color Range 7 Low" default = rgb(57/255,24/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Max8 caption = "Color Range 8 High" default = rgb(111/255,255/255,245/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Evening Sky 8") endparam color param eveningSky8Min8 caption = "Color Range 8 Low" default = rgb(0/255,60/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Evening Sky 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Fantasia 8 ;-------------------------------------------------------------------- heading caption = " Fantasia 8 Settings" visible = (@customize && @colorPreset == "Fantasia 8") endheading color param fantasia8Max1 caption = "Color Range 1 High" default = rgb(255/255,230/255,103/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min1 caption = "Color Range 1 Low" default = rgb(102/255,81/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max2 caption = "Color Range 2 High" default = rgb(230/255,78/255,208/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min2 caption = "Color Range 2 Low" default = rgb(104/255,0/255,52/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max3 caption = "Color Range 3 High" default = rgb(180/255,119/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min3 caption = "Color Range 3 Low" default = rgb(56/255,0/255,82/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max4 caption = "Color Range 4 High" default = rgb(0/255,228/255,150/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min4 caption = "Color Range 4 Low" default = rgb(0/255,50/255,30/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max5 caption = "Color Range 5 High" default = rgb(131/255,148/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min5 caption = "Color Range 5 Low" default = rgb(38/255,31/255,85/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max6 caption = "Color Range 6 High" default = rgb(255/255,182/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min6 caption = "Color Range 6 Low" default = rgb(76/255,40/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max7 caption = "Color Range 7 High" default = rgb(252/255,0/255,113/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min7 caption = "Color Range 7 Low" default = rgb(84/255,0/255,34/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Max8 caption = "Color Range 8 High" default = rgb(0/255,232/255,249/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Fantasia 8") endparam color param fantasia8Min8 caption = "Color Range 8 Low" default = rgb(0/255,64/255,78/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Fantasia 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Flowering Orchard 8 ;-------------------------------------------------------------------- heading caption = " Flowering Orchard 8 Settings" visible = (@customize && @colorPreset == "Flowering Orchard 8") endheading color param floweringOrchard8Max1 caption = "Color Range 1 High" default = rgb(255/255,188/255,213/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min1 caption = "Color Range 1 Low" default = rgb(132/255,30/255,66/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max2 caption = "Color Range 2 High" default = rgb(240/255,135/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min2 caption = "Color Range 2 Low" default = rgb(70/255,0/255,59/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max3 caption = "Color Range 3 High" default = rgb(255/255,75/255,153/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min3 caption = "Color Range 3 Low" default = rgb(104/255,15/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max4 caption = "Color Range 4 High" default = rgb(71/255,213/255,119/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min4 caption = "Color Range 4 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max5 caption = "Color Range 5 High" default = rgb(255/255,102/255,209/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min5 caption = "Color Range 5 Low" default = rgb(116/255,10/255,86/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max6 caption = "Color Range 6 High" default = rgb(154/255,199/255,51/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min6 caption = "Color Range 6 Low" default = rgb(28/255,44/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max7 caption = "Color Range 7 High" default = rgb(255/255,162/255,228/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min7 caption = "Color Range 7 Low" default = rgb(110/255,0/255,55/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Max8 caption = "Color Range 8 High" default = rgb(255/255,201/255,237/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam color param floweringOrchard8Min8 caption = "Color Range 8 Low" default = rgb(145/255,20/255,54/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Flowering Orchard 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Morning Sky 8 ;-------------------------------------------------------------------- heading caption = " Morning Sky 8 Settings" visible = (@customize && @colorPreset == "Morning Sky 8") endheading color param morningSky8Max1 caption = "Color Range 1 High" default = rgb(255/255,178/255,217/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min1 caption = "Color Range 1 Low" default = rgb(79/255,29/255,57/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max2 caption = "Color Range 2 High" default = rgb(107/255,246/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min2 caption = "Color Range 2 Low" default = rgb(13/255,70/255,75/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max3 caption = "Color Range 3 High" default = rgb(255/255,199/255,137/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min3 caption = "Color Range 3 Low" default = rgb(62/255,42/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max4 caption = "Color Range 4 High" default = rgb(241/255,245/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min4 caption = "Color Range 4 Low" default = rgb(16/255,24/255,46/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max5 caption = "Color Range 5 High" default = rgb(255/255,177/255,188/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min5 caption = "Color Range 5 Low" default = rgb(54/255,14/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max6 caption = "Color Range 6 High" default = rgb(248/255,236/255,236/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min6 caption = "Color Range 6 Low" default = rgb(49/255,38/255,35/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max7 caption = "Color Range 7 High" default = rgb(129/255,201/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min7 caption = "Color Range 7 Low" default = rgb(0/255,56/255,70/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,146/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Morning Sky 8") endparam color param morningSky8Min8 caption = "Color Range 8 Low" default = rgb(89/255,76/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Morning Sky 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Pastel 8 ;-------------------------------------------------------------------- heading caption = " Pastel 8 Settings" visible = (@customize && @colorPreset == "Pastel 8") endheading color param pastel8Max1 caption = "Color Range 1 High" default = rgb(147/255,255/255,193/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min1 caption = "Color Range 1 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max2 caption = "Color Range 2 High" default = rgb(147/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min2 caption = "Color Range 2 Low" default = rgb(0/255,48/255,48/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max3 caption = "Color Range 3 High" default = rgb(148/255,148/255,253/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min3 caption = "Color Range 3 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max4 caption = "Color Range 4 High" default = rgb(199/255,149/255,253/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min4 caption = "Color Range 4 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max5 caption = "Color Range 5 High" default = rgb(255/255,147/255,221/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min5 caption = "Color Range 5 Low" default = rgb(96/255,0/255,32/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max6 caption = "Color Range 6 High" default = rgb(254/255,148/255,148/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min6 caption = "Color Range 6 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max7 caption = "Color Range 7 High" default = rgb(255/255,202/255,147/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min7 caption = "Color Range 7 Low" default = rgb(160/255,16/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,147/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Pastel 8") endparam color param pastel8Min8 caption = "Color Range 8 Low" default = rgb(152/255,64/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Pastel 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Pastel Rainbow 8 ;-------------------------------------------------------------------- heading caption = " Pastel Rainbow 8 Settings" visible = (@customize && @colorPreset == "Pastel Rainbow 8") endheading color param pastelRainbow8Max1 caption = "Color Range 1 High" default = rgb(242/255,246/255,174/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min1 caption = "Color Range 1 Low" default = rgb(20/255,48/255,12/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max2 caption = "Color Range 2 High" default = rgb(182/255,242/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min2 caption = "Color Range 2 Low" default = rgb(20/255,44/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max3 caption = "Color Range 3 High" default = rgb(202/255,202/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min3 caption = "Color Range 3 Low" default = rgb(36/255,36/255,48/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max4 caption = "Color Range 4 High" default = rgb(255/255,170/255,170/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min4 caption = "Color Range 4 Low" default = rgb(89/255,0/255,24/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max5 caption = "Color Range 5 High" default = rgb(255/255,246/255,178/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min5 caption = "Color Range 5 Low" default = rgb(40/255,0/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max6 caption = "Color Range 6 High" default = rgb(255/255,238/255,206/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min6 caption = "Color Range 6 Low" default = rgb(52/255,16/255,40/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max7 caption = "Color Range 7 High" default = rgb(214/255,222/255,161/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min7 caption = "Color Range 7 Low" default = rgb(4/255,32/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Max8 caption = "Color Range 8 High" default = rgb(255/255,230/255,246/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam color param pastelRainbow8Min8 caption = "Color Range 8 Low" default = rgb(70/255,50/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Pastel Rainbow 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Showtime 8 ;-------------------------------------------------------------------- heading caption = " Showtime 8 Settings" visible = (@customize && @colorPreset == "Showtime 8") endheading color param showtime8Max1 caption = "Color Range 1 High" default = rgb(241/255,53/255,82/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min1 caption = "Color Range 1 Low" default = rgb(88/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max2 caption = "Color Range 2 High" default = rgb(255/255,121/255,52/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min2 caption = "Color Range 2 Low" default = rgb(107/255,29/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max3 caption = "Color Range 3 High" default = rgb(253/255,168/255,67/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min3 caption = "Color Range 3 Low" default = rgb(97/255,42/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max4 caption = "Color Range 4 High" default = rgb(255/255,231/255,21/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min4 caption = "Color Range 4 Low" default = rgb(140/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max5 caption = "Color Range 5 High" default = rgb(58/255,219/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min5 caption = "Color Range 5 Low" default = rgb(0/255,36/255,83/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max6 caption = "Color Range 6 High" default = rgb(9/255,116/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min6 caption = "Color Range 6 Low" default = rgb(33/255,30/255,81/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max7 caption = "Color Range 7 High" default = rgb(105/255,71/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min7 caption = "Color Range 7 Low" default = rgb(36/255,0/255,76/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Max8 caption = "Color Range 8 High" default = rgb(187/255,32/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Showtime 8") endparam color param showtime8Min8 caption = "Color Range 8 Low" default = rgb(50/255,0/255,56/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Showtime 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Soleil 8 ;-------------------------------------------------------------------- heading caption = " Soleil 8 Settings" visible = (@customize && @colorPreset == "Soleil 8") endheading color param soleil8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,35/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min1 caption = "Color Range 1 Low" default = rgb(76/255,44/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max2 caption = "Color Range 2 High" default = rgb(255/255,209/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min2 caption = "Color Range 2 Low" default = rgb(59/255,24/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max3 caption = "Color Range 3 High" default = rgb(231/255,237/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min3 caption = "Color Range 3 Low" default = rgb(54/255,29/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max4 caption = "Color Range 4 High" default = rgb(255/255,141/255,49/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min4 caption = "Color Range 4 Low" default = rgb(92/255,32/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,156/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min5 caption = "Color Range 5 Low" default = rgb(76/255,44/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max6 caption = "Color Range 6 High" default = rgb(255/255,158/255,17/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min6 caption = "Color Range 6 Low" default = rgb(59/255,24/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,217/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min7 caption = "Color Range 7 Low" default = rgb(76/255,41/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Max8 caption = "Color Range 8 High" default = rgb(255/255,184/255,53/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Soleil 8") endparam color param soleil8Min8 caption = "Color Range 8 Low" default = rgb(76/255,29/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Soleil 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Chill 8 ;-------------------------------------------------------------------- heading caption = " Chill 8 Settings" visible = (@customize && @colorPreset == "Chill 8") endheading color param chillMax1 caption = "Color Range 1 High" default = rgb(233/255,245/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin1 caption = "Color Range 1 Low" default = rgb(0/255,21/255,60/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax2 caption = "Color Range 2 High" default = rgb(182/255,201/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,76/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax3 caption = "Color Range 3 High" default = rgb(0/255,34/255,136/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin3 caption = "Color Range 3 Low" default = rgb(9/255,9/255,59/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax4 caption = "Color Range 4 High" default = rgb(0/255,75/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin4 caption = "Color Range 4 Low" default = rgb(0/255,0/255,25/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax5 caption = "Color Range 5 High" default = rgb(233/255,245/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin5 caption = "Color Range 5 Low" default = rgb(0/255,21/255,60/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax6 caption = "Color Range 6 High" default = rgb(182/255,201/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin6 caption = "Color Range 6 Low" default = rgb(0/255,0/255,76/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax7 caption = "Color Range 7 High" default = rgb(0/255,34/255,136/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin7 caption = "Color Range 7 Low" default = rgb(9/255,9/255,59/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMax8 caption = "Color Range 8 High" default = rgb(0/255,75/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Chill 8") endparam color param chillMin8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,25/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Chill 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Cloud Nine 8 ;-------------------------------------------------------------------- heading caption = " Cloud Nine 8 Settings" visible = (@customize && @colorPreset == "Cloud Nine 8") endheading color param cloudNineMax1 caption = "Color Range 1 High" default = rgb(255/255,255/255,173/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin1 caption = "Color Range 1 Low" default = rgb(143/255,60/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax2 caption = "Color Range 2 High" default = rgb(247/255,214/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin2 caption = "Color Range 2 Low" default = rgb(139/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax3 caption = "Color Range 3 High" default = rgb(212/255,255/255,249/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin3 caption = "Color Range 3 Low" default = rgb(0/255,53/255,20/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax4 caption = "Color Range 4 High" default = rgb(255/255,221/255,217/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin4 caption = "Color Range 4 Low" default = rgb(115/255,21/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax5 caption = "Color Range 5 High" default = rgb(255/255,255/255,173/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin5 caption = "Color Range 5 Low" default = rgb(140/255,63/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax6 caption = "Color Range 6 High" default = rgb(247/255,214/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin6 caption = "Color Range 6 Low" default = rgb(139/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax7 caption = "Color Range 7 High" default = rgb(212/255,255/255,249/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin7 caption = "Color Range 7 Low" default = rgb(0/255,53/255,20/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMax8 caption = "Color Range 8 High" default = rgb(255/255,221/255,217/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam color param cloudNineMin8 caption = "Color Range 8 Low" default = rgb(115/255,21/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Cloud Nine 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for La Terra 8 ;-------------------------------------------------------------------- heading caption = " La Terra 8 Settings" visible = (@customize && @colorPreset == "La Terra 8") endheading color param laTerraMax1 caption = "Color Range 1 High" default = rgb(255/255,174/255,103/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin1 caption = "Color Range 1 Low" default = rgb(102/255,47/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax2 caption = "Color Range 2 High" default = rgb(255/255,242/255,39/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin2 caption = "Color Range 2 Low" default = rgb(100/255,58/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax3 caption = "Color Range 3 High" default = rgb(170/255,86/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin3 caption = "Color Range 3 Low" default = rgb(92/255,29/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax4 caption = "Color Range 4 High" default = rgb(190/255,118/255,13/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin4 caption = "Color Range 4 Low" default = rgb(84/255,41/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax5 caption = "Color Range 5 High" default = rgb(255/255,174/255,103/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin5 caption = "Color Range 5 Low" default = rgb(102/255,47/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax6 caption = "Color Range 6 High" default = rgb(255/255,242/255,39/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin6 caption = "Color Range 6 Low" default = rgb(100/255,58/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax7 caption = "Color Range 7 High" default = rgb(170/255,86/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin7 caption = "Color Range 7 Low" default = rgb(92/255,29/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMax8 caption = "Color Range 8 High" default = rgb(190/255,118/255,13/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "La Terra 8") endparam color param laTerraMin8 caption = "Color Range 8 Low" default = rgb(84/255,41/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "La Terra 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Santa Fe 8 ;-------------------------------------------------------------------- heading caption = " Santa Fe 8 Settings" visible = (@customize && @colorPreset == "Santa Fe 8") endheading color param santaFe8Max1 caption = "Color Range 1 High" default = rgb(255/255,235/255,76/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min1 caption = "Color Range 1 Low" default = rgb(122/255,52/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max2 caption = "Color Range 2 High" default = rgb(0/255,229/255,222/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min2 caption = "Color Range 2 Low" default = rgb(0/255,48/255,51/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max3 caption = "Color Range 3 High" default = rgb(255/255,200/255,140/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min3 caption = "Color Range 3 Low" default = rgb(82/255,21/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max4 caption = "Color Range 4 High" default = rgb(255/255,157/255,82/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min4 caption = "Color Range 4 Low" default = rgb(130/255,0/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max5 caption = "Color Range 5 High" default = rgb(255/255,235/255,76/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min5 caption = "Color Range 5 Low" default = rgb(122/255,52/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max6 caption = "Color Range 6 High" default = rgb(0/255,229/255,222/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min6 caption = "Color Range 6 Low" default = rgb(0/255,48/255,51/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max7 caption = "Color Range 7 High" default = rgb(255/255,200/255,140/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min7 caption = "Color Range 7 Low" default = rgb(82/255,21/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Max8 caption = "Color Range 8 High" default = rgb(255/255,157/255,82/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Santa Fe 8") endparam color param santaFe8Min8 caption = "Color Range 8 Low" default = rgb(130/255,0/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Santa Fe 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Spring 8 ;-------------------------------------------------------------------- heading caption = " Spring 8 Settings" visible = (@customize && @colorPreset == "Spring 8") endheading color param spring8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,145/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min1 caption = "Color Range 1 Low" default = rgb(110/255,65/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max2 caption = "Color Range 2 High" default = rgb(215/255,182/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min2 caption = "Color Range 2 Low" default = rgb(86/255,0/255,110/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max3 caption = "Color Range 3 High" default = rgb(189/255,246/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min3 caption = "Color Range 3 Low" default = rgb(0/255,51/255,54/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max4 caption = "Color Range 4 High" default = rgb(255/255,181/255,237/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min4 caption = "Color Range 4 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,145/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min5 caption = "Color Range 5 Low" default = rgb(110/255,65/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max6 caption = "Color Range 6 High" default = rgb(215/255,182/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min6 caption = "Color Range 6 Low" default = rgb(86/255,0/255,110/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max7 caption = "Color Range 7 High" default = rgb(189/255,246/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min7 caption = "Color Range 7 Low" default = rgb(0/255,51/255,54/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Max8 caption = "Color Range 8 High" default = rgb(255/255,181/255,237/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Spring 8") endparam color param spring8Min8 caption = "Color Range 8 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Spring 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Summer 8 ;-------------------------------------------------------------------- heading caption = " Summer 8 Settings" visible = (@customize && @colorPreset == "Summer 8") endheading color param summer8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min1 caption = "Color Range 1 Low" default = rgb(64/255,32/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max2 caption = "Color Range 2 High" default = rgb(255/255,64/255,64/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min2 caption = "Color Range 2 Low" default = rgb(64/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max3 caption = "Color Range 3 High" default = rgb(0/255,255/255,101/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min3 caption = "Color Range 3 Low" default = rgb(0/255,62/255,22/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max4 caption = "Color Range 4 High" default = rgb(64/255,255/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min4 caption = "Color Range 4 Low" default = rgb(0/255,0/255,64/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min5 caption = "Color Range 5 Low" default = rgb(64/255,32/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max6 caption = "Color Range 6 High" default = rgb(255/255,64/255,64/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min6 caption = "Color Range 6 Low" default = rgb(64/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max7 caption = "Color Range 7 High" default = rgb(0/255,255/255,101/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min7 caption = "Color Range 7 Low" default = rgb(0/255,62/255,22/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Max8 caption = "Color Range 8 High" default = rgb(64/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Summer 8") endparam color param summer8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Summer 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Fall 8 ;-------------------------------------------------------------------- heading caption = " Fall 8 Settings" visible = (@customize && @colorPreset == "Fall 8") endheading color param fall8Max1 caption = "Color Range 1 High" default = rgb(255/255,235/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min1 caption = "Color Range 1 Low" default = rgb(136/255,46/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max2 caption = "Color Range 2 High" default = rgb(255/255,61/255,32/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min2 caption = "Color Range 2 Low" default = rgb(96/255,26/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max3 caption = "Color Range 3 High" default = rgb(255/255,184/255,26/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min3 caption = "Color Range 3 Low" default = rgb(86/255,24/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max4 caption = "Color Range 4 High" default = rgb(255/255,107/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min4 caption = "Color Range 4 Low" default = rgb(112/255,29/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max5 caption = "Color Range 5 High" default = rgb(255/255,235/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min5 caption = "Color Range 5 Low" default = rgb(136/255,46/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max6 caption = "Color Range 6 High" default = rgb(255/255,61/255,32/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min6 caption = "Color Range 6 Low" default = rgb(96/255,26/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max7 caption = "Color Range 7 High" default = rgb(255/255,184/255,26/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min7 caption = "Color Range 7 Low" default = rgb(86/255,24/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Max8 caption = "Color Range 8 High" default = rgb(255/255,107/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Fall 8") endparam color param fall8Min8 caption = "Color Range 8 Low" default = rgb(112/255,29/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Fall 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Winter 8 ;-------------------------------------------------------------------- heading caption = " Winter 8 Settings" visible = (@customize && @colorPreset == "Winter 8") endheading color param winter8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min1 caption = "Color Range 1 Low" default = rgb(65/255,65/255,87/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max2 caption = "Color Range 2 High" default = rgb(163/255,186/255,209/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min2 caption = "Color Range 2 Low" default = rgb(35/255,35/255,61/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max3 caption = "Color Range 3 High" default = rgb(173/255,166/255,157/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min3 caption = "Color Range 3 Low" default = rgb(78/255,65/255,52/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max4 caption = "Color Range 4 High" default = rgb(113/255,118/255,140/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min4 caption = "Color Range 4 Low" default = rgb(20/255,32/255,68/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min5 caption = "Color Range 5 Low" default = rgb(65/255,65/255,87/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max6 caption = "Color Range 6 High" default = rgb(163/255,186/255,209/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min6 caption = "Color Range 6 Low" default = rgb(35/255,35/255,61/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max7 caption = "Color Range 7 High" default = rgb(173/255,166/255,157/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min7 caption = "Color Range 7 Low" default = rgb(78/255,65/255,52/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Max8 caption = "Color Range 8 High" default = rgb(113/255,118/255,140/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Winter 8") endparam color param winter8Min8 caption = "Color Range 8 Low" default = rgb(20/255,32/255,68/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Winter 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Mojave 8 ;-------------------------------------------------------------------- heading caption = " Mojave 8 Settings" visible = (@customize && @colorPreset == "Mojave 8") endheading color param mojave8Max1 caption = "Color Range 1 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min1 caption = "Color Range 1 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max2 caption = "Color Range 2 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min2 caption = "Color Range 2 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max3 caption = "Color Range 3 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min3 caption = "Color Range 3 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max4 caption = "Color Range 4 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min4 caption = "Color Range 4 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max5 caption = "Color Range 5 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min5 caption = "Color Range 5 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max6 caption = "Color Range 6 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min6 caption = "Color Range 6 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max7 caption = "Color Range 7 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min7 caption = "Color Range 7 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Max8 caption = "Color Range 8 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Mojave 8") endparam color param mojave8Min8 caption = "Color Range 8 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Mojave 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green 8 ;-------------------------------------------------------------------- heading caption = " Gold/Green 8 Settings" visible = (@customize && @colorPreset == "Gold/Green 8") endheading color param goldGreen8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min2 caption = "Color Range 2 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min4 caption = "Color Range 4 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max5 caption = "Color Range 5 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min5 caption = "Color Range 5 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max6 caption = "Color Range 6 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min6 caption = "Color Range 6 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max7 caption = "Color Range 7 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min7 caption = "Color Range 7 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Max8 caption = "Color Range 8 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Gold/Green 8") endparam color param goldGreen8Min8 caption = "Color Range 8 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Gold/Green 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green Alt 8 ;-------------------------------------------------------------------- heading caption = " Gold/Green Alt 8 Settings" visible = (@customize && @colorPreset == "Gold/Green Alt 8") endheading color param goldGreenAlt8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max2 caption = "Color Range 2 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min2 caption = "Color Range 2 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max4 caption = "Color Range 4 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min4 caption = "Color Range 4 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min5 caption = "Color Range 5 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max6 caption = "Color Range 6 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min6 caption = "Color Range 6 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min7 caption = "Color Range 7 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Max8 caption = "Color Range 8 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam color param goldGreenAlt8Min8 caption = "Color Range 8 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Gold/Green Alt 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Silver 8 ;-------------------------------------------------------------------- heading caption = " Gold/Silver 8 Settings" visible = (@customize && @colorPreset == "Gold/Silver 8") endheading color param goldSilver8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min2 caption = "Color Range 2 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min4 caption = "Color Range 4 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min5 caption = "Color Range 5 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min6 caption = "Color Range 6 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min7 caption = "Color Range 7 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam color param goldSilver8Min8 caption = "Color Range 8 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Gold/Silver 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Silver Alt 8 ;-------------------------------------------------------------------- heading caption = " Gold/Silver Alt 8 Settings" visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endheading color param goldSilverAlt8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min2 caption = "Color Range 2 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min4 caption = "Color Range 4 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min5 caption = "Color Range 5 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min6 caption = "Color Range 6 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min7 caption = "Color Range 7 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam color param goldSilverAlt8Min8 caption = "Color Range 8 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Gold/Silver Alt 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow 8 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow 8 Settings" visible = (@customize && @colorPreset == "Purple/Yellow 8") endheading color param purpleYellow8Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max2 caption = "Color Range 2 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min2 caption = "Color Range 2 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max3 caption = "Color Range 3 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min3 caption = "Color Range 3 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max4 caption = "Color Range 4 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min4 caption = "Color Range 4 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min5 caption = "Color Range 5 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min6 caption = "Color Range 6 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min7 caption = "Color Range 7 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam color param purpleYellow8Min8 caption = "Color Range 8 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Purple/Yellow 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow Alt 8 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow Alt 8 Settings" visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endheading color param purpleYellowAlt8Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max3 caption = "Color Range 3 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min3 caption = "Color Range 3 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min4 caption = "Color Range 4 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max5 caption = "Color Range 5 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min5 caption = "Color Range 5 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min6 caption = "Color Range 6 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max7 caption = "Color Range 7 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min7 caption = "Color Range 7 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam color param purpleYellowAlt8Min8 caption = "Color Range 8 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Purple/Yellow Alt 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Silver/Blue 8 ;-------------------------------------------------------------------- heading caption = " Silver/Blue 8 Settings" visible = (@customize && @colorPreset == "Silver/Blue 8") endheading color param silverBlue8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min1 caption = "Color Range 1 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min2 caption = "Color Range 2 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min3 caption = "Color Range 3 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min4 caption = "Color Range 4 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max5 caption = "Color Range 5 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min5 caption = "Color Range 5 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max6 caption = "Color Range 6 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min6 caption = "Color Range 6 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max7 caption = "Color Range 7 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min7 caption = "Color Range 7 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Max8 caption = "Color Range 8 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam color param silverBlue8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Silver/Blue 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Silver/Blue Alt 8 ;-------------------------------------------------------------------- heading caption = " Silver/Blue Alt 8 Settings" visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endheading color param silverBlueAlt8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min1 caption = "Color Range 1 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max2 caption = "Color Range 2 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min3 caption = "Color Range 3 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max4 caption = "Color Range 4 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min4 caption = "Color Range 4 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min5 caption = "Color Range 5 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max6 caption = "Color Range 6 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min6 caption = "Color Range 6 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min7 caption = "Color Range 7 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Max8 caption = "Color Range 8 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam color param silverBlueAlt8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize && @colorPreset == "Silver/Blue Alt 8") endparam ;-------------------------------------------------------------------- ; Color Defaults for Fourth of July 3 ;-------------------------------------------------------------------- heading caption = " Fourth of July 3 Settings" visible = (@customize && @colorPreset == "Fourth of July 3") endheading color param fourthOfJuly3Max1 caption = "Color Range 1 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Fourth of July 3") endparam color param fourthOfJuly3Min1 caption = "Color Range 1 Low" default = rgb(128/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Fourth of July 3") endparam color param fourthOfJuly3Max2 caption = "Color Range 2 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Fourth of July 3") endparam color param fourthOfJuly3Min2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,128/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Fourth of July 3") endparam color param fourthOfJuly3Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Fourth of July 3") endparam color param fourthOfJuly3Min3 caption = "Color Range 3 Low" default = rgb(128/255,128/255,128/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Fourth of July 3") endparam ;-------------------------------------------------------------------- ; Color Defaults for Blue/Silver 2 ;-------------------------------------------------------------------- heading caption = " Blue/Silver 2 Settings" visible = (@customize && @colorPreset == "Blue/Silver 2") endheading color param blueSilver2Max1 caption = "Color Range 1 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Blue/Silver 2") endparam color param blueSilver2Min1 caption = "Color Range 1 Low" default = rgb(0/255,0/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Blue/Silver 2") endparam color param blueSilver2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Blue/Silver 2") endparam color param blueSilver2Min2 caption = "Color Range 2 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Blue/Silver 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Blue/White 2 ;-------------------------------------------------------------------- heading caption = " Blue/White 2 Settings" visible = (@customize && @colorPreset == "Blue/White 2") endheading color param blueWhite2Max1 caption = "Color Range 1 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Blue/White 2") endparam color param blueWhite2Min1 caption = "Color Range 1 Low" default = rgb(0/255,0/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Blue/White 2") endparam color param blueWhite2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Blue/White 2") endparam color param blueWhite2Min2 caption = "Color Range 2 Low" default = rgb(124/255,124/255,124/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Blue/White 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Cyan/Magenta 2 ;-------------------------------------------------------------------- heading caption = " Cyan/Magenta 2 Settings" visible = (@customize && @colorPreset == "Cyan/Magenta 2") endheading color param cyanMagenta2Max1 caption = "Color Range 1 High" default = rgb(128/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Cyan/Magenta 2") endparam color param cyanMagenta2Min1 caption = "Color Range 1 Low" default = rgb(0/255,64/255,64/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Cyan/Magenta 2") endparam color param cyanMagenta2Max2 caption = "Color Range 2 High" default = rgb(255/255,128/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Cyan/Magenta 2") endparam color param cyanMagenta2Min2 caption = "Color Range 2 Low" default = rgb(64/255,0/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Cyan/Magenta 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Cyan/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Cyan/Yellow 2 Settings" visible = (@customize && @colorPreset == "Cyan/Yellow 2") endheading color param cyanYellow2Max1 caption = "Color Range 1 High" default = rgb(128/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Cyan/Yellow 2") endparam color param cyanYellow2Min1 caption = "Color Range 1 Low" default = rgb(0/255,64/255,64/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Cyan/Yellow 2") endparam color param cyanYellow2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Cyan/Yellow 2") endparam color param cyanYellow2Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Cyan/Yellow 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green 2 ;-------------------------------------------------------------------- heading caption = " Gold/Green 2 Settings" visible = (@customize && @colorPreset == "Gold/Green 2") endheading color param goldGreen2Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Gold/Green 2") endparam color param goldGreen2Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Gold/Green 2") endparam color param goldGreen2Max2 caption = "Color Range 2 High" default = rgb(0/255,129/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Gold/Green 2") endparam color param goldGreen2Min2 caption = "Color Range 2 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Gold/Green 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow 2 Settings" visible = (@customize && @colorPreset == "Purple/Yellow 2") endheading color param purpleYellow2Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow 2") endparam color param purpleYellow2Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Purple/Yellow 2") endparam color param purpleYellow2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow 2") endparam color param purpleYellow2Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Purple/Yellow 2") endparam ;-------------------------------------------------------------------- ; Color Defaults for Red/Tan 2 ;-------------------------------------------------------------------- heading caption = " Red/Tan 2 Settings" visible = (@customize && @colorPreset == "Red/Tan 2") endheading color param redTan2Max1 caption = "Color Range 1 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize && @colorPreset == "Red/Tan 2") endparam color param redTan2Min1 caption = "Color Range 1 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize && @colorPreset == "Red/Tan 2") endparam color param redTan2Max2 caption = "Color Range 2 High" default = rgb(255/255,208/255,152/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize && @colorPreset == "Red/Tan 2") endparam color param redTan2Min2 caption = "Color Range 2 Low" default = rgb(128/255,108/255,60/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize && @colorPreset == "Red/Tan 2") endparam ;-------------------------------------------------------------------- ; General Color Parameters ;-------------------------------------------------------------------- heading caption = " General Color Parameters" endheading color param maxColor caption = "Max Iter Color" default = rgb(0,0,0) hint = "Specifies the color assigned when the Maximum Iterations \ is reached before the orbit is trapped." endparam color param backColor caption = "Background Color" default = rgb(0,0,0) hint = "Specifies the color assigned to the background of the image." visible = (@solid == false) endparam color param borderColor caption = "Border Color" default = rgb(0,0,0) hint = "Specifies the color assigned to the border of the shapes." visible = (@solidBorder == false) && (@colorPreset == "Gradient") && \ (@colorMode != "Normal") && (@borderWidth > 0.0) endparam bool param solidBorder caption = "Solid Border" hint = "If this is enabled orbits, the border around the shapes is \ made solid." default = false visible = (@colorPreset == "Gradient") && (@colorMode != "Normal") && \ (@borderWidth > 0.0) endparam int param colorOffset caption = "Range Offset" default = 0 min = 0 max = 23 hint = "This is used to rotate the color ranges. The offset can \ range from 0 to 23, where 23 is the maximum number of ranges \ that can be specified using the 'Generate' Color Preset." visible = (@colorPreset != "Gradient") endparam bool param solid caption = "Solid Background" hint = "If this is enabled orbits that aren't trapped become solid. \ This is used to make the background transparent for use in \ multi-layer images." default = false endparam ;-------------------------------------------------------------------- ; Texture Parameters ;-------------------------------------------------------------------- heading caption = "Texture Settings" visible = (@colorPreset == "Gradient") endheading param useFBM caption = "Use fBm" hint = "Check this box to enable use of FBM texturing on the areas \ that are trapped." default = false visible = (@colorPreset == "Gradient") endparam param mask_type caption = "Mask Type" enum = "Distance" "Iteration" "Range" visible = (@useFBM && @colorPreset == "Gradient") endparam param mask caption = "Mask Threshold" default = 0.0 min = 0.0 hint = "With the Distance Mask Type orbits that don't come at least \ this close to the trap are made solid. A value of zero means \ that no pixels are made solid." visible = (@useFBM && @colorPreset == "Gradient") endparam param mask_mod caption = "Mask Modulation" default = 0 hint = "With the Modulation Mask Type the iteration that the orbit \ was caught by the trap is modulated by this value, and if \ the Mask Threshold is smaller the pixel is made solid." visible = (@useFBM && @colorPreset == "Gradient") endparam param inverse caption = "Mask Reversed" default = false visible = (@useFBM && @colorPreset == "Gradient") endparam param texture_type caption = "Texture Type" enum = "Random" "fBm" "Corrected fBm" hint = "This is the type of texture to add to the coloring. The \ Texture Amount parameter must be non-zero for texture to be added." visible = (@useFBM && @colorPreset == "Gradient") endparam param rnd caption = "Texture Amount" default = 0.0 hint = "This is the amount of texturing to add to the coloring." visible = (@useFBM && @colorPreset == "Gradient") endparam param initial caption = "fBm Initialisation" enum = "Pixel" "Orbit" ;"Trap" hint = "Different ways of starting the fBm formula. With \ Orbit and Trap the texture will follow the orbit trap \ elements in some way." visible = (@useFBM && @colorPreset == "Gradient") endparam param fbmfunc caption = "fBm Function" enum = "Ident" "Abs" "Sqr" "Sqrt" "Ceil" hint = "This is a function that is added to the fBm to chnage \ the way that it looks." visible = (@useFBM && @colorPreset == "Gradient") endparam param fbmscale caption = "fBm Scale" default = 1.0 hint = "This is the overall scale of the noise." visible = (@useFBM && @colorPreset == "Gradient") endparam param fbmoffset caption = "fBm Offset" default = (0,0) hint = "This is the offset of the pattern. You can use this to shift \ the pattern around on the complex plane." visible = (@useFBM && @colorPreset == "Gradient") endparam param angle caption = "fBm Rotation" default = 0.0 hint = "This is the angle, in degrees, of the noise." visible = (@useFBM && @colorPreset == "Gradient") endparam param step caption = "fBm Scale Step" default = 0.5 hint = "This is the step in scale between noise iterations." visible = (@useFBM && @colorPreset == "Gradient") endparam param anglestep caption = "fBm Rotation Step" default = 37.0 hint = "This is the angle, in degrees, to rotate between noise \ iterations." visible = (@useFBM && @colorPreset == "Gradient") endparam param octaves caption = "fBm Octaves" default = 7 min = 1 hint = "This is the number of iterations of the noise formula." visible = (@useFBM && @colorPreset == "Gradient") endparam param power caption = "fBm Exponent" default = 2.0 hint = "This is the exponent used to scramble numbers." visible = (@useFBM && @colorPreset == "Gradient") endparam param pattern caption = "fBm Pattern" enum = "None" "Marble" "Wood" "Cells" "Squares" hint = "This creates a repeating pattern to be disturbed by the fBm." visible = (@useFBM && @colorPreset == "Gradient") endparam param pfreq caption = "fBm Frequency" default = 1.0 hint = "This controls the frequency of the Pattern." visible = (@useFBM && @colorPreset == "Gradient") endparam param turb caption = "fBm Turbulence" default = 1.0 hint = "With a Pattern other than None this effects how \ the pattern will be by the fBm." visible = (@useFBM && @colorPreset == "Gradient") endparam } ;********************************************************************* mt+tma-popcorn-trap-plus { ; Mark Townsend, 10 Jun 1999 ; ; Clifford Pickover's Popcorn formula as an orbit trap. ; Added parameters by Toby Marshall, Aug 2006, v1.1 ; ; v1.2 -- added "Edge Definition" parameter, 21 Mar 2008 ; v1.3 -- added "limited iterations"; many thanks to ; Damien M. Jones for allowing me to use this code of his, ; 8 Apr. 2008 ; v1.4 -- added a pattern repeat param to the limited iter ; code, adapted from Ron Barnett, 9 Apr. 2008 ; v1.5 -- added more limited iter code, 10 Apr. 2008 ; v1.6 --rationalized and standardized limited iter code, ; 14 Apr. 2008 init: trap_z = 0 trap_p = 0 float x = 0 float y = 0 float xxx = 0 int iter = 0 float dist = 0 int pop_iter = 0 int max_iter = 0 int trap_iter = 0 float distance = 0 float min_dist = 1e30 complex z1 = (0,0) 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 bool trapped = false 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 t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) complex z2 = (0,0) complex z3 = (0,0) complex z4 = (0,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] complex p = (0,0) complex pfb = (0,0) float za = 0 if @no_of_iters == 0 max_iter = #maxiter - @skip else max_iter = @skip + @no_of_iters endif bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z 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 p = fn1(z1 + @start) x = real(p-@xp) * 1/@scale y = imag(p-flip(@yp)) * 1/@scale ; Iterate the Popcorn formula pop_iter = 0 while pop_iter < @max_iterations xxx = x if @style == 0 x = real(@xfn(x)) - @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 1 x = real(@xfn(x)) + @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 2 x = real(@xfn(x)) + @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 3 x = real(@xfn(x)) - @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 4 x = real(@xfn(x)) - @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 5 x = real(@xfn(x)) + @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 6 x = real(@xfn(x)) + @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 7 x = real(@xfn(x)) - @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) + tan(@popy * real(@fnd(xxx)))) elseif @style == 8 x = real(@xfn(x)) - @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 9 x = real(@xfn(x)) + @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 10 x = real(@xfn(x)) + @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 11 x = real(@xfn(x)) - @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) + @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 12 x = real(@xfn(x)) - @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 13 x = real(@xfn(x)) + @a * sin(real(@fna(y)) + tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 14 x = real(@xfn(x)) + @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) elseif @style == 15 x = real(@xfn(x)) - @a * sin(real(@fna(y)) - tan(@popx * real(@fnb(y)))) y = real(@yfn(y)) - @a * sin(real(@fnc(xxx)) - tan(@popy * real(@fnd(xxx)))) endif pop_iter = pop_iter + 1 endwhile x = x * (@pvol2/100) * (@pvol/100) y = y * (@pvol3/100) * (@pvol/100) if @nuflav == true if @nuflav2 == true if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = @nufny2((flip(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^@pvol2b) endif else if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = flip((@nufny2(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ @nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (@nufuncxty(flip((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif else if @nuflav2 == true if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - @nufny2((flip(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = @nufny2((flip(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif else if @opxy == "X+Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) + flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "X-Y" p = @nufnx2((x-@pvol2a)^ @pvol2b) - flip((@nufny2(y-@pvol3a)^@pvol3b)) elseif @opxy == "Y-X" p = flip((@nufny2(y-@pvol3a)^@pvol3b))-@nufnx2((x-@pvol2a)^ @pvol2b) endif endif if @varType == "Normal" p = (@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Modulus" p = (@pvfn(|p|-@pv1)*@pv2)^@pv3 elseif @varType == "Atan2" p = atan2(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Real" p = real(@pvfn(p-@pv1)*@pv2)^@pv3 elseif @varType == "Imag" p = imag(@pvfn(p-@pv1)*@pv2)^@pv3 endif if @opadd == "None" p = p elseif @opadd == "+(X+Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" p = p + (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" p = p - (@nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" p = p + (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" p = p - (flip(@nufuncxty((y-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((x-@xtra1x)*@xtra2x)^@xtra3x)) endif endif f_p = @fn3(p) if @follow == true if (iter >= @skip && iter < max_iter) if @version < 1.6 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @trap_mode == 0 ; Closest if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < min_dist min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 1 ; Smallest trap dist = cabs(real(@fnp(f_p)) - @threshold) if dist < min_dist min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|))) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 2 ; First trap if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < @last min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 3 ; Last trap if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < @last && !trapped min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap_p = f_p trap2_z = #z trapped = true endif elseif @trap_mode == 4 ;first smallest dist = cabs(real(@fnp(f_p)) - @threshold) if (iter >= @skip && iter < max_iter) \ && dist < @last min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|)) ) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 5 ;last smallest dist = cabs(real(@fnp(f_p)) - @threshold) if dist < @last && !trapped min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|)) ) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif endif endif endif elseif @follow == false if @version < 1.6 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if (iter >= @skip && iter < max_iter) if @trap_mode == 0 ; Closest if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < min_dist min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 1 ; Smallest trap dist = cabs(real(@fnp(f_p)) - @threshold) if dist < min_dist min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|))) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 2 ; First trap if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < @last min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 3 ; Last trap if @light == false dist = abs(|z1*@z| - real(@fnp(|f_p|))-@threshold) else dist = abs(real(@fnp(|f_p|)) + |z1*@z|-@threshold) endif if dist < @last && !trapped min_dist = dist + @edge/3 distance = dist trap_iter = iter trap_z = z1 trap_p = f_p trap2_z = #z trapped = true endif elseif @trap_mode == 4 ;first smallest dist = cabs(real(@fnp(f_p)) - @threshold) if (iter >= @skip && iter < max_iter) \ && dist < @last min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|)) ) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif elseif @trap_mode == 5 ;last smallest dist = cabs(real(@fnp(f_p)) - @threshold) if dist < @last && !trapped min_dist = dist + @edge/3 distance = abs(|z1|-real(@fnp2(|f_p|)) ) trap_iter = iter trap_z = z1 trap2_z = #z trap_p = f_p trapped = true endif endif endif endif endif iter = iter + 1 final: if trapped 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 = ((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 = ((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 = ((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 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 = ((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 = ((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 if @invt == true if real(1/@msk) > min_dist && !(@msk == 0) #solid = true endif else if real(1/@msk) < min_dist && !(@msk == 0) #solid = true endif endif if @color_mode == 0 tmp = distance + @randomness * real(#random) elseif @color_mode == 1 tmp= 0.01 * trap_iter + @randomness * real(#random) elseif @color_mode == 2 tmp = cabs(trap_z) + @randomness * real(#random) elseif @color_mode == 3 tmp = abs(real(trap_z)) + @randomness * real(#random) elseif @color_mode == 4 tmp = abs(imag(trap_z)) + @randomness * real(#random) elseif @color_mode == 5 float angle = atan2(trap_z) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle + @randomness * real(#random) elseif @color_mode == 6 trap_p = @fn2(trap_p) ; Use that z as the starting point float x = real(trap_p) * 1/@mscale float y = imag(trap_p) * 1/@mscale ; Iterate the Martin formula iter = 0 while iter < @m_iterations float xx = x x = y - sin(x) y = @a2 - xx iter = iter + 1 endwhile trap_p = x + flip(y) tmp = cabs(trap_p) + @randomness * real(#random) elseif @color_mode == 7 tmp = cabs(trap_p) + @randomness * real(#random) elseif @color_mode == 8 tmp = abs(real(trap_p)) + @randomness * real(#random) elseif @color_mode == 9 tmp = abs(imag(trap_p)) + @randomness * real(#random) elseif @color_mode == 10 float angle = atan2(trap_p) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp= angle + @randomness * real(#random) elseif @color_mode == 11 tmp = ((real((@colorFn(trap_iter-@tz1)*@tz2)^@tz3) % @iter_mod) / \ @iter_mod) + @randomness * real(#random) endif #index = real(@indfn(((tmp+@shadx)*@shady)^@shadz+(texture)))+(tx*@txamt/10)\ /100 + t2*(tx*@txamt/10)/100 + rn*@r*(tx*@txamt/10)/100 else #solid = true endif default: title = "Popcorn Plus Orbit Traps" param version caption = "Version" default = 1.6 visible = false hint = "Used only for identification and fixing compatibility breaks" endparam param trap_mode caption = "Trap mode" enum = "Closest" "Smallest trap""First trap""Last trap""Smallest first"\ "Smallest last" endparam float param edge caption = "Edge Definition" default = 0 hint = "Increasing this value adds edges around the elements. \ You will need to adjust your gradient" endparam float param last caption = "Threshold" default = 1 visible = @trap_mode == "First trap" || @trap_mode == "Last trap" \ ||@trap_mode == "Smallest last" || @trap_mode == "Smallest first" endparam bool param light caption = "Change Flavor" default = false visible = @trap_mode == "Closest" \ ||@trap_mode == "First trap" || @trap_mode == "Last trap" endparam param color_mode caption = "Coloring mode" enum = "Distance" "Iteration" "Magnitude" "Real" "Imag" \ "Angle" "Martin" "Trap magnitude" "Trap real" \ "Trap imag" "Trap angle""Modulated Iter" endparam param a2 caption = "Martin parameter" default = 3.14159 visible = @color_mode == "Martin" endparam param m_iterations caption = "Martin iterations" hint = "This is the number of iterations for the Martin formula." default = 10 visible = @color_mode == "Martin" endparam param @mscale caption = "Martin scale" default = 1.0 visible = @color_mode == "Martin" endparam func fn2 caption = "Martin function" default = ident() visible = @color_mode == "Martin" endfunc float param iter_mod caption = "No. of Colors" default = 8.0 visible = @color_mode == "Modulated Iter" hint = "The number of different colors used for the Modulated Iter \ coloring mode." endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @color_mode > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @color_mode > 0 endparam heading caption = "Parameters" endheading int param skip caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." 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 bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam float param pvol caption = "Popcorn Percent" default = 100 hint = "Determines the overall strength of the pixel pattern overlay" endparam float param pvol2 caption = "% Real" default = 100 hint = "Changes the pattern distribution on the real axis--inactive when \ trap drawing is set to 'Imag'" visible = @pvol != 0 endparam float param pvol3 caption = "% Imag" default = 100 hint = "Changes the pattern distribution on the imaginary axis--inactive \ when trap drawing is set to 'Real'" visible = @pvol != 0 endparam int param style caption = "Popcorn Style" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16" default = 0 endparam param start caption = "Starting offset" default = (0,0) endparam float param a caption = "Popcorn parameter" default = 0.05 endparam param max_iterations caption = "Popcorn iterations" hint = "This is the number of iterations for the Popcorn formula." default = 10 endparam param @scale caption = "Popcorn scale" default = 1.0 endparam complex param z caption = "Shape" default = (1,0) endparam float param threshold caption = "Spread" default = 0 endparam float param xp caption = "X strength" default = 0 endparam float param yp caption = "Y strength" default = 0 endparam param popx caption = "Popcorn X" default = 3.0 endparam param popy caption = "Popcorn Y" default = 3.0 endparam float param shadx caption = "Shading offset" default = 0 hint = "This param is especially valuable for changing the tonal \ relationships between figure and background" endparam float param shady caption = "Shading strength" default = 1 endparam float param shadz caption = "Shading power" default = 1 endparam param randomness caption = "Randomness" hint = "This adds a random texture the the coloring." default = 0.0 endparam heading caption = "More Formula Parameters" visible = @pat endheading bool param pat caption = "More Formula Parameters" default = false endparam int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 visible = @pat endparam int param opxy caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "Only works with a few functions normally, but is more effective \ when 'Extra X/Y' is chosen" visible = @pat && @varType != "Modulus" endparam func pvfn caption = "X/Y Function" default = ident() visible = @pat endfunc complex param pv1 caption = "X/Y Offset" default = (0,0) visible = @pat endparam complex param pv2 caption = "X/Y Strength" default = (1,0) visible = @pat endparam complex param pv3 caption = "X/Y Power" default = (1,0) visible = @pat endparam func nufnx2 caption = "X Function" default = ident () visible = @pat endfunc func nufny2 caption = "Y Function" default = ident () visible = @pat endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false visible = @pat endparam float param pvol2a caption = "X Offset" default = 0 hint = "Changes the pattern distribution on the real axis" visible = @pat endparam float param pvol3a caption = "Y Offset" default = 0 hint = "Changes the pattern distribution on the imaginary axis" visible = @pat endparam float param pvol2b caption = "X Power" default = 1 hint = "Changes the pattern distribution on the real axis" visible = @pat endparam float param pvol3b caption = "Y Power" default = 1 hint = "Changes the pattern distribution on the imaginary axis" visible = @pat endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 visible = @pat endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @pat && @opadd > 0 endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @pat && @opadd > 0 endfunc bool param nuflav caption = "Change Extra Y Fn Flavor" default = false visible = @pat && @opadd > 0 endparam complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @pat && @opadd > 0 endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @pat && @opadd > 0 endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @pat && @opadd > 0 endparam heading caption = "Functions" endheading func fn1 caption = "Popcorn function" default = ident() endfunc func fn3 caption = "Another function" default = ident() endfunc func fna caption = "A function" default = ident() endfunc func fnb caption = "B function" default = ident() endfunc func fnc caption = "C function" default = ident() endfunc func fnd caption = "D function" default = ident() endfunc func xfn caption = "X function" default = ident() endfunc func yfn caption = "Y function" default = ident() endfunc func fnp caption = "P function" default = ident() endfunc func fnp2 caption = "Dist function" default = ident() visible = @trap_mode == "Smallest trap" \ ||@trap_mode == "Smallest last" || @trap_mode == "Smallest first" endfunc func indfn caption = "Final Index Function" default = sqrt() hint = "Changes the 'shading' of the elements." endfunc ; Morph Parameters-------------------------------------------------- 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 adv caption = "Morph Parameters" hint = "Additional shaping parameters and functions." default = false endparam param tha2 caption = "Morph -> Morph II" default = false visible = @adv endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @adv 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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @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 = @adv && @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @adv endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @adv && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @adv && @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 && @adv endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @adv && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @adv && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @adv endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @adv && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @adv && @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 && @adv endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @adv && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @adv && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @adv && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @adv endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @adv && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @adv && @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 && @adv endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @adv && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @adv && @change > 5 endfunc heading caption = "Masking" visible = @msk == 0 endheading heading caption = "Masking [active]" visible = @msk != 0 endheading float param msk caption = "Masking" default = 0.0 endparam param invt caption = "Invert Mask" default = false endparam 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 = true 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 } ;************************************************************** tma-LightTrap { ; ; version 1.27, 25 Oct 2007 ; version 1.28, 22 Mar 2008 -- added new trap modes ; and "Edge Definition" param. ; version 1.29, 8 Apr. 2008 -- added "limited ; iterations"; many thanks to Damien M. Jones ; for letting me use this code of his. ; version 1.30, 9 Apr. 2008 -- added a pattern ; repeat param to the limited iter code, ; adapted from Ron Barnett, and a couple of my own. ; version 1.31, 14 Apr. 2008 -- rationalized and ; standardized limited iter code. ; version 1.32, 18 Apr. 2008 -- removed two extraneous ; parameters left in from an experiment. ; version 1.32 18 Nov. 2019 -- added two parameters ; to trap blending: "Trap Emphasis" and "Trap ; Strength" ; ; ***For more information please have a look at ; tma.txt, where I have included a section on ; this coloring at the beginning ***** ; ; I'm showing my age here, but some 40 years ago, ; during the dark days of psychedelia, ; we flower children had a dance called "Trip the ; Light Fantastic". For those of you who missed ; those halcyon days, now you can "Trap the Light ; Fantastic", which is almost as much fun, if ; not more. And it's definitely better than acid, ; since you don't have to be completely zonkered ; to enjoy it. ; ; OVERVIEW ; ; This coloring is not well behaved like Doodads or ; Thingamajigs, in terms of allowing the user to ; consistently and easily find aesthetically-pleasing, ; dimensional-looking trap shapes. However in ; compensation, it can create a wide variety of ; them, given a bit of familiarity with the controls ; and patience. ; ; There are quite a number of various user-selectable ; parameters and functions, which have a wide ranging ; effect on the results produced. It is definitely ; worth your while to explore these at length: ; sometimes something very nice will appear from ; one click to the next. For fine tuning, you will ; find the explore tool very useful. ; ; The plane curve traps included here do not so ; much determine the shape of the traps, as how ; the traps are modified; therefore don't expect ; to see the usual shapes these names produce in ; other colorings. Instead you will generally ; find many of these trap shapes give only minor ; variations, or appear exactly the same as you ; scroll through them. However they often will ; give very different results depending on what ; is in play as determined by the choice of functions ; and parameter values. ; ; HINTS: Here are some things I have come across ; that might be helpful: ; --With some trap variatons you will find that you have ; extra bands outside the figure where you might want a ; solid color. Try adjusting the "Shading" parameter to ; a value of less than 1 to get rid of these. ; ; --Some variations give disappointing results: flat or dark trap ; etc. Try varying the various params with the explore tool: ; often at a certain point nicely shaded shapes will pop in. ; Playing with the params is very important to getting the ; most out of this ucl. ; ; --Don't forget to play with the Morph params! They sometimes ; add very interesting things. ; ; --I've added some different looks to the "Average" trap mode. ; Look for a parameter called "Avg. Flavor" which appears when ; that trap mode is chosen. You will need to adjust your ; gradient as you scroll through the choices but it is worth ; the effort IMO. There is a bool param as well: "Change Avg. ; Flavor Flavor", which does some interesting things. ; ; CREDITS: First of all, thanks to Andrea Spinozzi, whose (sadly ; unpublished) "Polar Traps" coloring inspired me to try my ; hand at this ucl, which contains some of his basic code ; at its heart. ; ; And of course thanks to the usual crew of heroes: Susan B. Chambless, ; Ken Childress,Michèle Dessureault, Damien M. Jones, Andreas Lober and ; Dennis Magar, who contributed code and ideas. To them I gratefully ; add Ron Barnett, who added some very nice trap modes and extended my ; understanding yet another bit. Init: complex ztest = 0 complex ztestQ = 0 trap_z = 0 trap_p = 0 float min_dist = 1e20 if @trap_mode == 4 min_dist = 0 endif float min_r = 0 float d = 0 float dsum = 0 float dave = 0 float distance = 0 float radius = 0 int iter = 0 int i = 0 complex z_values[#maxiter+1] int trap_i = 0 shapeAdjust1 = @shapeAdjust1 shapeAdjust2 = @shapeAdjust2 shapeAdjust3 = @shapeAdjust3 shapeAdjust4 = @shapeAdjust4 shapeAdjust5 = @shapeAdjust5 shapeAdjust6 = @shapeAdjust6 shapeAdjust7 = @shapeAdjust7 shapeAdjust8 = @shapeAdjust8 shapeAdjust1Q = @shapeAdjust1Q shapeAdjust2Q = @shapeAdjust2Q shapeAdjust3Q = @shapeAdjust3Q shapeAdjust4Q = @shapeAdjust4Q shapeAdjust5Q = @shapeAdjust5Q shapeAdjust6Q = @shapeAdjust6Q shapeAdjust7Q = @shapeAdjust7Q shapeAdjust8Q = @shapeAdjust8Q zzort = @zzort zzortQ = @zzortQ complex z1 = 0 complex z2 = 0 complex z3 = 0 complex z4 = 0 complex z1p = 0 complex z1q = 0 complex qw = 0 complex er = 0 complex ty = 0 complex nuvar = 0 complex ztest2 = 0 complex zz = 0 complex ztest2Q = 0 complex zzQ = 0 bool trapped = false float texture = 0 complex p = 0 complex pfb = 0 float x = 0 float y = 0 float xx =0 float yy =0 float ddd = 0 float texture_rnd = 0 float texture_dec = 0 float texture_fbm = 0 float texture_gna = 0 float pd = 0 float aaa = 0 float t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = 0 float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) complex trap2_z = 0 float texture_tr = 0 complex ptr = 0 float za = 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 int it = 0 float dQ = 0 float d = 0 float radius = 0 float radiusQ = 0 complex point = 0 complex pointQ = 0 complex traptest = 0 complex traptest2 = 0 complex ac = 0 complex bc = 0 complex acQ = 0 complex bcQ = 0 bool trapping = false float fiter = 0 float patnum = 0 Loop: complex z1 = @rootfn(#z) 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 if @blendType == false bool scenario1 = false ; Determine scenario to be used: if @seq == "Trap I" scenario1 = true elseif @seq == "Modulated" if (iter % (@modBy+@modCmp) < @modCmp) scenario1 = true else scenario1 = false endif elseif @seq == "Trap II" scenario1 = false endif if(scenario1 == true) if @combine if @first == 0 ; atan2a ac = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 1; atan2a x+y ac = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @first == 2; atan2a x-y ac = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @first == 3; atan2b ac = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @first == 4; reala ac = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 5; realb ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @first == 6; imaga ac = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 7; imagb ac = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 8; moda ac = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @first == 9; modb ac = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @first == 10; normal ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @first == 11; r+i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @first == 12; r*i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 13; r/i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 14; i/r ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) endif if @split if @second == 0 ; atan2a bc = atan2(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 1; atan2a x+y bc = atan2((@fn1a(real(z1-@p1d)*@p1e)^@p1f)+flip(@fn1b(imag(z1-@p1d)\ *@p1e)^@p1f)) elseif @second == 2; atan2a x-y bc = atan2((@fn1a(real(z1-@p1d)*@p1e)^@p1f)-flip(@fn1b(imag(z1-@p1d)\ *@p1e)^@p1f)) elseif @second == 3; atan2b bc = cabs(@fn1a(atan2(z1-@p1d)*@p1e)^@p1f) elseif @second == 4; reala bc = real(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 5; realb bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) elseif @second == 6; imaga bc = imag(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 7; imagb bc = cabs(@fn1a(imag(z1-@p1d)*@p1e)^@p1f) elseif @second == 8; moda bc = |(@fn1a(z1-@p1d)*@p1e)^@p1f| elseif @second == 9; modb bc = cabs(@fn1a(|z1-@p1d|)*@p1e)^@p1f elseif @second == 10; normal bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) + \ cabs(flip(@fn1b(imag(z1-@p1d)*@p1e)^@p1f)) elseif @second == 11; r+i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) + \ flip(cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f)) elseif @second == 12; r*i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) * \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) elseif @second == 13; r/i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) / \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) elseif @first == 14; i/r bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) / \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) endif else if @second == 0 ; atan2a bc = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 1; atan2a x+y bc = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @second == 2; atan2a x-y bc = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @second == 3; atan2b bc = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @second == 4; reala bc = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 5; realb bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @second == 6; imaga bc = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 7; imagb bc = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @second == 8; moda bc = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @second == 9; modb bc = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @second == 10; normal bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @second == 11; r+i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @second == 12; r*i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @second == 13; r/i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 14; i/r bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) endif endif if @combOp == 0; + ztest = ac + real(@combfn(bc)) elseif @combOp == 1; - ztest = ac - real(@combfn(bc)) elseif @combOp == 2; * ztest = ac * real(@combfn(bc)) elseif @combOp == 3; / ztest = ac / real(@combfn(bc)) elseif @combOp == 4; // ztest = real(@combfn(bc)) / ac elseif @combOp == 5; ^ ztest = ac ^ real(@combfn(bc)) elseif @combOp == 6; ^^ ztest = real(@combfn(bc)) ^ ac endif else if @pztest == "atan2 a" ztest = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "atan2 a (x+y)" ztest = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @pztest == "atan2 a (x-y)" ztest = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @pztest == "atan2 b" ztest = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "real a" ztest = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "real b" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "imag a" ztest = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "imag b" ztest = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "modulus a" ztest = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @pztest == "modulus b" ztest = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @pztest == "normal" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @pztest == "real + imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @pztest == "real * imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "real / imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "imag / real" ztest = cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) endif endif ztest=cabs(((ztest-@p2a)*@p2b)^@p2c) if @aparam == "1" if @nuflav == "exp" ztest = ztest*exp(1i*pi/180*@rotation*180)/@size elseif @nuflav == "acos" ztest = ztest*acos(1i*pi/180*@rotation*180)/@size elseif @nuflav == "acosh" ztest = ztest*acosh(1i*pi/180*@rotation*180)/@size endif elseif @aparam == "2" if @nuflav == "exp" ztest = ztest*exp(exp(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(exp(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(exp(1i*pi/180*@rotation*180))/@size endif elseif @aparam == "3" if @nuflav == "exp" ztest = ztest*exp(acos(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(acos(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(acos(1i*pi/180*@rotation*180))/@size endif elseif @aparam == "4" if @nuflav == "exp" ztest = ztest*exp(acosh(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(acosh(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(acosh(1i*pi/180*@rotation*180))/@size endif endif float xzx = sqrt(@ratio)*real((@xfunc(ztest-@x1)*@x2)^@x3) float yzy = 1/sqrt(@ratio)*imag((@yfunc(ztest-@y1)*@y2)^@y3) if @trapType == "Alien Waves" zz = @fn1(@fn2((yzy)/(xzx)\ ^(yzy)-@fn4(xzx^shapeAdjust2)-\ @fn3(yzy+(1-shapeAdjust1))))-zzort elseif @trapType == "Ampersand Curve" zz = @fn1((@fn2(yzy^2)-@fn3(xzx^2+(1-shapeAdjust3)))* \ @fn4((xzx^shapeAdjust4)-1)*(shapeAdjust1* \ @fn5(xzx)-shapeAdjust2)- 4*(@fn6(xzx^2*shapeAdjust5)+ \ @fn7(yzy^2)-2* @fn8(xzx^shapeAdjust6))^2)-zzort elseif @trapType == "ArcTangent" zz = @fn1(atan(@fn2(xzx^shapeAdjust1*shapeAdjust2))- \ @fn3(yzy))-zzort elseif @trapType == "Bad Hair Day" zz = @fn1(@fn2(yzy^yzy*yzy)+@fn3(xzx+(1-shapeAdjust1)))-zzort elseif @trapType == "Barbed Wire" zz = @fn1(abs(@fn2(xzx^shapeAdjust1))+ \ abs(yzy^yzy)-1)- zzort elseif @trapType == "Baubles & Bangles" zz = @fn1((@fn2(xzx^(2*shapeAdjust1)-1))^2+cos(@fn3\ (yzy^2+(1-shapeAdjust2)))* @fn4(yzy^(.2)-1) \ *@fn5(yzy-2)* @fn6(yzy+(3-shapeAdjust3)))-zzort elseif @trapType == "Bean Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust1)+xzx^2* \ @fn3(yzy^2)+@fn4(yzy^4)- \ @fn5(xzx^shapeAdjust2)*@fn6(xzx^(2*shapeAdjust3)+ \ @fn7(yzy^2+(1-shapeAdjust4))))-zzort elseif @trapType == "Bicorn Curve" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1^2-xzx^2))- \ (@fn3(xzx^2+2*shapeAdjust1* \ @fn4(yzy^shapeAdjust2)-shapeAdjust1^2)^2)-zzort elseif @trapType == "Bicuspid Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust2)-shapeAdjust1^2)* \ @fn3(xzx^shapeAdjust3-shapeAdjust1)^2+ \ @fn4(yzy^2-shapeAdjust1^2)^2)-zzort elseif @trapType == "Bifolium" zz = @fn1(@fn2(xzx^(1+shapeAdjust1))+@fn3(yzy^2+(1-shapeAdjust2)))^2- \ 4*@fn4(abs(xzx)* \ @fn5(yzy^3))-zzort elseif @trapType == "Bow" zz = @fn1(@fn2(xzx^4*shapeAdjust1)-@fn3(xzx^2+1)* \ @fn4(yzy)+@fn5(yzy^3))-zzort elseif @trapType == "Butterfly Curve" zz = @fn1(@fn2(yzy^6)-(@fn3(xzx^2+(1-shapeAdjust1))- \ @fn4(xzx^6+(1-shapeAdjust2))))-zzort elseif @trapType == "Bighorn Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+(yzy^2*yzy^2+1)*yzy^5/ \ xzx^2*xzx^2-yzy)-zzort elseif @trapType == "Binary Curve" zz = @fn1((@fn2(xzx^(3-shapeAdjust4))-shapeAdjust1)/@fn3 \ (xzx^2-2*shapeAdjust3)^2+ @fn4(yzy^2- \ shapeAdjust2^2)^2)-zzort elseif @trapType == "Bird of Paradise" zz = @fn1(exp(@fn4((xzx)*@fn3(yzy)))- \ @fn2(yzy))-zzort elseif @trapType == "Cabuchon Curve" zz = @fn1(@fn2(xzx^(shapeAdjust2)))-@fn3(yzy^2)-@fn4((xzx^(2*shapeAdjust5)\ )+@fn6(yzy^2+(1-shapeAdjust4)))/shapeAdjust1^2-@fn5 \ (xzx*shapeAdjust3)-zzort elseif @trapType == "Cardinal Points Curve" zz = @fn1(cotanh(@fn2(xzx^4+(1-shapeAdjust1)))-@fn3(yzy^3)-2* \ @fn4(abs(xzx^(3-shapeAdjust1))-@fn5(yzy^2)))-zzort elseif @trapType == "Chaos Adorned" zz = @fn1(@fn2((yzy)^@fn6(yzy)* @fn3(yzy))+@fn4(xzx+1)^ \ @fn5(yzy^2))-zzort elseif @trapType == "Chaos Unleashed" zz = @fn1(shapeAdjust1^4*@fn2(yzy^ \ (yzy))-shapeAdjust2^2*@fn3((xzx^shapeAdjust3) \ ^@fn5(xzx+(1-shapeAdjust4)))* (2*shapeAdjust1-@fn4 \ (xzx^shapeAdjust5)))-zzort elseif @trapType == "Church Key Curve" zz = cotanh(@fn1(@fn2(((xzx^2)*shapeAdjust2)^shapeAdjust1))+ \ @fn3(yzy*2.4)^(yzy-1))-zzort elseif @trapType == "Compass Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)+ \ @fn4(yzy^2))-shapeAdjust2^2* \ @fn5(xzx^(2*shapeAdjust4)))-zzort elseif @trapType == "Conductor's Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-((xzx*.2* \ yzy)-yzy^2+1)*yzy^4-@fn6(xzx^(2*shapeAdjust3))/\ @fn7(xzx^(2*shapeAdjust2)-@fn8(yzy^.5)))-zzort elseif @trapType == "Conjoined Circle Curve" zz = @fn1((@fn2(xzx^2+yzy^2)*(@fn3(yzy)-@fn4(yzy))-shapeAdjust1- \ abs(@fn5(yzy))))-zzort elseif @trapType == "Cooking Pot Curve" zz = @fn1(@fn2(yzy^2)-(shapeAdjust1^2- \ @fn3(xzx^2*shapeAdjust2)))-(@fn4(xzx^(2*(shapeAdjust3)))+2*@fn5(yzy^2\ )-shapeAdjust1^2)^2-zzort elseif @trapType == "Crochet Hooks" zz = @fn1(@fn2(yzy^3)+(@fn3((xzx+1)^ \ @fn5(yzy)/@fn4((xzx*shapeAdjust1)^shapeAdjust2))))- \ zzort elseif @trapType == "D&U Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))+@fn3((yzy^2)^ \ yzy)-shapeAdjust2)-zzort elseif @trapType == "Dogleg Curve" zz = @fn1(atan(@fn3((xzx*shapeAdjust1)+yzy))-@fn2(yzy))-zzort elseif @trapType == "Dribs & Drabs" zz = @fn1((@fn1(xzx^shapeAdjust2)+@fn3(yzy^2)^yzy-4*(xzx^3)* \ @fn4(yzy^2)))-zzort elseif @trapType == "Driftwood Curve" zz = @fn1(((@fn2(xzx)-.5*shapeAdjust7)^2+ \ @fn3(yzy^2+1))*(@fn4(yzy+(1-shapeAdjust3))* \ (@fn5(xzx-(shapeAdjust4-1))-shapeAdjust8)+ \ @fn6(yzy))+4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust5-1))-1.5*shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust6)))-zzort elseif @trapType == "Eye of the Needle" zz = @fn1((@fn2(yzy^(2*shapeAdjust5))-@fn3(xzx^2+(1-shapeAdjust6)))* \ @fn4((xzx^shapeAdjust7)-@fn9(yzy))* \ (shapeAdjust1*@fn5(xzx*shapeAdjust8)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust4)+@fn7(yzy^2)-2*@fn8 \ (xzx^shapeAdjust3))^2*shapeAdjust1)-zzort elseif @trapType == "Floreate Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3((yzy)^ \ yzy)-shapeAdjust2)-zzort elseif @trapType == "Glyph Curve" zz = @fn1(((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2- \ @fn3(yzy^2))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust2)+ \ @fn6(yzy))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust6-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust7)))-zzort elseif @trapType == "Gravity Waves" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))+@fn3(yzy)* \ 2))-@fn2(yzy))-zzort elseif @trapType == "Harpoon Curve" zz = @fn1(@fn2(xzx^2))*@fn3(yzy^2)+ \ shapeAdjust1^2-@fn4((xzx)^@fn6(yzy))- \ shapeAdjust2^2-@fn5(xzx^shapeAdjust5)-zzort elseif @trapType == "Hoops & Plates" zz = @fn1((@fn2((xzx+(1-shapeAdjust4))^@fn5(xzx+(1-shapeAdjust4)))+ \ @fn3(yzy^2*shapeAdjust2)+shapeAdjust1)^2-4*shapeAdjust1^2* \ @fn4(xzx^shapeAdjust3)-1)-zzort elseif @trapType == "Indented Parabola" zz = @fn1(@fn2(yzy))+@fn3(xzx*.2*shapeAdjust1)- \ @fn4(yzy^2)-zzort elseif @trapType == "Intersecting Ovals" zz = @fn1(@fn2(xzx^(2*shapeAdjust2))-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*shapeAdjust4))+2*@fn5(yzy^2)\ -.5*shapeAdjust1^2)^2-zzort elseif @trapType == "Leaves of Grass" zz = @fn1(@fn2(yzy))-xzx^@fn4(yzy)-zzort elseif @trapType == "Lipped Ovals" zz = @fn1(abs(@fn2(xzx^2*shapeAdjust1))+ \ abs(@fn3(yzy))-1)-zzort elseif @trapType == "M Curve" zz = @fn1(@fn2(yzy))+@fn3(shapeAdjust2*xzx^(3*shapeAdjust1))-\ @fn4(yzy^2)-zzort elseif @trapType == "Mercury Curve" zz = @fn1((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2+ \ @fn3(yzy^2))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust2)+ \ @fn6(yzy))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust6-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust7))-zzort elseif @trapType == "Miscellanea" zz = @fn1(yzy^(2))-@fn3(xzx^2+(1-shapeAdjust2)*(xzx^shapeAdjust3)-(yzy)* \ (shapeAdjust1*@fn2(yzy^xzx)-shapeAdjust2)+4*(@fn3(xzx^2)+@fn4(yzy^2)\ +2*@fn5(yzy))^2*shapeAdjust1)-zzort elseif @trapType == "Moorish Fantasy" zz = @fn1(@fn2((xzx*shapeAdjust2)^shapeAdjust1))- \ @fn3(yzy)^(yzy-1)-zzort elseif @trapType == "Mousehead Curve" zz = @fn1(((@fn2(xzx^shapeAdjust2)-shapeAdjust1)^2+ \ @fn3(yzy^2+(1-shapeAdjust3)))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust1)+ \ @fn6(yzy^1))-4*(abs(xzx)-shapeAdjust1)*@fn7(yzy^2))-zzort elseif @trapType == "Nested Ovals" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1^2- \ xzx^2))-(@fn3(xzx^(2*shapeAdjust2))+2* \ @fn4(yzy^2)-shapeAdjust1^2)^2- \ zzort elseif @trapType == "Nesting Birds Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-((.2*yzy)^(yzy)*(yzy^2+1))* \ yzy^(4)/(xzx^2)*(xzx^2*3-.5*yzy))-zzort elseif @trapType == "Odds 'n Ends" zz = @fn1(@fn2(yzy^2)-@fn3(xzx^2+(1-shapeAdjust5))* \ @fn4(xzx^shapeAdjust6)-@fn9(yzy)* \ (shapeAdjust1*@fn5(xzx*shapeAdjust7)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust4)+@fn7(yzy^2)-2-@fn8 \ (xzx^shapeAdjust3))^2*shapeAdjust1)-zzort elseif @trapType == "Omega Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))-@fn3(yzy^2)))+@fn2\ (xzx^-6*shapeAdjust3))-zzort elseif @trapType == "Ornate Curve" zz = @fn1((@fn2(yzy^2)/(xzx^2+1))* \ (xzx-yzy)* \ (shapeAdjust1-xzx)-4* \ (@fn3(xzx^2*shapeAdjust3)+@fn4(yzy^2)-2*@fn5 \ (xzx^shapeAdjust2))^2*shapeAdjust1)-zzort elseif @trapType == "Ovals" zz = @fn1(@fn2(xzx*shapeAdjust1-@fn6(yzy))- \ @fn3(xzx^2*shapeAdjust2+@fn4(yzy^2))-2*@fn5(yzy^2))-zzort elseif @trapType == "Ovate Waves" zz = @fn1(@fn2(yzy^4)*@fn3(yzy^2)-@fn4(yzy^yzy)+shapeAdjust1^2* \ @fn5(xzx^(2*shapeAdjust2)))-zzort elseif @trapType == "Ovate Waves 2" zz = @fn1(@fn2(yzy^4)-1* \ @fn3(yzy^2)-@fn4((xzx*shapeAdjust4)^ \ @fn6(xzx^shapeAdjust2))+shapeAdjust1^2* \ @fn5(xzx^(2*shapeAdjust3)))-zzort elseif @trapType == "Pisces Curve" zz = @fn1((@fn2(xzx^(2*shapeAdjust1))-1)^2-@fn3(.6*yzy^2+ \ (1-shapeAdjust2))*(3*yzy+(6-shapeAdjust3)))-zzort elseif @trapType == "Plane & Tail" zz = @fn1(shapeAdjust1^4/@fn2((xzx^(2*shapeAdjust3)) \ +@fn5(yzy)) *shapeAdjust2^2- \ @fn3((xzx^(2*shapeAdjust4))^ @fn6(xzx+(1-shapeAdjust5))) \ /(2*shapeAdjust1-@fn4(yzy)))-zzort elseif @trapType == "Seagull Curve" zz = @fn1(@fn2(yzy^2)-shapeAdjust1^2* \ (@fn3(yzy^5)+@fn5(xzx+(1-shapeAdjust2))+ \ @fn4(yzy^7)))-zzort elseif @trapType == "Simple Curve" zz = @fn1(atan(@fn4((xzx^shapeAdjust4*shapeAdjust1)- \ @fn3(yzy)))-@fn2(yzy))-zzort elseif @trapType == "Smoke Rings" zz = @fn1(shapeAdjust1^4+@fn2((xzx^2)* \ @fn5(yzy))- shapeAdjust2^2- \ @fn3((xzx^(shapeAdjust5))^@fn6(xzx+(1-shapeAdjust6))) \ /(2*shapeAdjust1-@fn4(yzy)))-zzort elseif @trapType == "Sneering Curve" ; check others for SA 8 zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(((xzx*.2)* \ yzy)-yzy^2+1)* \ yzy^4-@fn3(xzx^(2*shapeAdjust3))/\ @fn4(xzx^(2*shapeAdjust2)+@fn5(yzy^.5)))-zzort elseif @trapType == "Space Debris" zz = @fn1(shapeAdjust1^4*@fn2((yzy^2)/ \ xzx^2)- shapeAdjust2^2* \ @fn3((xzx^shapeAdjust3)^@fn5(xzx+(1-shapeAdjust4)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Spectacles Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust2)+@fn3(yzy^4)-2* \ shapeAdjust3*@fn4(abs(xzx)- \ @fn5(yzy^2*shapeAdjust1)))-zzort elseif @trapType == "Spiked Cusp" ;out zz = @fn1(@fn2((yzy)^yzy* \ xzx))-zzort elseif @trapType == "Squared Circle Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)- \ @fn4(yzy^2))-shapeAdjust2^2/2+ \ @fn5(yzy^4))-zzort elseif @trapType == "Squeezed Rectangle Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust2)-shapeAdjust1* \ (@fn3(yzy^5)-@fn5(xzx^shapeAdjust3)- \ @fn4(yzy^7)))-zzort elseif @trapType == "Swallow Curve" zz = @fn1(@fn2((xzx^2*shapeAdjust2))-@fn3((yzy^2)))^2-4*@fn4((xzx^yzy^2)* \ @fn5(yzy^2))-zzort elseif @trapType == "Stretched Oval Curve" zz = @fn1(shapeAdjust1^4+@fn2((yzy^2)/\ (xzx^2))-shapeAdjust2^2* \ @fn3((xzx^(2*shapeAdjust3))*@fn5(xzx+(1-shapeAdjust4)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Switchback Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))*@fn3(yzy^shapeAdjust4)* \ shapeAdjust2))-@fn2(xzx^shapeAdjust3))-zzort elseif @trapType == "Taurus Curve" zz = @fn1(@fn2(xzx^(shapeAdjust2)))-@fn3(yzy^2)\ -@fn4((xzx^(2*shapeAdjust5))+ \ @fn6(yzy^2+(1-shapeAdjust4)))/shapeAdjust1^2* \ @fn5(xzx^shapeAdjust3)-zzort elseif @trapType == "Teardrop Curve" zz = @fn1(shapeAdjust1^4*@fn2((yzy^2)/xzx^2)- \ shapeAdjust2^2*@fn3((xzx^(2*shapeAdjust3))/@fn5(xzx+(1-shapeAdjust4)\ ))*(2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Tennis Anyone?" zz = @fn1(@fn2(xzx^2*shapeAdjust2)+2*shapeAdjust1* \ @fn3((xzx^shapeAdjust3)-@fn6(yzy))- \ shapeAdjust1^2)^2-@fn4(yzy^2)* \ @fn5(xzx^2)- zzort elseif @trapType == "Thorned Cross" zz = @fn1(@fn2((yzy)^yzy* \ xzx)+@fn3(xzx+(1-shapeAdjust1)))-zzort elseif @trapType == "Three Point Curve" zz = @fn1((@fn2(xzx^2)-shapeAdjust1^2)*@fn3(xzx^2-shapeAdjust3)^2+ \ @fn4(yzy^4-shapeAdjust2^2)^2)- zzort elseif @trapType == "Tsuba curve" zz = @fn1(@fn2(yzy^2)-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust2)))-(@fn4(xzx^(2*shapeAdjust3))+2\ *@fn5(yzy^2)-.5*shapeAdjust1^2)^2-zzort elseif @trapType == "Wheel in Trough" zz = @fn1((@fn2((xzx*shapeAdjust2)^(1+shapeAdjust1))+ \ @fn3(yzy^2))*atan2(@fn4(yzy)*xzx)*@fn6(yzy))-zzort elseif @trapType == "Whip Curve" zz = @fn1(@fn2((yzy)^yzy*yzy)+@fn3(xzx+(1-shapeAdjust1))- \ @fn4(yzy^2))-zzort elseif @trapType == "Cassini Ovals" zz = @fn1((@fn2(xzx^2*shapeAdjust3)+@fn3(yzy^2)+ \ shapeAdjust1^2)^2-4*shapeAdjust1^2* \ @fn4(xzx^(3-shapeAdjust4))-shapeAdjust2^4)-zzort elseif @trapType == "Circle" zz = @fn1(@fn2((xzx*shapeAdjust1)^(3-shapeAdjust2))+ \ @fn3((yzy*shapeAdjust3)^3)-1)-zzort elseif @trapType == "Cissoid of Diocles" zz = @fn1(@fn2(xzx^shapeAdjust1)*@fn3(xzx^2+(1-shapeAdjust2)+ \ (yzy^2))-2*@fn4(yzy^2+(1-shapeAdjust3)))-zzort elseif @trapType == "Cochleoid" zz = exp(@fn1((@fn2(xzx^2)+yzy^2)* \ atan(@fn3(yzy))-@fn4(yzy))+ \ 1*abs(@fn5(yzy)))-zzort elseif @trapType == "Cocked Hat" zz = @fn1(@fn2(xzx^2*shapeAdjust2)+2*shapeAdjust1*@fn3(yzy)- \ shapeAdjust1^2)^2-@fn4(yzy^3)* \ (1-xzx^2)-zzort elseif @trapType == "Conchoid of Nicomedes" zz = @fn1((@fn2(xzx-shapeAdjust1))^2*(@fn3(xzx^(2*shapeAdjust3))+ \ @fn4(yzy^2))-shapeAdjust2^2* \ @fn5(xzx^2*shapeAdjust4))-zzort elseif @trapType == "Cruciform" zz = @fn1(@fn2(xzx^2)*@fn3(yzy)- shapeAdjust1^2*@fn4 \ (xzx^(1+shapeAdjust2))-1*@fn5(yzy^3))-zzort elseif @trapType == "Devil's Curve" zz = @fn1(@fn2(yzy^3)-1* \ @fn3(yzy^2+(1-shapeAdjust3))-@fn4(xzx^4*shapeAdjust2)+ \ shapeAdjust1^2*@fn5(xzx^(1+shapeAdjust4)))-zzort elseif @trapType == "Diamond" zz = @fn1(abs(@fn2(xzx*shapeAdjust1))+abs(@fn3(yzy))-1)- \ zzort elseif @trapType == "Dumbbell Curve" zz = @fn1(@fn2(yzy^2)-shapeAdjust1^2* \ (@fn3(xzx^(5-shapeAdjust2))-@fn4(xzx^(7-shapeAdjust3))))-zzort elseif @trapType == "Dürer's Conchoid" zz = @fn1(2*@fn2(yzy)*(@fn3(xzx)+ \ @fn4(yzy^2))-2*shapeAdjust2* \ @fn5(yzy^2+(1-shapeAdjust3))*(xzx^shapeAdjust4+ \ yzy+(1-shapeAdjust5))+(shapeAdjust2^2-3*shapeAdjust1^2)* \ @fn6(yzy)-shapeAdjust1^2* \ @fn7(xzx^2*shapeAdjust6)+2*shapeAdjust1^2*shapeAdjust2* \ (@fn8(xzx^shapeAdjust7)+@fn9(yzy))+ \ shapeAdjust1^2*(shapeAdjust1^2-shapeAdjust2^2))-zzort elseif @trapType == "Eight Curve" zz = @fn1(@fn2(xzx^(3+shapeAdjust2))-shapeAdjust1^2* \ (@fn3(xzx^2*shapeAdjust3)-@fn4(yzy^2)))-zzort elseif @trapType == "Happy Accident" zz = @fn1((@fn2((xzx*shapeAdjust2)^(1+shapeAdjust1))+ \ @fn3(yzy^2))*atan2(@fn4(yzy)*xzx)-1*@fn5(yzy))-zzort elseif @trapType == "Hyperbola" zz = @fn1(@fn2((xzx*shapeAdjust1)^(1+shapeAdjust2))- \ @fn3(yzy)+ 1)-zzort elseif @trapType == "Kappa Curve" zz = @fn1(xzx^3+yzy^2)* \ @fn4(yzy)-shapeAdjust1^2* \ @fn5(xzx^2*shapeAdjust2)-zzort elseif @trapType == "Keppler's Folium" zz = @fn1((@fn2(xzx^shapeAdjust2)-shapeAdjust1)^2+ \ @fn3(yzy^2+(1-shapeAdjust3)))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust1)+@fn6 \ (yzy))-4*(abs(@fn7(xzx))-shapeAdjust1)*@fn8(yzy^2)-zzort elseif @trapType == "Keratoid Cusp" zz = @fn1(@fn2(xzx^2)*@fn3(yzy)+ \ @fn4(xzx^(5*shapeAdjust1))-@fn5(yzy^3))-zzort elseif @trapType == "Knot Curve" zz = @fn1((@fn2(xzx^(1+shapeAdjust1)-1)^2)-@fn3(yzy^2)* \ (3+2*yzy))-zzort elseif @trapType == "Lemniscate" zz = @fn1((@fn2(xzx^2+(1-shapeAdjust2))+@fn3(yzy))^2- \ 2*shapeAdjust1*(@fn4(xzx^(2*shapeAdjust3))- \ @fn5(yzy^2)))-zzort elseif @trapType == "Lemniscate Corrected" zz = @fn1(@fn2(xzx^4+(1-shapeAdjust2))+yzy^4+3* xzx^2*yzy^2-2* \ shapeAdjust1^2*(@fn3(xzx^(2*shapeAdjust3))-@fn4(yzy)))-zzort elseif @trapType == "Limacon" zz = @fn1((@fn2(xzx^(2*shapeAdjust3))+@fn3(yzy^2+(1-shapeAdjust4))-2* \ shapeAdjust1*@fn4(xzx^shapeAdjust5))^2-shapeAdjust2^2* \ (@fn5(xzx^2*shapeAdjust6)+@fn6(yzy^2)))-zzort elseif @trapType == "Line" zz = @fn1(yzy)-zzort elseif @trapType == "Links Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^2)-3* \ @fn4(xzx^shapeAdjust2))^2-4*@fn5(xzx^(2*shapeAdjust3))* \ (2-abs(@fn6(xzx^shapeAdjust4))))-zzort elseif @trapType == "Maltese Cross Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^2)-abs \ (xzx)*abs(@fn4(yzy+(1-shapeAdjust2)))* \ (@fn5(xzx^(2+(1-shapeAdjust3))-@fn6(yzy^2))))- \ zzort elseif @trapType == "Parabola" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))-@fn3(yzy))-zzort elseif @trapType == "Pear-Shaped Curve" zz = @fn1(@fn2(xzx^(4-shapeAdjust2))*(shapeAdjust1-@fn3\ (xzx^shapeAdjust3))-1*@fn4(yzy^2))-zzort elseif @trapType == "Piriform" zz = @fn1(shapeAdjust1^4*@fn2(yzy^2)-shapeAdjust2^2* \ @fn3(xzx^(3*shapeAdjust3))*(2*shapeAdjust1-@fn4(xzx/shapeAdjust4)))- \ zzort elseif @trapType == "Quadrifolium" zz = @fn1((@fn2(xzx^(2*shapeAdjust1))+yzy^2)^3-4* \ (xzx^2+1)*@fn5(yzy^3))-zzort elseif @trapType == "Rose Curve" complex tz = atan2(xzx + flip(yzy)) zz = @fn1(shapeAdjust1*cos(@fn2(tz^shapeAdjust2)) + \ sin(@fn3(tz^shapeAdjust3)))-zzort elseif @trapType == "Serpentine Curve" zz = @fn1(shapeAdjust1*shapeAdjust2*@fn2(xzx^shapeAdjust3)/ \ @fn3((xzx+1-shapeAdjust3)^2+shapeAdjust1^2)- \ @fn4(yzy))-zzort elseif @trapType == "sin(x)/x" zz = @fn1(10*@fn2(sin(xzx^shapeAdjust1))/@fn3(xzx*shapeAdjust2)- \ @fn4(yzy))-zzort elseif @trapType == "Sinus + Cosinus" zz = @fn1(sin(shapeAdjust1*@fn2(xzx^shapeAdjust3))+ \ cos(shapeAdjust2*@fn3(xzx+(1-shapeAdjust4)))+ \ @fn4(yzy))-zzort elseif @trapType == "Spiral" zz = abs((xzx^(2*@shapeAdjust2)+yzy^2)^ \ @shapeAdjust1%1-.5+atan2(xzx*@shapeAdjust3+ \ (flip(yzy)))/(2*pi)) zz2 = abs((xzx^(2*@shapeAdjust4)+yzy^2)^@shapeAdjust1%1-.5+ \ atan2(xzx+flip(yzy))/(2*pi)+1) if real(zz2) < real(zz) zz = real(zz2) endif zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+atan2 \ (xzx+flip(yzy))/(2*pi)-1) if real(zz2) < real(zz) zz = real(zz2) endif elseif @trapType == "Square" if abs(xzx) > abs(yzy) zz = @fn1(@fn2(abs(xzx^shapeAdjust1))-1)-zzort else zz = abs(yzy)-1 endif elseif @trapType == "Stirrup Curve" zz = @fn1(@fn2((xzx^2-1)^2)-@fn3(yzy^2)*(yzy-1)*(yzy-2)* \ (yzy+5))-zzort elseif @trapType == "Strange Shape" zz = @fn1((@fn2(xzx^(2*shapeAdjust2))+(yzy)^ \ 2)*atan2(@fn4(xzx*shapeAdjust4)^ \ shapeAdjust7+flip(@fn5(yzy)))- \ 1*@fn6(yzy))-zzort elseif @trapType == "Swastika Curve" zz = @fn1(@fn2(yzy^4)-@fn3(xzx^4*shapeAdjust2)- \ @fn4(xzx)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Tangent" zz = @fn1(tan(@fn2((xzx*shapeAdjust1)^shapeAdjust2))- @fn3(yzy))-zzort elseif @trapType == "Trefoil" zz = @fn1(@fn2(xzx^(5-shapeAdjust1))+xzx^2* \ @fn3(yzy^2)+@fn4(yzy^4)- \ @fn5(xzx^shapeAdjust2)*(@fn6(xzx^2*shapeAdjust3)- \ @fn7(yzy^2+(1-shapeAdjust4))))-zzort elseif @trapType == "Trident" zz = @fn1(@fn2(xzx^3*shapeAdjust2)-shapeAdjust1^3- \ @fn3(xzx)*yzy)-zzort elseif @trapType == "Trident of Descartes" zz = @fn1((shapeAdjust1+@fn2(xzx^shapeAdjust2))* \ (shapeAdjust1-@fn3(xzx*shapeAdjust3))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust4))/ \ (shapeAdjust1*@fn5(xzx+(1-shapeAdjust5)))- \ @fn6(yzy))-zzort elseif @trapType == "Trifolium" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2))* \ (@fn4(yzy^2)+@fn5(xzx^shapeAdjust3)* \ @fn6(xzx+shapeAdjust1))-4* \ @fn7(xzx)*@fn8(yzy^2+(1-shapeAdjust4)))-zzort elseif @trapType == "Trisectrix of Maclaurin" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1+ xzx)-@fn3(xzx^(2*shapeAdjust2))* \ (3*shapeAdjust1-@fn4(xzx*shapeAdjust3)))-zzort elseif @trapType == "Twisted Cross" zz = @fn1(@fn2(yzy^4)-@fn3(xzx^(5-shapeAdjust2))- \ @fn4(xzx)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Witch of Agnesi" zz = @fn1(8*shapeAdjust2*shapeAdjust1^3/ \ @fn2(xzx^(2*shapeAdjust3)+4*shapeAdjust1^2)- \ @fn3(yzy))-zzort endif if @ztestflavor == "cabs" ztest2 = cabs(@fn5a(ztest)) elseif @ztestflavor == "real" ztest2 = real(@fn5a(ztest)) elseif @ztestflavor == "imag" ztest2 = imag(@fn5a(ztest)) elseif @ztestflavor == "atan2" ztest2 = atan2(@fn5a(ztest)) elseif @ztestflavor == "mod" ztest2 = |(@fn5a(ztest))| endif if @z1par == "normal" z1 = z1 elseif @z1par == "cabs" z1 = cabs(z1) elseif @z1par == "real" z1 = real(z1) elseif @z1par == "imag" z1 = imag(z1) elseif @z1par == "atan2" z1 = atan2(z1) elseif @z1par == "modulus" z1 = |z1| elseif @z1par == "function" z1 = @z1fn(z1) endif if @zztyp == "1" zz = @zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c elseif @zztyp == "2" zz = @zzfn2(@zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c) elseif @zztyp == "3" zz = @zzfn3(@zzfn2(@zzfn1(z1))-@zfn((zz-@p3a)*@p3b)^@p3c) elseif @zztyp == "4" zz = @zzfn3(@zzfn2(@zzfn1(z1)))-@zfn((zz-@p3a)*@p3b)^@p3c elseif @zztyp == "5" zz = @zzfn3(@zzfn2(@zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c)) elseif @zztyp =="6" zz = @zfn((zz-@p3a)*@p3b)^@p3c endif point = @fn2a(zz)*@fn3a(@fn6a(ztest2))+flip(@fn2a(zz)*@fn4a(@fn7a(ztest2))) float radius = abs(cabs(z1-zz)) point = @fnp3(@fnp2(@fnp(point-@p4a)*@p4b)^@p4c) if @shadeType == true if @floatd == "atan" d = cabs(atan(z1-(point))) elseif @floatd == "atanh" d = cabs(atanh(z1-point)) elseif @floatd == "sqrt" d = cabs(atan(sqrt(z1-point))) endif else if @floatd == "atan" d = |atan(z1-(point))| elseif @floatd == "atanh" d = |atanh(z1-point)| elseif @floatd == "sqrt" d = |atan(sqrt(z1-point))| endif endif if @simplex_d == false d = d else if @nu_d == "1" if @change_d == false if @var_d == 0 d = cabs(log(d-(@fnd(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 1 d = cabs(log(d-(@fnd(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 2 d = cabs(log(d-(@fnd(zz+@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 3 d = cabs(log(d-(@fnd(zz-@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 4 d = cabs(log(d-(@fnd(z1-@fnd2(zz))-@dp1)*@dp2)^@dp3) elseif @var_d == 5 d = cabs(log(d-(@fnd(zz*@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 6 d = cabs(log(d-(@fnd(zz/@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 7 d = cabs(log(d-(@fnd(z1/@fnd2(zz))-@dp1)*@dp2)^@dp3) elseif @var_d == 8 d = cabs(log(d-(@fnd(zz^@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 9 d = cabs(log(d-(@fnd(z1^@fnd2(zz))-@dp1)*@dp2)^@dp3) endif else if @var_d == 0 d = cabs(log(d-(@fnd(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 1 d = cabs(log(d-(@fnd(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 2 d = cabs(log(d-(@fnd(zz)+@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 3 d = cabs(log(d-(@fnd(zz)-@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 4 d = cabs(log(d-(@fnd(z1)-@fnd2(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 5 d = cabs(log(d-(@fnd(zz)*@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 6 d = cabs(log(d-(@fnd(zz)/@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 7 d = cabs(log(d-(@fnd(z1)/@fnd2(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 8 d = cabs(log(d-(@fnd(zz)^@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 9 d = cabs(log(d-(@fnd(z1)^@fnd2(zz)-@dp1)*@dp2)^@dp3) endif endif elseif @nu_d == "2" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz+@fnd2(z1))-@dp1)\ *@dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "3" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "4" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "5" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "6" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif endif endif else if @combineQ if @firstQ == 0 ; atan2a ac = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 1; atan2a x+y ac =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @firstQ == 2; atan2a x-y ac =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @firstQ == 3; atan2b ac = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 4; reala ac = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 5; realb ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 6; imaga ac = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 7; imagb ac = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 8; moda ac = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @firstQ == 9; modb ac = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @firstQ == 10; normal ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @firstQ == 11; r+i ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @firstQ == 12; r*i ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 13; r/i ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 14; i/r ac = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) endif if @splitQ if @secondQ == 0 ; atan2a bc = atan2(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 1; atan2a x+y bc =atan2((@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ)+flip(@fn1bQ(imag(z1-@p1dQ)\ *@p1eQ)^@p1fQ)) elseif @secondQ == 2; atan2a x-y bc =atan2((@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ)-flip(@fn1bQ(imag(z1-@p1dQ)\ *@p1eQ)^@p1fQ)) elseif @secondQ == 3; atan2b bc = cabs(@fn1aQ(atan2(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 4; reala bc = real(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 5; realb bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 6; imaga bc = imag(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 7; imagb bc = cabs(@fn1aQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 8; moda bc = |(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ| elseif @secondQ == 9; modb bc = cabs(@fn1aQ(|z1-@p1dQ|)*@p1eQ)^@p1fQ elseif @secondQ == 10; normal bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ)) elseif @secondQ == 11; r+i bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ)) elseif @secondQ == 12; r*i bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) * \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 13; r/i bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) / \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 14; i/r bc = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) / \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) endif else if @secondQ == 0 ; atan2a bc = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 1; atan2a x+y bc =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @secondQ == 2; atan2a x-y bc =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @secondQ == 3; atan2b bc = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 4; reala bc = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 5; realb bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 6; imaga bc = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 7; imagb bc = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 8; moda bc = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @secondQ == 9; modb bc = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @secondQ == 10; normal bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @secondQ == 11; r+i bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @secondQ == 12; r*i bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 13; r/i bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 14; i/r bc = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) endif endif if @combOpQ == 0; + ztest = ac + real(@combfnQ(bc)) elseif @combOpQ == 1; - ztest = ac - real(@combfnQ(bc)) elseif @combOpQ == 2; * ztest = ac * real(@combfnQ(bc)) elseif @combOpQ == 3; / ztest = ac / real(@combfnQ(bc)) elseif @combOpQ == 4; // ztest = real(@combfnQ(bc)) / ac elseif @combOpQ == 5; ^ ztest = ac ^ real(@combfnQ(bc)) elseif @combOpQ == 6; ^^ ztest = real(@combfnQ(bc)) ^ ac endif else if @pztestQ == "atan2 a" ztest = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "atan2 a (x+y)" ztest = atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag\ (z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "atan2 a (x-y)" ztest = atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag\ (z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "atan2 b" ztest = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "real a" ztest = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "real b" ztest = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "imag a" ztest = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "imag b" ztest = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "modulus a" ztest = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @pztestQ == "modulus b" ztest = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @pztestQ == "normal" ztest = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "real + imag" ztest = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "real * imag" ztest = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "real / imag" ztest = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "imag / real" ztest = cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) endif endif ztest=cabs(((ztest-@p2aQ)*@p2bQ)^@p2cQ) if @aparamQ == "1" if @nuflavQ == "exp" ztest = (ztest)*exp(1i*pi/180*@rotationQ*180)/@sizeQ elseif @nuflavQ == "acos" ztest = (ztest)*acos(1i*pi/180*@rotationQ*180)/@sizeQ elseif @nuflavQ == "acosh" ztest = (ztest)*acosh(1i*pi/180*@rotationQ*180)/@sizeQ endif elseif @aparamQ == "2" if @nuflavQ == "exp" ztest = (ztest)*exp(exp(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztest = (ztest)*acos(exp(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztest = (ztest)*acosh(exp(1i*pi/180*@rotationQ*180))/@sizeQ endif elseif @aparamQ == "3" if @nuflavQ == "exp" ztest = (ztest)*exp(acos(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztest = (ztest)*acos(acos(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztest = (ztest)*acosh(acos(1i*pi/180*@rotationQ*180))/@sizeQ endif elseif @aparamQ == "4" if @nuflavQ == "exp" ztest = (ztest)*exp(acosh(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztest = (ztest)*acos(acosh(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztest = (ztest)*acosh(acosh(1i*pi/180*@rotationQ*180))/@sizeQ endif endif float xzx = sqrt(@ratioQ)*real((@xfuncQ(ztest-@x1Q)*@x2Q)^@x3Q) float yzy = 1/sqrt(@ratioQ)*imag((@yfuncQ(ztest-@y1Q)*@y2Q)^@y3Q) if @trapTypeQ == "Alien Waves" zz= @fn1Q(@fn2Q((yzy)/(xzx)\ ^(yzy)-@fn4Q(xzx^shapeAdjust2Q)-\ @fn3(yzy+(1-shapeAdjust1Q))))-zzortQ elseif @trapTypeQ == "Ampersand Curve" zz = @fn1Q((@fn2Q(yzy^2)-@fn3Q(xzx^2+(1-shapeAdjust3Q)))* \ @fn4Q((xzx^shapeAdjust4Q)-1)*(shapeAdjust1Q* \ @fn5Q(xzx)-shapeAdjust2Q)- 4*(@fn6Q(xzx^2*shapeAdjust5Q)+ \ @fn7Q(yzy^2)-2* @fn8Q(xzx^shapeAdjust6Q))^2)-zzortQ elseif @trapTypeQ == "ArcTangent" zz = @fn1Q(atan(@fn2Q(xzx^shapeAdjust1Q*shapeAdjust2Q))- \ @fn3Q(yzy))-zzortQ elseif @trapTypeQ == "Bad Hair Day" zz = @fn1Q(@fn2Q(yzy^yzy*yzy)+@fn3Q(xzx+(1-shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Barbed Wire" zz = @fn1Q(abs(@fn2Q(xzx^shapeAdjust1Q))+ \ abs(yzy^yzy)-1)- zzortQ elseif @trapTypeQ == "Baubles & Bangles" zz = @fn1Q((@fn2Q(xzx^(2*shapeAdjust1Q)-1))^2+cos(@fn3Q\ (yzy^2+(1-shapeAdjust2Q)))* @fn4Q(yzy^(.2)-1) \ *@fn5Q(yzy-2)* @fn6Q(yzy+(3-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Bean Curve" zz = @fn1Q(@fn2Q(xzx^4*shapeAdjust1Q)+xzx^2* \ @fn3Q(yzy^2)+@fn4Q(yzy^4)- \ @fn5Q(xzx^shapeAdjust2Q)*@fn6Q(xzx^(2*shapeAdjust3Q)+ \ @fn7Q(yzy^2+(1-shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Bicorn Curve" zz = @fn1Q(@fn2Q(yzy^2)*(shapeAdjust1Q^2-xzx^2))- \ (@fn3Q(xzx^2+2*shapeAdjust1Q* \ @fn4Q(yzy^shapeAdjust2Q)-shapeAdjust1Q^2)^2)-zzortQ elseif @trapTypeQ == "Bicuspid Curve" zz = @fn1Q(@fn2Q(xzx^(2*shapeAdjust2Q)-shapeAdjust1Q^2)* \ @fn3Q(xzx^shapeAdjust3Q-shapeAdjust1Q)^2+ \ @fn4Q(yzy^2-shapeAdjust1Q^2)^2)-zzortQ elseif @trapTypeQ == "Bifolium" zz = @fn1Q(@fn2Q(xzx^(1+shapeAdjust1Q))+@fn3Q(yzy^2+(1-shapeAdjust2Q)))^2-\ 4*@fn4Q(abs(xzx)* @fn5Q(yzy^3))-zzortQ elseif @trapTypeQ == "Bow" zz = @fn1Q(@fn2Q(xzx^4*shapeAdjust1Q)-@fn3Q(xzx^2+1)* \ @fn4Q(yzy)+@fn5Q(yzy^3))-zzortQ elseif @trapTypeQ == "Butterfly Curve" zz = @fn1Q(@fn2Q(yzy^6)-(@fn3Q(xzx^2+(1-shapeAdjust1Q))- \ @fn4Q(xzx^6+(1-shapeAdjust2Q))))-zzort elseif @trapTypeQ == "Bighorn Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1Q)+(yzy^2*yzy^2+1)*yzy^5/ \ xzx^2*xzx^2-yzy)-zzortQ elseif @trapTypeQ == "Binary Curve" zz = @fn1Q((@fn2Q(xzx^(3-shapeAdjust4Q))-shapeAdjust1Q)/@fn3Q \ (xzx^2-2*shapeAdjust3Q)^2+ @fn4Q(yzy^2- \ shapeAdjust2Q^2)^2)-zzortQ elseif @trapTypeQ == "Bird of Paradise" zz = @fn1Q(exp(@fn4Q((xzx)*@fn3Q(yzy)))- \ @fn2Q(yzy))-zzortQ elseif @trapTypeQ== "Cabuchon Curve" zz = @fn1Q(@fn2Q(xzx^(shapeAdjust2Q)))-@fn3Q(yzy^2)-@fn4Q((xzx^\ (2*shapeAdjust5Q))+@fn6Q(yzy^2+(1-shapeAdjust4Q)))/shapeAdjust1Q^2\ -@fn5Q(xzx*shapeAdjust3Q)-zzortQ elseif @trapTypeQ == "Cardinal Points Curve" zz = @fn1Q(cotanh(@fn2Q(xzx^4+(1-shapeAdjust1Q)))-@fn3Q(yzy^3)-2* \ @fn4Q(abs(xzx^(3-shapeAdjust1Q))-@fn5Q(yzy^2)))-zzortQ elseif @trapTypeQ == "Chaos Adorned" zz = @fn1Q(@fn2Q((yzy)^@fn6Q(yzy)* @fn3Q(yzy))+@fn4Q(xzx+1)^ \ @fn5Q(yzy^2))-zzortQ elseif @trapTypeQ == "Chaos Unleashed" zz = @fn1Q(shapeAdjust1Q^4*@fn2Q(yzy^ \ (yzy))-shapeAdjust2Q^2*@fn3Q((xzx^shapeAdjust3Q) \ ^@fn5Q(xzx+(1-shapeAdjust4Q)))* (2*shapeAdjust1Q-@fn4Q \ (xzx^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Church Key Curve" zz = cotanh(@fn1Q(@fn2Q(((xzx^2)*shapeAdjust2Q)^shapeAdjust1Q))+ \ @fn3Q(yzy*2.4)^(yzy-1))-zzortQ elseif @trapTypeQ == "Compass Curve" zz = @fn1Q((@fn2Q(xzx^2*shapeAdjust1Q))*(@fn3(xzx^2*shapeAdjust3Q)+ \ @fn4Q(yzy^2))-shapeAdjust2Q^2* \ @fn5Q(xzx^(2*shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Conductor's Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1Q)-((xzx*.2* \ yzy)-yzy^2+1)*yzy^4-@fn6Q(xzx^(2*shapeAdjust3Q))/\ @fn7Q(xzx^(2*shapeAdjust2Q)-@fn8Q(yzy^.5)))-zzortQ elseif @trapTypeQ == "Conjoined Circle Curve" zz = @fn1Q((@fn2Q(xzx^2+yzy^2)*(@fn3Q(yzy)-@fn4Q(yzy))-shapeAdjust1Q- \ abs(@fn5Q(yzy))))-zzortQ elseif @trapTypeQ == "Cooking Pot Curve" zz = @fn1Q(@fn2Q(yzy^2)-(shapeAdjust1Q^2- \ @fn3Q(xzx^2*shapeAdjust2Q)))-(@fn4Q(xzx^(2*(shapeAdjust3Q)))+2*\ @fn5Q(yzy^2)-shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Crochet Hooks" zz = @fn1Q(@fn2Q(yzy^3)+(@fn3Q((xzx+1)^ \ @fn5Q(yzy)/@fn4Q((xzx*shapeAdjust1Q)^shapeAdjust2Q))))- \ zzortQ elseif @trapTypeQ == "D&U Curve" zz = @fn1Q(@fn2Q(xzx^(2*shapeAdjust1Q))+@fn3Q((yzy^2)^ \ yzy)-shapeAdjust2Q)-zzort elseif @trapTypeQ == "Dogleg Curve" zz = @fn1Q(atan(@fn3Q((xzx*shapeAdjust1Q)+yzy))-@fn2Q(yzy))-zzortQ elseif @trapTypeQ == "Dribs & Drabs" zz = @fn1Q((@fn1Q(xzx^shapeAdjust2)+@fn3Q(yzy^2)^yzy-4*(xzx^3)* \ @fn4Q(yzy^2)))-zzortQ elseif @trapTypeQ == "Driftwood Curve" zz = @fn1Q(((@fn2Q(xzx)-.5*shapeAdjust7Q)^2+ \ @fn3Q(yzy^2+1))*(@fn4Q(yzy+(1-shapeAdjust3Q))* \ (@fn5Q(xzx-(shapeAdjust4Q-1))-shapeAdjust8Q)+ \ @fn6Q(yzy))+4*shapeAdjust1Q* \ (abs(@fn7Q(xzx+(shapeAdjust5Q-1))-1.5*shapeAdjust2Q))* \ @fn8Q(xzx^(2*shapeAdjust6Q)))-zzortQ elseif @trapTypeQ == "Eye of the Needle" zz = @fn1Q((@fn2Q(yzy^(2*shapeAdjust5Q))-@fn3Q(xzx^2+(1-shapeAdjust6Q)))*\ @fn4Q((xzx^shapeAdjust7Q)-@fn9Q(yzy))* \ (shapeAdjust1Q*@fn5Q(xzx*shapeAdjust8Q)-shapeAdjust2Q)-4* \ (@fn6Q(xzx^2*shapeAdjust4Q)+@fn7Q(yzy^2)-2*@fn8Q \ (xzx^shapeAdjust3Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Floreate Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1)+@fn3Q((yzy)^ \ yzy)-shapeAdjust2Q)-zzortQ elseif @trapTypeQ == "Glyph Curve" zz = @fn1Q(((@fn2Q(xzx*shapeAdjust3Q)-shapeAdjust2Q)^2- \ @fn3Q(yzy^2))*(@fn4Q(xzx+(1-shapeAdjust4Q))* \ (@fn5Q(xzx-(shapeAdjust5Q-1))-shapeAdjust2Q)+ \ @fn6Q(yzy))-4*shapeAdjust1Q* \ (abs(@fn7Q(xzx+(shapeAdjust6Q-1))-shapeAdjust2Q))* \ @fn8Q(xzx^(2*shapeAdjust7Q)))-zzortQ elseif @trapTypeQ == "Gravity Waves" zz = @fn1Q(atan(@fn4Q((xzx^(2*shapeAdjust1Q))+@fn3Q(yzy)* \ 2))-@fn2Q(yzy))-zzortQ elseif @trapTypeQ == "Harpoon Curve" zz = @fn1Q(@fn2Q(xzx^2))*@fn3Q(yzy^2)+ \ shapeAdjust1Q^2-@fn4Q((xzx)^@fn6Q(yzy))- \ shapeAdjust2Q^2-@fn5Q(xzx^shapeAdjust5Q)-zzortQ elseif @trapTypeQ == "Hoops & Plates" zz = @fn1Q((@fn2Q((xzx+(1-shapeAdjust4Q))^@fn5Q(xzx+(1-shapeAdjust4Q)))+ \ @fn3Q(yzy^2*shapeAdjust2Q)+shapeAdjust1Q)^2-4*shapeAdjust1Q^2* \ @fn4Q(xzx^shapeAdjust3Q)-1)-zzortQ elseif @trapTypeQ == "Indented Parabola" zz = @fn1Q(@fn2Q(yzy))+@fn3Q(xzx*.2*shapeAdjust1Q)- \ @fn4Q(yzy^2)-zzortQ elseif @trapTypeQ == "Intersecting Ovals" zz = @fn1Q(@fn2Q(xzx^(2*shapeAdjust2Q))-(.4*shapeAdjust1Q^2* \ @fn3Q(xzx^2*shapeAdjust3Q)))-(@fn4Q(xzx^(2*shapeAdjust4Q))+2*\ @fn5Q(yzy^2)-.5*shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Leaves of Grass" zz = @fn1Q(@fn2Q(yzy))-xzx^@fn4Q(yzy)-zzortQ elseif @trapTypeQ == "Lipped Ovals" zz = @fn1Q(abs(@fn2Q(xzx^2*shapeAdjust1Q))+ \ abs(@fn3Q(yzy))-1)-zzortQ elseif @trapTypeQ == "M Curve" zz = @fn1Q(@fn2Q(yzy))+@fn3Q(shapeAdjust2Q*xzx^(3*shapeAdjust1Q))-\ @fn4Q(yzy^2)-zzortQ elseif @trapTypeQ == "Mercury Curve" zz = @fn1Q((@fn2Q(xzx*shapeAdjust3Q)-shapeAdjust2Q)^2+ \ @fn3Q(yzy^2))*(@fn4Q(xzx+(1-shapeAdjust4Q))* \ (@fn5Q(xzx-(shapeAdjust5Q-1))-shapeAdjust2Q)+ \ @fn6Q(yzy))-4*shapeAdjust1Q* \ (abs(@fn7Q(xzx+(shapeAdjust6Q-1))-shapeAdjust2Q))* \ @fn8Q(xzx^(2*shapeAdjust7Q))-zzortQ elseif @trapTypeQ == "Miscellanea" zz = @fn1Q(yzy^(2))-@fn3Q(xzx^2+(1-shapeAdjust2Q)*(xzx^shapeAdjust3Q)-\ (yzy)*(shapeAdjust1Q*@fn2Q(yzy^xzx)-shapeAdjust2Q)+4*(@fn3Q(xzx^2)\ +@fn4Q(yzy^2)+2*@fn5Q(yzy))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Moorish Fantasy" zz = @fn1Q(@fn2Q((xzx*shapeAdjust2Q)^shapeAdjust1Q))- \ @fn3Q(yzy)^(yzy-1)-zzortQ elseif @trapTypeQ == "Mousehead Curve" zz = @fn1Q(((@fn2Q(xzx^shapeAdjust2Q)-shapeAdjust1Q)^2+ \ @fn3Q(yzy^2+(1-shapeAdjust3Q)))*(@fn4Q(xzx+(1-shapeAdjust4Q))* \ (@fn5Q(xzx-(shapeAdjust5Q-1))-shapeAdjust1Q)+ \ @fn6Q(yzy^1))-4*(abs(xzx)-shapeAdjust1Q)*@fn7Q(yzy^2))-zzortQ elseif @trapTypeQ == "Nested Ovals" zz = @fn1Q(@fn2Q(yzy^2)*(shapeAdjust1Q^2- \ xzx^2))-(@fn3Q(xzx^(2*shapeAdjust2Q))+2* \ @fn4Q(yzy^2)-shapeAdjust1Q^2)^2- \ zzortQ elseif @trapTypeQ == "Nesting Birds Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1Q)-((.2*yzy)^(yzy)*(yzy^2+1))* \ yzy^(4)/(xzx^2)*(xzx^2*3-.5*yzy))-zzortQ elseif @trapTypeQ == "Odds 'n Ends" zz = @fn1Q(@fn2Q(yzy^2)-@fn3Q(xzx^2+(1-shapeAdjust5Q))* \ @fn4Q(xzx^shapeAdjust6Q)-@fn9Q(yzy)* \ (shapeAdjust1Q*@fn5Q(xzx*shapeAdjust7Q)-shapeAdjust2Q)-4* \ (@fn6Q(xzx^2*shapeAdjust4Q)+@fn7Q(yzy^2)-2-@fn8Q \ (xzx^shapeAdjust3Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Omega Curve" zz = @fn1Q(atan(@fn4Q((xzx^(2*shapeAdjust1Q))-@fn3Q(yzy^2)))+@fn2Q\ (xzx^-6*shapeAdjust3Q))-zzortQ elseif @trapTypeQ == "Ornate Curve" zz = @fn1Q((@fn2Q(yzy^2)/(xzx^2+1))*(xzx-yzy)* (shapeAdjust1Q-xzx)-4* \ (@fn3Q(xzx^2*shapeAdjust3Q)+@fn4Q(yzy^2)-2*@fn5Q \ (xzx^shapeAdjust2Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Ovals" zz = @fn1Q(@fn2Q(xzx*shapeAdjust1Q-@fn6Q(yzy))- \ @fn3Q(xzx^2*shapeAdjust2Q+@fn4Q(yzy^2))-2*@fn5Q(yzy^2))-zzortQ elseif @trapTypeQ == "Ovate Waves" zz = @fn1Q(@fn2Q(yzy^4)*@fn3Q(yzy^2)-@fn4Q(yzy^yzy)+shapeAdjust1Q^2* \ @fn5Q(xzx^(2*shapeAdjust2Q)))-zzortQ elseif @trapTypeQ == "Ovate Waves 2" zz = @fn1Q(@fn2Q(yzy^4)-1*@fn3Q(yzy^2)-@fn4Q((xzx*shapeAdjust4Q)^ \ @fn6Q(xzx^shapeAdjust2Q))+shapeAdjust1Q^2* @fn5Q(xzx^\ (2*shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Pisces Curve" zz = @fn1Q((@fn2Q(xzx^(2*shapeAdjust1Q))-1)^2-@fn3Q(.6*yzy^2+ \ (1-shapeAdjust2Q))*(3*yzy+(6-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Plane & Tail" zz = @fn1Q(shapeAdjust1Q^4/@fn2Q((xzx^(2*shapeAdjust3Q)) \ +@fn5Q(yzy)) *shapeAdjust2Q^2- \ @fn3Q((xzx^(2*shapeAdjust4Q))^ @fn6Q(xzx+(1-shapeAdjust5Q))) \ /(2*shapeAdjust1Q-@fn4Q(yzy)))-zzortQ elseif @trapTypeQ == "Seagull Curve" zz = @fn1Q(@fn2Q(yzy^2)-shapeAdjust1Q^2* \ (@fn3Q(yzy^5)+@fn5Q(xzx+(1-shapeAdjust2Q))+ \ @fn4Q(yzy^7)))-zzortQ elseif @trapTypeQ == "Simple Curve" zz = @fn1Q(atan(@fn4Q((xzx^shapeAdjust4Q*shapeAdjust1Q)- \ @fn3Q(yzy)))-@fn2Q(yzy))-zzortQ elseif @trapTypeQ == "Smoke Rings" zz = @fn1Q(shapeAdjust1Q^4+@fn2Q((xzx^2)* \ @fn5q(yzy))- shapeAdjust2Q^2- \ @fn3Q((xzx^(shapeAdjust5Q))^@fn6Q(xzx+(1-shapeAdjust6Q))) \ /(2*shapeAdjust1Q-@fn4Q(yzy)))-zzortQ elseif @trapTypeQ == "Sneering Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1Q)-(((xzx*.2)* yzy)-yzy^2+1)* \ yzy^4-@fn3Q(xzx^(2*shapeAdjust3Q))/\ @fn4Q(xzx^(2*shapeAdjust2Q)+@fn5Q(yzy^.5)))-zzortQ elseif @trapTypeQ == "Space Debris" zz = @fn1Q(shapeAdjust1Q^4*@fn2Q((yzy^2)/ \ xzx^2)-shapeAdjust2Q^2* \ @fn3Q((xzx^shapeAdjust3Q)^@fn5Q(xzx+(1-shapeAdjust4Q)))* \ (2*shapeAdjust1Q-@fn4Q(xzx^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Spectacles Curve" zz = @fn1Q(@fn2Q(xzx^4*shapeAdjust2q)+@fn3Q(yzy^4)-2* \ shapeAdjust3Q*@fn4Q(abs(xzx)- \ @fn5Q(yzy^2*shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Spiked Cusp" zz = @fn1Q(@fn2Q((yzy)^yzy* xzx))-zzortQ elseif @trapTypeQ == "Squared Circle Curve" zz = @fn1Q((@fn2Q(xzx^2*shapeAdjust1Q))*(@fn3Q(xzx^2*shapeAdjust3Q)- \ @fn4Q(yzy^2))-shapeAdjust2Q^2/2+ \ @fn5Q(yzy^4))-zzortQ elseif @trapTypeQ == "Squeezed Rectangle Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust2Q)-shapeAdjust1Q* \ (@fn3Q(yzy^5)-@fn5Q(xzx^shapeAdjust3Q)- \ @fn4Q(yzy^7)))-zzortQ elseif @trapTypeQ == "Swallow Curve" zz = @fn1Q(@fn2Q((xzx^2*shapeAdjust2Q))-@fn3Q((yzy^2)))^2-4*@fn4Q\ ((xzx^yzy^2)*@fn5Q(yzy^2))-zzortQ elseif @trapTypeQ == "Stretched Oval Curve" zz = @fn1Q(shapeAdjust1Q^4+@fn2Q((yzy^2)/(xzx^2))-shapeAdjust2Q^2* \ @fn3Q((xzx^(2*shapeAdjust3Q))*@fn5Q(xzx+(1-shapeAdjust4Q)))* \ (2*shapeAdjust1Q-@fn4Q(xzx^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Switchback Curve" zz = @fn1Q(atan(@fn4Q((xzx^(2*shapeAdjust1Q))*@fn3Q(yzy^shapeAdjust4Q)* \ shapeAdjust2Q))-@fn2Q(xzx^shapeAdjust3Q))-zzortQ elseif @trapTypeQ == "Taurus Curve" zz = @fn1Q(@fn2Q(xzx^(shapeAdjust2Q)))-@fn3Q(yzy^2)\ -@fn4Q((xzx^(2*shapeAdjust5Q))+ \ @fn6Q(yzy^2+(1-shapeAdjust4Q)))/shapeAdjust1Q^2* \ @fn5Q(xzx^shapeAdjust3Q)-zzortQ elseif @trapTypeQ == "Teardrop Curve" zz = @fn1Q(shapeAdjust1Q^4*@fn2Q((yzy^2)/xzx^2)- \ shapeAdjust2Q^2*@fn3Q((xzx^(2*shapeAdjust3Q))/@fn5Q(xzx+\ (1-shapeAdjust4Q)))* (2*shapeAdjust1Q-@fn4Q(xzx^shapeAdjust5Q)))\ -zzortQ elseif @trapTypeQ == "Tennis Anyone?" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust2Q)+2*shapeAdjust1Q* \ @fn3Q((xzx^shapeAdjust3Q)-@fn6Q(yzy))- \ shapeAdjust1Q^2)^2-@fn4Q(yzy^2)* @fn5Q(xzx^2)- zzortQ elseif @trapTypeQ == "Thorned Cross" zz = @fn1Q(@fn2Q((yzy)^yzy* \ xzx)+@fn3Q(xzx+(1-shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Three Point Curve" zz = @fn1Q((@fn2Q(xzx^2)-shapeAdjust1Q^2)*@fn3Q(xzx^2-shapeAdjust3Q)^2+ \ @fn4Q(yzy^4-shapeAdjust2Q^2)^2)- zzortQ elseif @trapTypeQ == "Tsuba curve" zz = @fn1Q(@fn2Q(yzy^2)-(.4*shapeAdjust1Q^2* \ @fn3Q(xzx^2*shapeAdjust2Q)))-(@fn4Q(xzx^(2*shapeAdjust3Q))+2\ *@fn5Q(yzy^2)-.5*shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Wheel in Trough" zz = @fn1Q((@fn2Q((xzx*shapeAdjust2Q)^(1+shapeAdjust1Q))+ \ @fn3Q(yzy^2))*atan2(@fn4Q(yzy)*xzx)*@fn6Q(yzy))-zzortQ elseif @trapTypeQ == "Whip Curve" zz = @fn1Q(@fn2Q((yzy)^yzy*yzy)+@fn3Q(xzx+(1-shapeAdjust1Q))- \ @fn4Q(yzy^2))-zzortQ elseif @trapTypeQ == "Cassini Ovals" zz = @fn1Q((@fn2Q(xzx^2*shapeAdjust3Q)+@fn3Q(yzy^2)+ \ shapeAdjust1Q^2)^2-4*shapeAdjust1Q^2* \ @fn4Q(xzx^(3-shapeAdjust4Q))-shapeAdjust2Q^4)-zzortQ elseif @trapTypeQ == "Circle" zz = @fn1Q(@fn2Q((xzx*shapeAdjust1Q)^(3-shapeAdjust2Q))+ \ @fn3Q((yzy*shapeAdjust3Q)^3)-1)-zzortQ elseif @trapTypeQ == "Cissoid of Diocles" zz = @fn1Q(@fn2Q(xzx^shapeAdjust1Q)*@fn3Q(xzx^2+(1-shapeAdjust2Q)+ \ (yzy^2))-2*@fn4Q(yzy^2+(1-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Cochleoid" zz = exp(@fn1Q((@fn2Q(xzx^2)+yzy^2)* \ atan(@fn3Q(yzy))-@fn4Q(yzy))+ \ 1*abs(@fn5Q(yzy)))-zzortQ elseif @trapTypeQ == "Cocked Hat" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust2Q)+2*shapeAdjust1Q*@fn3Q(yzy)- \ shapeAdjust1Q^2)^2-@fn4Q(yzy^3)* \ (1-xzx^2)-zzortQ elseif @trapTypeQ == "Conchoid of Nicomedes" zz = @fn1Q((@fn2Q(xzx-shapeAdjust1Q))^2*(@fn3Q(xzx^(2*shapeAdjust3Q))+ \ @fn4Q(yzy^2))-shapeAdjust2Q^2* \ @fn5Q(xzx^2*shapeAdjust4Q))-zzortQ elseif @trapTypeQ == "Cruciform" zz = @fn1Q(@fn2Q(xzx^2)*@fn3Q(yzy)- shapeAdjust1Q^2*@fn4Q \ (xzx^(1+shapeAdjust2Q))-1*@fn5Q(yzy^3))-zzortQ elseif @trapTypeQ == "Devil's Curve" zz = @fn1Q(@fn2Q(yzy^3)-1* \ @fn3Q(yzy^2+(1-shapeAdjust3Q))-@fn4(xzx^4*shapeAdjust2Q)+ \ shapeAdjust1Q^2*@fn5Q(xzx^(1+shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Diamond" zz = @fn1Q(abs(@fn2Q(xzx*shapeAdjust1))+abs(@fn3Q(yzy))-1)- \ zzortQ elseif @trapTypeQ == "Dumbbell Curve" zz = @fn1Q(@fn2Q(yzy^2)-shapeAdjust1Q^2* \ (@fn3Q(xzx^(5-shapeAdjust2Q))-@fn4Q(xzx^(7-shapeAdjust3Q))))-zzortQ elseif @trapTypeQ == "Dürer's Conchoid" zz = @fn1Q(2*@fn2Q(yzy)*(@fn3Q(xzx)+ @fn4Q(yzy^2))-2*shapeAdjust2Q* \ @fn5Q(yzy^2+(1-shapeAdjust3Q))*(xzx^shapeAdjust4Q+ \ yzy+(1-shapeAdjust5Q))+(shapeAdjust2Q^2-3*shapeAdjust1Q^2)* \ @fn6Q(yzy)-shapeAdjust1Q^2* \ @fn7Q(xzx^2*shapeAdjust6Q)+2*shapeAdjust1Q^2*shapeAdjust2Q* \ (@fn8Q(xzx^shapeAdjust7Q)+@fn9Q(yzy))+ \ shapeAdjust1Q^2*(shapeAdjust1Q^2-shapeAdjust2Q^2))-zzortQ elseif @trapTypeQ == "Eight Curve" zz = @fn1Q(@fn2Q(xzx^(3+shapeAdjust2Q))-shapeAdjust1Q^2* \ (@fn3Q(xzx^2*shapeAdjust3Q)-@fn4Q(yzy^2)))-zzortQ elseif @trapTypeQ == "Happy Accident" zz = @fn1Q((@fn2Q((xzx*shapeAdjust2Q)^(1+shapeAdjust1Q))+ \ @fn3Q(yzy^2))*atan2(@fn4Q(yzy)*xzx)-1*@fn5Q(yzy))-zzortQ elseif @trapTypeQ == "Hyperbola" zz = @fn1Q(@fn2Q((xzx*shapeAdjust1Q)^(1+shapeAdjust2Q))- \ @fn3Q(yzy)+ 1)-zzortQ elseif @trapTypeQ == "Kappa Curve" zz = @fn1Q(xzx^3+yzy^2)* @fn4Q(yzy)-shapeAdjust1Q^2* \ @fn5Q(xzx^2*shapeAdjust2Q)-zzortQ elseif @trapTypeQ == "Keppler's Folium" zz = @fn1Q((@fn2Q(xzx^shapeAdjust2Q)-shapeAdjust1Q)^2+ \ @fn3Q(yzy^2+(1-shapeAdjust3Q)))*(@fn4Q(xzx+(1-shapeAdjust4Q))* \ (@fn5Q(xzx-(shapeAdjust5Q-1))-shapeAdjust1Q)+@fn6Q\ (yzy))-4*(abs(@fn7Q(xzx))-shapeAdjust1Q)*@fn8Q(yzy^2)-zzortQ elseif @trapTypeQ == "Keratoid Cusp" zz = @fn1Q(@fn2Q(xzx^2)*@fn3Q(yzy)+ \ @fn4Q(xzx^(5*shapeAdjust1Q))-@fn5Q(yzy^3))-zzortQ elseif @trapTypeQ == "Knot Curve" zz = @fn1Q((@fn2Q(xzx^(1+shapeAdjust1Q)-1)^2)-@fn3Q(yzy^2)* \ (3+2*yzy))-zzortQ elseif @trapTypeQ == "Lemniscate" zz = @fn1Q((@fn2Q(xzx^2+(1-shapeAdjust2Q))+@fn3Q(yzy))^2- \ 2*shapeAdjust1Q*(@fn4Q(xzx^(2*shapeAdjust3Q))- \ @fn5Q(yzy^2)))-zzortQ elseif @trapTypeQ == "Lemniscate Corrected" zz = @fn1Q(@fn2Q(xzx^4+(1-shapeAdjust2Q))+yzy^4+3* xzx^2*yzy^2-2* \ shapeAdjust1Q^2*(@fn3Q(xzx^(2*shapeAdjust3Q))-@fn4Q(yzy)))-zzortQ elseif @trapTypeQ == "Limacon" zz = @fn1Q((@fn2Q(xzx^(2*shapeAdjust3Q))+@fn3Q(yzy^2+(1-shapeAdjust4Q))-2*\ shapeAdjust1Q*@fn4Q(xzx^shapeAdjust5Q))^2-shapeAdjust2Q^2* \ (@fn5Q(xzx^2*shapeAdjust6Q)+@fn6Q(yzy^2)))-zzortQ elseif @trapTypeQ == "Line" zz = @fn1Q(yzy)-zzortQ elseif @trapTypeQ == "Links Curve" zz = @fn1Q((@fn2Q(xzx^2*shapeAdjust1Q)+@fn3Q(yzy^2)-3* \ @fn4Q(xzx^shapeAdjust2Q))^2-4*@fn5Q(xzx^(2*shapeAdjust3Q))* \ (2-abs(@fn6Q(xzx^shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Maltese Cross Curve" zz = @fn1Q(@fn2Q(xzx^2*shapeAdjust1Q)+@fn3Q(yzy^2)-abs \ (xzx)*abs(@fn4Q(yzy+(1-shapeAdjust2Q)))* \ (@fn5Q(xzx^(2+(1-shapeAdjust3Q))-@fn6Q(yzy^2))))- \ zzortQ elseif @trapTypeQ == "Parabola" zz = @fn1Q(@fn2Q(xzx^(2*shapeAdjust1Q))-@fn3Q(yzy))-zzortQ elseif @trapTypeQ == "Pear-Shaped Curve" zz = @fn1Q(@fn2Q(xzx^(4-shapeAdjust2Q))*(shapeAdjust1Q-@fn3Q\ (xzx^shapeAdjust3Q))-1*@fn4Q(yzy^2))-zzortQ elseif @trapTypeQ == "Piriform" zz = @fn1Q(shapeAdjust1Q^4*@fn2Q(yzy^2)-shapeAdjust2Q^2* \ @fn3Q(xzx^(3*shapeAdjust3Q))*(2*shapeAdjust1Q-@fn4Q\ (xzx/shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Quadrifolium" zz = @fn1Q((@fn2Q(xzx^(2*shapeAdjust1Q))+yzy^2)^3-4* \ (xzx^2+1)*@fn5Q(yzy^3))-zzortQ elseif @trapTypeQ == "Rose Curve" complex tz = atan2(xzx + flip(yzy)) zz = @fn1Q(shapeAdjust1Q*cos(@fn2Q(tz^shapeAdjust2Q)) + \ sin(@fn3Q(tz^shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Serpentine Curve" zz = @fn1Q(shapeAdjust1Q*shapeAdjust2Q*@fn2Q(xzx^shapeAdjust3Q)/ \ @fn3Q((xzx+1-shapeAdjust3Q)^2+shapeAdjust1Q^2)- \ @fn4Q(yzy))-zzortQ elseif @trapTypeQ == "sin(x)/x" zz = @fn1Q(10*@fn2Q(sin(xzx^shapeAdjust1Q))/@fn3Q(xzx*shapeAdjust2Q)- \ @fn4Q(yzy))-zzortQ elseif @trapTypeQ == "Sinus + Cosinus" zz = @fn1Q(sin(shapeAdjust1Q*@fn2Q(xzx^shapeAdjust3Q))+ \ cos(shapeAdjust2Q*@fn3Q(xzx+(1-shapeAdjust4Q)))+ \ @fn4Q(yzy))-zzortQ elseif @trapTypeQ == "Spiral" zz = abs((xzx^(2*@shapeAdjust2Q)+yzy^2)^ \ @shapeAdjust1Q%1-.5+atan2(xzx*@shapeAdjust3Q +(flip(yzy)))/(2*pi)) zz2 = abs((xzx^(2*@shapeAdjust4Q)+yzy^2)^@shapeAdjust1Q%1-.5+ \ atan2(xzx+flip(yzy))/(2*pi)+1) if real(zz2) < real(zz) zz = real(zz2) endif zz2 = abs((xzx^(2*@shapeAdjust6Q)+yzy^2)^@shapeAdjust1Q%1-.5+atan2 \ (xzx+flip(yzy))/(2*pi)-1) if real(zz2) < real(zz) zz = real(zz2) endif elseif @trapTypeQ == "Square" if abs(xzx) > abs(yzy) zz = @fn1Q(@fn2Q(abs(xzx^shapeAdjust1Q))-1)-zzortQ else zz = abs(yzy)-1 endif elseif @trapTypeQ == "Stirrup Curve" zz = @fn1Q(@fn2Q((xzx^2-1)^2)-@fn3Q(yzy^2)*(yzy-1)*(yzy-2)* \ (yzy+5))-zzortQ elseif @trapTypeQ == "Strange Shape" zz = @fn1Q((@fn2Q(xzx^(2*shapeAdjust2Q))+(yzy)^ \ 2)*atan2(@fn4Q(xzx*shapeAdjust4Q)^ \ shapeAdjust7Q+flip(@fn5(yzy)))- \ 1*@fn6Q(yzy))-zzortQ elseif @trapType == "Swastika Curve" zz = @fn1(@fn2(yzy^4)-@fn3(xzx^4*shapeAdjust2)- \ @fn4(xzx)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapTypeQ == "Tangent" zz = @fn1Q(tan(@fn2Q((xzx*shapeAdjust1Q)^shapeAdjust2Q))-@fn3Q(yzy))-zzortQ elseif @trapTypeQ == "Trefoil" zz = @fn1Q(@fn2Q(xzx^(5-shapeAdjust1Q))+xzx^2* \ @fn3Q(yzy^2)+@fn4Q(yzy^4)- \ @fn5Q(xzx^shapeAdjust2Q)*(@fn6Q(xzx^2*shapeAdjust3Q)- \ @fn7Q(yzy^2+(1-shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Trident" zz = @fn1Q(@fn2Q(xzx^3*shapeAdjust2Q)-shapeAdjust1Q^3- \ @fn3Q(xzx)*yzy)-zzortQ elseif @trapTypeQ == "Trident of Descartes" zz = @fn1Q((shapeAdjust1Q+@fn2Q(xzx^shapeAdjust2Q))* \ (shapeAdjust1Q-@fn3Q(xzx*shapeAdjust3Q))* \ (2*shapeAdjust1Q-@fn4Q(xzx^shapeAdjust4Q))/ \ (shapeAdjust1Q*@fn5Q(xzx+(1-shapeAdjust5Q)))- \ @fn6Q(yzy))-zzortQ elseif @trapTypeQ == "Trifolium" zz = @fn1Q((@fn2Q(xzx^2*shapeAdjust2Q)+@fn3Q(yzy^2))* \ (@fn4Q(yzy^2)+@fn5Q(xzx^shapeAdjust3Q)* \ @fn6Q(xzx+shapeAdjust1Q))-4* \ @fn7Q(xzx)*@fn8Q(yzy^2+(1-shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Trisectrix of Maclaurin" zz = @fn1Q(@fn2Q(yzy^2)*(shapeAdjust1Q+ xzx)-@fn3Q(xzx^(2*shapeAdjust2Q))*\ (3*shapeAdjust1Q-@fn4Q(xzx*shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Twisted Cross" zz = @fn1Q(@fn2Q(yzy^4)-@fn3Q(xzx^(5-shapeAdjust2Q))- \ @fn4Q(xzx)*@fn5Q(yzy+(1-shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Witch of Agnesi" zz = @fn1Q(8*shapeAdjust2Q*shapeAdjust1Q^3/ \ @fn2Q(xzx^(2*shapeAdjust3Q)+4*shapeAdjust1Q^2)- \ @fn3Q(yzy))-zzortQ endif if @ztestflavorQ == "cabs" ztest2=cabs(@fn5aQ(ztest)) elseif @ztestflavorQ == "real" ztest2=real(@fn5aQ(ztest)) elseif @ztestflavorQ == "imag" ztest2=imag(@fn5aQ(ztest)) elseif @ztestflavorQ == "atan2" ztest2=atan2(@fn5aQ(ztest)) elseif @ztestflavorQ == "mod" ztest2=|(@fn5aQ(ztest))| endif if @z1parQ == "normal" z1 = z1 elseif @z1parQ == "cabs" z1 = cabs(z1) elseif @z1parQ == "real" z1 = real(z1) elseif @z1parQ == "imag" z1 = imag(z1) elseif @z1parQ == "atan2" z1 = atan2(z1) elseif @z1parQ == "modulus" z1 = |z1| elseif @z1parQ == "function" z1 = @z1fnQ(z1) endif if @zztypQ == "1" zz=@zzfn1Q(z1)-@zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ elseif @zztypQ == "2" zz= @zzfn2Q(@zzfn1Q(z1)-@zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ) elseif @zztypQ == "3" zz= @zzfn3Q(@zzfn2Q(@zzfn1Q(z1))-@zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ) elseif @zztypQ == "4" zz= @zzfn3Q(@zzfn2Q(@zzfn1Q(z1)))-@zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ elseif @zztypQ == "5" zz= @zzfn3Q(@zzfn2Q(@zzfn1Q(z1)-@zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ)) elseif @zztypQ =="6" zz = @zfnQ((zz-@p3aQ)*@p3bQ)^@p3cQ endif point = @fn2aQ(zz)*@fn3aQ(@fn6aQ(ztest2))+flip(@fn2aQ(zz)*@fn4aQ\ (@fn7aQ(ztest2))) float radius=abs(cabs(z1-zz)) point = @fnp3Q(@fnp2Q(@fnpQ(point-@p4aQ)*@p4bQ)^@p4cQ) if @shadeTypeQ == true if @floatdQ == "atan" d=cabs(atan(z1-(point))) elseif @floatdQ == "atanh" d=cabs(atanh(z1-point)) elseif @floatdQ == "sqrt" d=cabs(atan(sqrt(z1-point))) endif else if @floatdQ == "atan" d=|atan(z1-(point))| elseif @floatdQ == "atanh" d=|atanh(z1-point)| elseif @floatdQ == "sqrt" d=|atan(sqrt(z1-point))| endif endif if @simplex_dQ == false d = d else if @nu_dQ == "1" if @change_dQ == false if @var_dQ == 0 d = cabs(log(d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 1 d = cabs(log(d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 2 d = cabs(log(d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 3 d = cabs(log(d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 4 d = cabs(log(d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 5 d = cabs(log(d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 6 d = cabs(log(d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 7 d = cabs(log(d-(@fndQ(z1/@fndQ(zz))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 8 d = cabs(log(d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ== 9 d = cabs(log(d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q) endif else if @var_dQ == 0 d = cabs(log(d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 1 d = cabs(log(d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 2 d = cabs(log(d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 3 d = cabs(log(d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 4 d = cabs(log(d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 5 d = cabs(log(d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 6 d = cabs(log(d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 7 d = cabs(log(d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 8 d = cabs(log(d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 9 d = cabs(log(d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) endif endif elseif @nu_dQ == "2" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "3" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)^@fnd2(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)^@fnd2(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "4" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "5" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "6" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif endif endif endif elseif @blendType == true if @combine if @first == 0 ; atan2a ac = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 1; atan2a x+y ac = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @first == 2; atan2a x-y ac = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @first == 3; atan2b ac = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @first == 4; reala ac = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 5; realb ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @first == 6; imaga ac = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @first == 7; imagb ac = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 8; moda ac = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @first == 9; modb ac = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @first == 10; normal ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @first == 11; r+i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @first == 12; r*i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 13; r/i ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 14; i/r ac = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) endif if @split if @second == 0 ; atan2a bc = atan2(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 1; atan2a x+y bc = atan2((@fn1a(real(z1-@p1d)*@p1e)^@p1f)+flip(@fn1b(imag(z1-@p1d)\ *@p1e)^@p1f)) elseif @second == 2; atan2a x-y bc = atan2((@fn1a(real(z1-@p1d)*@p1e)^@p1f)-flip(@fn1b(imag(z1-@p1d)\ *@p1e)^@p1f)) elseif @second == 3; atan2b bc = cabs(@fn1a(atan2(z1-@p1d)*@p1e)^@p1f) elseif @second == 4; reala bc = real(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 5; realb bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) elseif @second == 6; imaga bc = imag(@fn1a(z1-@p1d)*@p1e)^@p1f elseif @second == 7; imagb bc = cabs(@fn1a(imag(z1-@p1d)*@p1e)^@p1f) elseif @second == 8; moda bc = |(@fn1a(z1-@p1d)*@p1e)^@p1f| elseif @second == 9; modb bc = cabs(@fn1a(|z1-@p1d|)*@p1e)^@p1f elseif @second == 10; normal bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) + \ cabs(flip(@fn1b(imag(z1-@p1d)*@p1e)^@p1f)) elseif @second == 11; r+i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) + \ flip(cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f)) elseif @second == 12; r*i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) * \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) elseif @second == 13; r/i bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) / \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) elseif @first == 14; i/r bc = cabs(@fn1a(real(z1-@p1d)*@p1e)^@p1f) / \ cabs(@fn1b(imag(z1-@p1d)*@p1e)^@p1f) endif else if @second == 0 ; atan2a bc = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 1; atan2a x+y bc = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @second == 2; atan2a x-y bc = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @second == 3; atan2b bc = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @second == 4; reala bc = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 5; realb bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @second == 6; imaga bc = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @second == 7; imagb bc = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @second == 8; moda bc = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @second == 9; modb bc = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @second == 10; normal bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @second == 11; r+i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @second == 12; r*i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @second == 13; r/i bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @first == 14; i/r bc = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) endif endif if @combOp == 0; + ztest = ac + real(@combfn(bc)) elseif @combOp == 1; - ztest = ac - real(@combfn(bc)) elseif @combOp == 2; * ztest = ac * real(@combfn(bc)) elseif @combOp == 3; / ztest = ac / real(@combfn(bc)) elseif @combOp == 4; // ztest = real(@combfn(bc)) / ac elseif @combOp == 5; ^ ztest = ac ^ real(@combfn(bc)) elseif @combOp == 6; ^^ ztest = real(@combfn(bc)) ^ ac endif else if @pztest == "atan2 a" ztest = atan2(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "atan2 a (x+y)" ztest = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)+flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @pztest == "atan2 a (x-y)" ztest = atan2((@fn1a(real(z1-@p1a)*@p1b)^@p1c)-flip(@fn1b(imag(z1-@p1a)\ *@p1b)^@p1c)) elseif @pztest == "atan2 b" ztest = cabs(@fn1a(atan2(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "real a" ztest = real(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "real b" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "imag a" ztest = imag(@fn1a(z1-@p1a)*@p1b)^@p1c elseif @pztest == "imag b" ztest = cabs(@fn1a(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "modulus a" ztest = |(@fn1a(z1-@p1a)*@p1b)^@p1c| elseif @pztest == "modulus b" ztest = cabs(@fn1a(|z1-@p1a|)*@p1b)^@p1c elseif @pztest == "normal" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ cabs(flip(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @pztest == "real + imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) + \ flip(cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c)) elseif @pztest == "real * imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) * \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "real / imag" ztest = cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) elseif @pztest == "imag / real" ztest = cabs(@fn1b(imag(z1-@p1a)*@p1b)^@p1c) / \ cabs(@fn1a(real(z1-@p1a)*@p1b)^@p1c) endif endif ztest=cabs(((ztest-@p2a)*@p2b)^@p2c) if @aparam == "1" if @nuflav == "exp" ztest = ztest*exp(1i*pi/180*@rotation*180)/@size elseif @nuflav == "acos" ztest = ztest*acos(1i*pi/180*@rotation*180)/@size elseif @nuflav == "acosh" ztest = ztest*acosh(1i*pi/180*@rotation*180)/@size endif elseif @aparam == "2" if @nuflav == "exp" ztest = ztest*exp(exp(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(exp(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(exp(1i*pi/180*@rotation*180))/@size endif elseif @aparam == "3" if @nuflav == "exp" ztest = ztest*exp(acos(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(acos(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(acos(1i*pi/180*@rotation*180))/@size endif elseif @aparam == "4" if @nuflav == "exp" ztest = ztest*exp(acosh(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acos" ztest = ztest*acos(acosh(1i*pi/180*@rotation*180))/@size elseif @nuflav == "acosh" ztest = ztest*acosh(acosh(1i*pi/180*@rotation*180))/@size endif endif float xzx = sqrt(@ratio)*real((@xfunc(ztest-@x1)*@x2)^@x3) float yzy = 1/sqrt(@ratio)*imag((@yfunc(ztest-@y1)*@y2)^@y3) if @trapType == "Alien Waves" zz = @fn1(@fn2((yzy)/(xzx)\ ^(yzy)-@fn4(xzx^shapeAdjust2)-\ @fn3(yzy+(1-shapeAdjust1))))-zzort elseif @trapType == "Ampersand Curve" zz = @fn1((@fn2(yzy^2)-@fn3(xzx^2+(1-shapeAdjust3)))* \ @fn4((xzx^shapeAdjust4)-1)*(shapeAdjust1* \ @fn5(xzx)-shapeAdjust2)- 4*(@fn6(xzx^2*shapeAdjust5)+ \ @fn7(yzy^2)-2* @fn8(xzx^shapeAdjust6))^2)-zzort elseif @trapType == "ArcTangent" zz = @fn1(atan(@fn2(xzx^shapeAdjust1*shapeAdjust2))- \ @fn3(yzy))-zzort elseif @trapType == "Bad Hair Day" zz = @fn1(@fn2(yzy^yzy*yzy)+@fn3(xzx+(1-shapeAdjust1)))-zzort elseif @trapType == "Barbed Wire" zz = @fn1(abs(@fn2(xzx^shapeAdjust1))+ \ abs(yzy^yzy)-1)- zzort elseif @trapType == "Baubles & Bangles" zz = @fn1((@fn2(xzx^(2*shapeAdjust1)-1))^2+cos(@fn3\ (yzy^2+(1-shapeAdjust2)))* @fn4(yzy^(.2)-1) \ *@fn5(yzy-2)* @fn6(yzy+(3-shapeAdjust3)))-zzort elseif @trapType == "Bean Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust1)+xzx^2* \ @fn3(yzy^2)+@fn4(yzy^4)- \ @fn5(xzx^shapeAdjust2)*@fn6(xzx^(2*shapeAdjust3)+ \ @fn7(yzy^2+(1-shapeAdjust4))))-zzort elseif @trapType == "Bicorn Curve" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1^2-xzx^2))- \ (@fn3(xzx^2+2*shapeAdjust1* \ @fn4(yzy^shapeAdjust2)-shapeAdjust1^2)^2)-zzort elseif @trapType == "Bicuspid Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust2)-shapeAdjust1^2)* \ @fn3(xzx^shapeAdjust3-shapeAdjust1)^2+ \ @fn4(yzy^2-shapeAdjust1^2)^2)-zzort elseif @trapType == "Bifolium" zz = @fn1(@fn2(xzx^(1+shapeAdjust1))+@fn3(yzy^2+(1-shapeAdjust2)))^2- \ 4*@fn4(abs(xzx)* \ @fn5(yzy^3))-zzort elseif @trapType == "Bow" zz = @fn1(@fn2(xzx^4*shapeAdjust1)-@fn3(xzx^2+1)* \ @fn4(yzy)+@fn5(yzy^3))-zzort elseif @trapType == "Butterfly Curve" zz = @fn1(@fn2(yzy^6)-(@fn3(xzx^2+(1-shapeAdjust1))- \ @fn4(xzx^6+(1-shapeAdjust2))))-zzort elseif @trapType == "Bighorn Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+(yzy^2*yzy^2+1)*yzy^5/ \ xzx^2*xzx^2-yzy)-zzort elseif @trapType == "Binary Curve" zz = @fn1((@fn2(xzx^(3-shapeAdjust4))-shapeAdjust1)/@fn3 \ (xzx^2-2*shapeAdjust3)^2+ @fn4(yzy^2- \ shapeAdjust2^2)^2)-zzort elseif @trapType == "Bird of Paradise" zz = @fn1(exp(@fn4((xzx)*@fn3(yzy)))- \ @fn2(yzy))-zzort elseif @trapType == "Cabuchon Curve" zz = @fn1(@fn2(xzx^(shapeAdjust2)))-@fn3(yzy^2)-@fn4((xzx^(2*shapeAdjust5)\ )+@fn6(yzy^2+(1-shapeAdjust4)))/shapeAdjust1^2-@fn5 \ (xzx*shapeAdjust3)-zzort elseif @trapType == "Cardinal Points Curve" zz = @fn1(cotanh(@fn2(xzx^4+(1-shapeAdjust1)))-@fn3(yzy^3)-2* \ @fn4(abs(xzx^(3-shapeAdjust1))-@fn5(yzy^2)))-zzort elseif @trapType == "Chaos Adorned" zz = @fn1(@fn2((yzy)^@fn6(yzy)* @fn3(yzy))+@fn4(xzx+1)^ \ @fn5(yzy^2))-zzort elseif @trapType == "Chaos Unleashed" zz = @fn1(shapeAdjust1^4*@fn2(yzy^ \ (yzy))-shapeAdjust2^2*@fn3((xzx^shapeAdjust3) \ ^@fn5(xzx+(1-shapeAdjust4)))* (2*shapeAdjust1-@fn4 \ (xzx^shapeAdjust5)))-zzort elseif @trapType == "Church Key Curve" zz = cotanh(@fn1(@fn2(((xzx^2)*shapeAdjust2)^shapeAdjust1))+ \ @fn3(yzy*2.4)^(yzy-1))-zzort elseif @trapType == "Compass Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)+ \ @fn4(yzy^2))-shapeAdjust2^2* \ @fn5(xzx^(2*shapeAdjust4)))-zzort elseif @trapType == "Conductor's Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-((xzx*.2* \ yzy)-yzy^2+1)*yzy^4-@fn6(xzx^(2*shapeAdjust3))/\ @fn7(xzx^(2*shapeAdjust2)-@fn8(yzy^.5)))-zzort elseif @trapType == "Conjoined Circle Curve" zz = @fn1((@fn2(xzx^2+yzy^2)*(@fn3(yzy)-@fn4(yzy))-shapeAdjust1- \ abs(@fn5(yzy))))-zzort elseif @trapType == "Cooking Pot Curve" zz = @fn1(@fn2(yzy^2)-(shapeAdjust1^2- \ @fn3(xzx^2*shapeAdjust2)))-(@fn4(xzx^(2*(shapeAdjust3)))+2*@fn5(yzy^2\ )-shapeAdjust1^2)^2-zzort elseif @trapType == "Crochet Hooks" zz = @fn1(@fn2(yzy^3)+(@fn3((xzx+1)^ \ @fn5(yzy)/@fn4((xzx*shapeAdjust1)^shapeAdjust2))))- \ zzort elseif @trapType == "D&U Curve" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))+@fn3((yzy^2)^ \ yzy)-shapeAdjust2)-zzort elseif @trapType == "Dogleg Curve" zz = @fn1(atan(@fn3((xzx*shapeAdjust1)+yzy))-@fn2(yzy))-zzort elseif @trapType == "Dribs & Drabs" zz = @fn1((@fn1(xzx^shapeAdjust2)+@fn3(yzy^2)^yzy-4*(xzx^3)* \ @fn4(yzy^2)))-zzort elseif @trapType == "Driftwood Curve" zz = @fn1(((@fn2(xzx)-.5*shapeAdjust7)^2+ \ @fn3(yzy^2+1))*(@fn4(yzy+(1-shapeAdjust3))* \ (@fn5(xzx-(shapeAdjust4-1))-shapeAdjust8)+ \ @fn6(yzy))+4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust5-1))-1.5*shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust6)))-zzort elseif @trapType == "Eye of the Needle" zz = @fn1((@fn2(yzy^(2*shapeAdjust5))-@fn3(xzx^2+(1-shapeAdjust6)))* \ @fn4((xzx^shapeAdjust7)-@fn9(yzy))* \ (shapeAdjust1*@fn5(xzx*shapeAdjust8)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust4)+@fn7(yzy^2)-2*@fn8 \ (xzx^shapeAdjust3))^2*shapeAdjust1)-zzort elseif @trapType == "Floreate Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3((yzy)^ \ yzy)-shapeAdjust2)-zzort elseif @trapType == "Glyph Curve" zz = @fn1(((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2- \ @fn3(yzy^2))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust2)+ \ @fn6(yzy))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust6-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust7)))-zzort elseif @trapType == "Gravity Waves" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))+@fn3(yzy)* \ 2))-@fn2(yzy))-zzort elseif @trapType == "Harpoon Curve" zz = @fn1(@fn2(xzx^2))*@fn3(yzy^2)+ \ shapeAdjust1^2-@fn4((xzx)^@fn6(yzy))- \ shapeAdjust2^2-@fn5(xzx^shapeAdjust5)-zzort elseif @trapType == "Hoops & Plates" zz = @fn1((@fn2((xzx+(1-shapeAdjust4))^@fn5(xzx+(1-shapeAdjust4)))+ \ @fn3(yzy^2*shapeAdjust2)+shapeAdjust1)^2-4*shapeAdjust1^2* \ @fn4(xzx^shapeAdjust3)-1)-zzort elseif @trapType == "Indented Parabola" zz = @fn1(@fn2(yzy))+@fn3(xzx*.2*shapeAdjust1)- \ @fn4(yzy^2)-zzort elseif @trapType == "Intersecting Ovals" zz = @fn1(@fn2(xzx^(2*shapeAdjust2))-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust3)))-(@fn4(xzx^(2*shapeAdjust4))+2*@fn5(yzy^2) \ -.5*shapeAdjust1^2)^2-zzort elseif @trapType == "Leaves of Grass" zz = @fn1(@fn2(yzy))-xzx^@fn4(yzy)-zzort elseif @trapType == "Lipped Ovals" zz = @fn1(abs(@fn2(xzx^2*shapeAdjust1))+ \ abs(@fn3(yzy))-1)-zzort elseif @trapType == "M Curve" zz = @fn1(@fn2(yzy))+@fn3(shapeAdjust2*xzx^(3*shapeAdjust1))-\ @fn4(yzy^2)-zzort elseif @trapType == "Mercury Curve" zz = @fn1((@fn2(xzx*shapeAdjust3)-shapeAdjust2)^2+ \ @fn3(yzy^2))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust2)+ \ @fn6(yzy))-4*shapeAdjust1* \ (abs(@fn7(xzx+(shapeAdjust6-1))-shapeAdjust2))* \ @fn8(xzx^(2*shapeAdjust7))-zzort elseif @trapType == "Miscellanea" zz = @fn1(yzy^(2))-@fn3(xzx^2+(1-shapeAdjust2)*(xzx^shapeAdjust3)-(yzy)* \ (shapeAdjust1*@fn2(yzy^xzx)-shapeAdjust2)+4*(@fn3(xzx^2)+@fn4(yzy^2) \ +2*@fn5(yzy))^2*shapeAdjust1)-zzort elseif @trapType == "Moorish Fantasy" zz = @fn1(@fn2((xzx*shapeAdjust2)^shapeAdjust1))- \ @fn3(yzy)^(yzy-1)-zzort elseif @trapType == "Mousehead Curve" zz = @fn1(((@fn2(xzx^shapeAdjust2)-shapeAdjust1)^2+ \ @fn3(yzy^2+(1-shapeAdjust3)))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust1)+ \ @fn6(yzy^1))-4*(abs(xzx)-shapeAdjust1)*@fn7(yzy^2))-zzort elseif @trapType == "Nested Ovals" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1^2- \ xzx^2))-(@fn3(xzx^(2*shapeAdjust2))+2* \ @fn4(yzy^2)-shapeAdjust1^2)^2- \ zzort elseif @trapType == "Nesting Birds Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-((.2*yzy)^(yzy)*(yzy^2+1))* \ yzy^(4)/(xzx^2)*(xzx^2*3-.5*yzy))-zzort elseif @trapType == "Odds 'n Ends" zz = @fn1(@fn2(yzy^2)-@fn3(xzx^2+(1-shapeAdjust5))* \ @fn4(xzx^shapeAdjust6)-@fn9(yzy)* \ (shapeAdjust1*@fn5(xzx*shapeAdjust7)-shapeAdjust2)-4* \ (@fn6(xzx^2*shapeAdjust4)+@fn7(yzy^2)-2-@fn8 \ (xzx^shapeAdjust3))^2*shapeAdjust1)-zzort elseif @trapType == "Omega Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))-@fn3(yzy^2)))+@fn2\ (xzx^-6*shapeAdjust3))-zzort elseif @trapType == "Ornate Curve" zz = @fn1((@fn2(yzy^2)/(xzx^2+1))* \ (xzx-yzy)* \ (shapeAdjust1-xzx)-4* \ (@fn3(xzx^2*shapeAdjust3)+@fn4(yzy^2)-2*@fn5 \ (xzx^shapeAdjust2))^2*shapeAdjust1)-zzort elseif @trapType == "Ovals" zz = @fn1(@fn2(xzx*shapeAdjust1-@fn6(yzy))- \ @fn3(xzx^2*shapeAdjust2+@fn4(yzy^2))-2*@fn5(yzy^2))-zzort elseif @trapType == "Ovate Waves" zz = @fn1(@fn2(yzy^4)*@fn3(yzy^2)-@fn4(yzy^yzy)+shapeAdjust1^2* \ @fn5(xzx^(2*shapeAdjust2)))-zzort elseif @trapType == "Ovate Waves 2" zz = @fn1(@fn2(yzy^4)-1* \ @fn3(yzy^2)-@fn4((xzx*shapeAdjust4)^ \ @fn6(xzx^shapeAdjust2))+shapeAdjust1^2* \ @fn5(xzx^(2*shapeAdjust3)))-zzort elseif @trapType == "Pisces Curve" zz = @fn1((@fn2(xzx^(2*shapeAdjust1))-1)^2-@fn3(.6*yzy^2+ \ (1-shapeAdjust2))*(3*yzy+(6-shapeAdjust3)))-zzort elseif @trapType == "Plane & Tail" zz = @fn1(shapeAdjust1^4/@fn2((xzx^(2*shapeAdjust3)) \ +@fn5(yzy)) *shapeAdjust2^2- \ @fn3((xzx^(2*shapeAdjust4))^ @fn6(xzx+(1-shapeAdjust5))) \ /(2*shapeAdjust1-@fn4(yzy)))-zzort elseif @trapType == "Seagull Curve" zz = @fn1(@fn2(yzy^2)-shapeAdjust1^2* \ (@fn3(yzy^5)+@fn5(xzx+(1-shapeAdjust2))+ \ @fn4(yzy^7)))-zzort elseif @trapType == "Simple Curve" zz = @fn1(atan(@fn4((xzx^shapeAdjust4*shapeAdjust1)- \ @fn3(yzy)))-@fn2(yzy))-zzort elseif @trapType == "Smoke Rings" zz = @fn1(shapeAdjust1^4+@fn2((xzx^2)* \ @fn5(yzy))- shapeAdjust2^2- \ @fn3((xzx^(shapeAdjust5))^@fn6(xzx+(1-shapeAdjust6))) \ /(2*shapeAdjust1-@fn4(yzy)))-zzort elseif @trapType == "Sneering Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)-(((xzx*.2)* \ yzy)-yzy^2+1)* \ yzy^4-@fn3(xzx^(2*shapeAdjust3))/\ @fn4(xzx^(2*shapeAdjust2)+@fn5(yzy^.5)))-zzort elseif @trapType == "Space Debris" zz = @fn1(shapeAdjust1^4*@fn2((yzy^2)/ \ xzx^2)- shapeAdjust2^2* \ @fn3((xzx^shapeAdjust3)^@fn5(xzx+(1-shapeAdjust4)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Spectacles Curve" zz = @fn1(@fn2(xzx^4*shapeAdjust2)+@fn3(yzy^4)-2* \ shapeAdjust3*@fn4(abs(xzx)- \ @fn5(yzy^2*shapeAdjust1)))-zzort elseif @trapType == "Spiked Cusp" ;out zz = @fn1(@fn2((yzy)^yzy* \ xzx))-zzort elseif @trapType == "Squared Circle Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1))*(@fn3(xzx^2*shapeAdjust3)- \ @fn4(yzy^2))-shapeAdjust2^2/2+ \ @fn5(yzy^4))-zzort elseif @trapType == "Squeezed Rectangle Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust2)-shapeAdjust1* \ (@fn3(yzy^5)-@fn5(xzx^shapeAdjust3)- \ @fn4(yzy^7)))-zzort elseif @trapType == "Swallow Curve" zz = @fn1(@fn2((xzx^2*shapeAdjust2))-@fn3((yzy^2)))^2-4*@fn4((xzx^yzy^2)* \ @fn5(yzy^2))-zzort elseif @trapType == "Stretched Oval Curve" zz = @fn1(shapeAdjust1^4+@fn2((yzy^2)/\ (xzx^2))-shapeAdjust2^2* \ @fn3((xzx^(2*shapeAdjust3))*@fn5(xzx+(1-shapeAdjust4)))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Switchback Curve" zz = @fn1(atan(@fn4((xzx^(2*shapeAdjust1))*@fn3(yzy^shapeAdjust4)* \ shapeAdjust2))-@fn2(xzx^shapeAdjust3))-zzort elseif @trapType == "Taurus Curve" zz = @fn1(@fn2(xzx^(shapeAdjust2)))-@fn3(yzy^2)\ -@fn4((xzx^(2*shapeAdjust5))+ \ @fn6(yzy^2+(1-shapeAdjust4)))/shapeAdjust1^2* \ @fn5(xzx^shapeAdjust3)-zzort elseif @trapType == "Teardrop Curve" zz = @fn1(shapeAdjust1^4*@fn2((yzy^2)/xzx^2)- \ shapeAdjust2^2*@fn3((xzx^(2*shapeAdjust3))/@fn5(xzx+(1-shapeAdjust4))\ )*(2*shapeAdjust1-@fn4(xzx^shapeAdjust5)))-zzort elseif @trapType == "Tennis Anyone?" zz = @fn1(@fn2(xzx^2*shapeAdjust2)+2*shapeAdjust1* \ @fn3((xzx^shapeAdjust3)-@fn6(yzy))- \ shapeAdjust1^2)^2-@fn4(yzy^2)* \ @fn5(xzx^2)- zzort elseif @trapType == "Thorned Cross" zz = @fn1(@fn2((yzy)^yzy* \ xzx)+@fn3(xzx+(1-shapeAdjust1)))-zzort elseif @trapType == "Three Point Curve" zz = @fn1((@fn2(xzx^2)-shapeAdjust1^2)*@fn3(xzx^2-shapeAdjust3)^2+ \ @fn4(yzy^4-shapeAdjust2^2)^2)- zzort elseif @trapType == "Tsuba curve" zz = @fn1(@fn2(yzy^2)-(.4*shapeAdjust1^2* \ @fn3(xzx^2*shapeAdjust2)))-(@fn4(xzx^(2*shapeAdjust3))+2\ *@fn5(yzy^2)-.5*shapeAdjust1^2)^2-zzort elseif @trapType == "Wheel in Trough" zz = @fn1((@fn2((xzx*shapeAdjust2)^(1+shapeAdjust1))+ \ @fn3(yzy^2))*atan2(@fn4(yzy)*xzx)*@fn6(yzy))-zzort elseif @trapType == "Whip Curve" zz = @fn1(@fn2((yzy)^yzy*yzy)+@fn3(xzx+(1-shapeAdjust1))- \ @fn4(yzy^2))-zzort elseif @trapType == "Cassini Ovals" zz = @fn1((@fn2(xzx^2*shapeAdjust3)+@fn3(yzy^2)+ \ shapeAdjust1^2)^2-4*shapeAdjust1^2* \ @fn4(xzx^(3-shapeAdjust4))-shapeAdjust2^4)-zzort elseif @trapType == "Circle" zz = @fn1(@fn2((xzx*shapeAdjust1)^(3-shapeAdjust2))+ \ @fn3((yzy*shapeAdjust3)^3)-1)-zzort elseif @trapType == "Cissoid of Diocles" zz = @fn1(@fn2(xzx^shapeAdjust1)*@fn3(xzx^2+(1-shapeAdjust2)+ \ (yzy^2))-2*@fn4(yzy^2+(1-shapeAdjust3)))-zzort elseif @trapType == "Cochleoid" zz = exp(@fn1((@fn2(xzx^2)+yzy^2)* \ atan(@fn3(yzy))-@fn4(yzy))+ \ 1*abs(@fn5(yzy)))-zzort elseif @trapType == "Cocked Hat" zz = @fn1(@fn2(xzx^2*shapeAdjust2)+2*shapeAdjust1*@fn3(yzy)- \ shapeAdjust1^2)^2-@fn4(yzy^3)* \ (1-xzx^2)-zzort elseif @trapType == "Conchoid of Nicomedes" zz = @fn1((@fn2(xzx-shapeAdjust1))^2*(@fn3(xzx^(2*shapeAdjust3))+ \ @fn4(yzy^2))-shapeAdjust2^2* \ @fn5(xzx^2*shapeAdjust4))-zzort elseif @trapType == "Cruciform" zz = @fn1(@fn2(xzx^2)*@fn3(yzy)- shapeAdjust1^2*@fn4 \ (xzx^(1+shapeAdjust2))-1*@fn5(yzy^3))-zzort elseif @trapType == "Devil's Curve" zz = @fn1(@fn2(yzy^3)-1* \ @fn3(yzy^2+(1-shapeAdjust3))-@fn4(xzx^4*shapeAdjust2)+ \ shapeAdjust1^2*@fn5(xzx^(1+shapeAdjust4)))-zzort elseif @trapType == "Diamond" zz = @fn1(abs(@fn2(xzx*shapeAdjust1))+abs(@fn3(yzy))-1)- \ zzort elseif @trapType == "Dumbbell Curve" zz = @fn1(@fn2(yzy^2)-shapeAdjust1^2* \ (@fn3(xzx^(5-shapeAdjust2))-@fn4(xzx^(7-shapeAdjust3))))-zzort elseif @trapType == "Dürer's Conchoid" zz = @fn1(2*@fn2(yzy)*(@fn3(xzx)+ \ @fn4(yzy^2))-2*shapeAdjust2* \ @fn5(yzy^2+(1-shapeAdjust3))*(xzx^shapeAdjust4+ \ yzy+(1-shapeAdjust5))+(shapeAdjust2^2-3*shapeAdjust1^2)* \ @fn6(yzy)-shapeAdjust1^2* \ @fn7(xzx^2*shapeAdjust6)+2*shapeAdjust1^2*shapeAdjust2* \ (@fn8(xzx^shapeAdjust7)+@fn9(yzy))+ \ shapeAdjust1^2*(shapeAdjust1^2-shapeAdjust2^2))-zzort elseif @trapType == "Eight Curve" zz = @fn1(@fn2(xzx^(3+shapeAdjust2))-shapeAdjust1^2* \ (@fn3(xzx^2*shapeAdjust3)-@fn4(yzy^2)))-zzort elseif @trapType == "Happy Accident" zz = @fn1((@fn2((xzx*shapeAdjust2)^(1+shapeAdjust1))+ \ @fn3(yzy^2))*atan2(@fn4(yzy)*xzx)-1*@fn5(yzy))-zzort elseif @trapType == "Hyperbola" zz = @fn1(@fn2((xzx*shapeAdjust1)^(1+shapeAdjust2))- \ @fn3(yzy)+ 1)-zzort elseif @trapType == "Kappa Curve" zz = @fn1(xzx^3+yzy^2)* \ @fn4(yzy)-shapeAdjust1^2* \ @fn5(xzx^2*shapeAdjust2)-zzort elseif @trapType == "Keppler's Folium" zz = @fn1((@fn2(xzx^shapeAdjust2)-shapeAdjust1)^2+ \ @fn3(yzy^2+(1-shapeAdjust3)))*(@fn4(xzx+(1-shapeAdjust4))* \ (@fn5(xzx-(shapeAdjust5-1))-shapeAdjust1)+@fn6 \ (yzy))-4*(abs(@fn7(xzx))-shapeAdjust1)*@fn8(yzy^2)-zzort elseif @trapType == "Keratoid Cusp" zz = @fn1(@fn2(xzx^2)*@fn3(yzy)+ \ @fn4(xzx^(5*shapeAdjust1))-@fn5(yzy^3))-zzort elseif @trapType == "Knot Curve" zz = @fn1((@fn2(xzx^(1+shapeAdjust1)-1)^2)-@fn3(yzy^2)* \ (3+2*yzy))-zzort elseif @trapType == "Lemniscate" zz = @fn1((@fn2(xzx^2+(1-shapeAdjust2))+@fn3(yzy))^2- \ 2*shapeAdjust1*(@fn4(xzx^(2*shapeAdjust3))- \ @fn5(yzy^2)))-zzort elseif @trapType == "Lemniscate Corrected" zz = @fn1(@fn2(xzx^4+(1-shapeAdjust2))+yzy^4+3* xzx^2*yzy^2-2* \ shapeAdjust1^2*(@fn3(xzx^(2*shapeAdjust3))-@fn4(yzy)))-zzort elseif @trapType == "Limacon" zz = @fn1((@fn2(xzx^(2*shapeAdjust3))+@fn3(yzy^2+(1-shapeAdjust4))-2* \ shapeAdjust1*@fn4(xzx^shapeAdjust5))^2-shapeAdjust2^2* \ (@fn5(xzx^2*shapeAdjust6)+@fn6(yzy^2)))-zzort elseif @trapType == "Line" zz = @fn1(yzy)-zzort elseif @trapType == "Links Curve" zz = @fn1((@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^2)-3* \ @fn4(xzx^shapeAdjust2))^2-4*@fn5(xzx^(2*shapeAdjust3))* \ (2-abs(@fn6(xzx^shapeAdjust4))))-zzort elseif @trapType == "Maltese Cross Curve" zz = @fn1(@fn2(xzx^2*shapeAdjust1)+@fn3(yzy^2)-abs \ (xzx)*abs(@fn4(yzy+(1-shapeAdjust2)))* \ (@fn5(xzx^(2+(1-shapeAdjust3))-@fn6(yzy^2))))- \ zzort elseif @trapType == "Parabola" zz = @fn1(@fn2(xzx^(2*shapeAdjust1))-@fn3(yzy))-zzort elseif @trapType == "Pear-Shaped Curve" zz = @fn1(@fn2(xzx^(4-shapeAdjust2))*(shapeAdjust1-@fn3\ (xzx^shapeAdjust3))-1*@fn4(yzy^2))-zzort elseif @trapType == "Piriform" zz = @fn1(shapeAdjust1^4*@fn2(yzy^2)-shapeAdjust2^2* \ @fn3(xzx^(3*shapeAdjust3))*(2*shapeAdjust1-@fn4(xzx/shapeAdjust4)))- \ zzort elseif @trapType == "Quadrifolium" zz = @fn1((@fn2(xzx^(2*shapeAdjust1))+yzy^2)^3-4* \ (xzx^2+1)*@fn5(yzy^3))-zzort elseif @trapType == "Rose Curve" complex tz = atan2(xzx + flip(yzy)) zz = @fn1(shapeAdjust1*cos(@fn2(tz^shapeAdjust2)) + \ sin(@fn3(tz^shapeAdjust3)))-zzort elseif @trapType == "Serpentine Curve" zz = @fn1(shapeAdjust1*shapeAdjust2*@fn2(xzx^shapeAdjust3)/ \ @fn3((xzx+1-shapeAdjust3)^2+shapeAdjust1^2)- \ @fn4(yzy))-zzort elseif @trapType == "sin(x)/x" zz = @fn1(10*@fn2(sin(xzx^shapeAdjust1))/@fn3(xzx*shapeAdjust2)- \ @fn4(yzy))-zzort elseif @trapType == "Sinus + Cosinus" zz = @fn1(sin(shapeAdjust1*@fn2(xzx^shapeAdjust3))+ \ cos(shapeAdjust2*@fn3(xzx+(1-shapeAdjust4)))+ \ @fn4(yzy))-zzort elseif @trapType == "Spiral" zz = abs((xzx^(2*@shapeAdjust2)+yzy^2)^ \ @shapeAdjust1%1-.5+atan2(xzx*@shapeAdjust3+ \ (flip(yzy)))/(2*pi)) zz2 = abs((xzx^(2*@shapeAdjust4)+yzy^2)^@shapeAdjust1%1-.5+ \ atan2(xzx+flip(yzy))/(2*pi)+1) if real(zz2) < real(zz) zz = real(zz2) endif zz2 = abs((xzx^(2*@shapeAdjust6)+yzy^2)^@shapeAdjust1%1-.5+atan2 \ (xzx+flip(yzy))/(2*pi)-1) if real(zz2) < real(zz) zz = real(zz2) endif elseif @trapType == "Square" if abs(xzx) > abs(yzy) zz = @fn1(@fn2(abs(xzx^shapeAdjust1))-1)-zzort else zz = abs(yzy)-1 endif elseif @trapType == "Stirrup Curve" zz = @fn1(@fn2((xzx^2-1)^2)-@fn3(yzy^2)*(yzy-1)*(yzy-2)* \ (yzy+5))-zzort elseif @trapType == "Strange Shape" zz = @fn1((@fn2(xzx^(2*shapeAdjust2))+(yzy)^ \ 2)*atan2(@fn4(xzx*shapeAdjust4)^ \ shapeAdjust7+flip(@fn5(yzy)))- \ 1*@fn6(yzy))-zzort elseif @trapType == "Swastika Curve" zz = @fn1(@fn2(yzy^4)-@fn3(xzx^4*shapeAdjust2)- \ @fn4(xzx)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Tangent" zz = @fn1(tan(@fn2((xzx*shapeAdjust1)^shapeAdjust2))- @fn3(yzy))-zzort elseif @trapType == "Trefoil" zz = @fn1(@fn2(xzx^(5-shapeAdjust1))+xzx^2* \ @fn3(yzy^2)+@fn4(yzy^4)- \ @fn5(xzx^shapeAdjust2)*(@fn6(xzx^2*shapeAdjust3)- \ @fn7(yzy^2+(1-shapeAdjust4))))-zzort elseif @trapType == "Trident" zz = @fn1(@fn2(xzx^3*shapeAdjust2)-shapeAdjust1^3- \ @fn3(xzx)*yzy)-zzort elseif @trapType == "Trident of Descartes" zz = @fn1((shapeAdjust1+@fn2(xzx^shapeAdjust2))* \ (shapeAdjust1-@fn3(xzx*shapeAdjust3))* \ (2*shapeAdjust1-@fn4(xzx^shapeAdjust4))/ \ (shapeAdjust1*@fn5(xzx+(1-shapeAdjust5)))- \ @fn6(yzy))-zzort elseif @trapType == "Trifolium" zz = @fn1((@fn2(xzx^2*shapeAdjust2)+@fn3(yzy^2))* \ (@fn4(yzy^2)+@fn5(xzx^shapeAdjust3)* \ @fn6(xzx+shapeAdjust1))-4* \ @fn7(xzx)*@fn8(yzy^2+(1-shapeAdjust4)))-zzort elseif @trapType == "Trisectrix of Maclaurin" zz = @fn1(@fn2(yzy^2)*(shapeAdjust1+ xzx)-@fn3(xzx^(2*shapeAdjust2))* \ (3*shapeAdjust1-@fn4(xzx*shapeAdjust3)))-zzort elseif @trapType == "Twisted Cross" zz = @fn1(@fn2(yzy^4)-@fn3(xzx^(5-shapeAdjust2))- \ @fn4(xzx)*@fn5(yzy+(1-shapeAdjust4)))-zzort elseif @trapType == "Witch of Agnesi" zz = @fn1(8*shapeAdjust2*shapeAdjust1^3/ \ @fn2(xzx^(2*shapeAdjust3)+4*shapeAdjust1^2)- \ @fn3(yzy))-zzort endif if @ztestflavor == "cabs" ztest2=cabs(@fn5a(ztest)) elseif @ztestflavor == "real" ztest2=real(@fn5a(ztest)) elseif @ztestflavor == "imag" ztest2=imag(@fn5a(ztest)) elseif @ztestflavor == "atan2" ztest2=atan2(@fn5a(ztest)) elseif @ztestflavor == "mod" ztest2=|(@fn5a(ztest))| endif if @z1par == "normal" z1 = z1 elseif @z1par == "cabs" z1 = cabs(z1) elseif @z1par == "real" z1 = real(z1) elseif @z1par == "imag" z1 = imag(z1) elseif @z1par == "atan2" z1 = atan2(z1) elseif @z1par == "modulus" z1 = |z1| elseif @z1par == "function" z1 = @z1fn(z1) endif if @zztyp == "1" zz=@zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c elseif @zztyp == "2" zz= @zzfn2(@zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c) elseif @zztyp == "3" zz= @zzfn3(@zzfn2(@zzfn1(z1))-@zfn((zz-@p3a)*@p3b)^@p3c) elseif @zztyp == "4" zz= @zzfn3(@zzfn2(@zzfn1(z1)))-@zfn((zz-@p3a)*@p3b)^@p3c elseif @zztyp == "5" zz= @zzfn3(@zzfn2(@zzfn1(z1)-@zfn((zz-@p3a)*@p3b)^@p3c)) elseif @zztyp =="6" zz = @zfn((zz-@p3a)*@p3b)^@p3c endif point = @fn2a(zz)*@fn3a(@fn6a(ztest2))+flip(@fn2a(zz)*@fn4a(@fn7a(ztest2))) float radius=abs(cabs(z1-zz)) point = @fnp3(@fnp2(@fnp(point-@p4a)*@p4b)^@p4c) if @shadeType == true if @floatd == "atan" d=cabs(atan(z1-(point))) elseif @floatd == "atanh" d=cabs(atanh(z1-point)) elseif @floatd == "sqrt" d=cabs(atan(sqrt(z1-point))) endif else if @floatd == "atan" d=|atan(z1-(point))| elseif @floatd == "atanh" d=|atanh(z1-point)| elseif @floatd == "sqrt" d=|atan(sqrt(z1-point))| endif endif if @simplex_d == false d = d else if @nu_d == "1" if @change_d == false if @var_d == 0 d = cabs(log(d-(@fnd(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 1 d = cabs(log(d-(@fnd(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 2 d = cabs(log(d-(@fnd(zz+@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 3 d = cabs(log(d-(@fnd(zz-@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 4 d = cabs(log(d-(@fnd(z1-@fnd2(zz))-@dp1)*@dp2)^@dp3) elseif @var_d == 5 d = cabs(log(d-(@fnd(zz*@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 6 d = cabs(log(d-(@fnd(zz/@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 7 d = cabs(log(d-(@fnd(z1/@fnd2(zz))-@dp1)*@dp2)^@dp3) elseif @var_d == 8 d = cabs(log(d-(@fnd(zz^@fnd2(z1))-@dp1)*@dp2)^@dp3) elseif @var_d == 9 d = cabs(log(d-(@fnd(z1^@fnd2(zz))-@dp1)*@dp2)^@dp3) endif else if @var_d == 0 d = cabs(log(d-(@fnd(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 1 d = cabs(log(d-(@fnd(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 2 d = cabs(log(d-(@fnd(zz)+@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 3 d = cabs(log(d-(@fnd(zz)-@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 4 d = cabs(log(d-(@fnd(z1)-@fnd2(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 5 d = cabs(log(d-(@fnd(zz)*@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 6 d = cabs(log(d-(@fnd(zz)/@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 7 d = cabs(log(d-(@fnd(z1)/@fnd2(zz)-@dp1)*@dp2)^@dp3) elseif @var_d == 8 d = cabs(log(d-(@fnd(zz)^@fnd2(z1)-@dp1)*@dp2)^@dp3) elseif @var_d == 9 d = cabs(log(d-(@fnd(z1)^@fnd2(zz)-@dp1)*@dp2)^@dp3) endif endif elseif @nu_d == "2" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz+@fnd2(z1))-@dp1)\ *@dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 *d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 *(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "3" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 /d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 /(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "4" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((z1-@dp4)*@dp5)^@dp6 -d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((z1-@dp4)*@dp5)^@dp6 -(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "5" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 +d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 +(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif elseif @nu_d == "6" if @change_d == false if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz+@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz-@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1-@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz*@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz/@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(z1/@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(zz^@fnd2(z1))-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log((@fnd3((zz-@dp4)*@dp5)^@dp6 ^d-(@fnd(z1^@fnd2(zz))-@dp1)*\ @dp2)^@dp3)) endif else if @var_d == 0 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@dp1)*@dp2)^@dp3)) elseif @var_d == 1 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@dp1)*@dp2)^@dp3)) elseif @var_d == 2 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)+@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 3 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)-@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 4 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)-@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 5 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)*@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 6 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)/@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 7 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)/@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 8 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(zz)^@fnd2(z1)-@dp1)*\ @dp2)^@dp3)) elseif @var_d == 9 d = cabs(log(@fnd3((zz-@dp4)*@dp5)^@dp6 ^(d-(@fnd(z1)^@fnd2(zz)-@dp1)*\ @dp2)^@dp3)) endif endif endif endif if @combineQ if @firstQ == 0 ; atan2a acQ = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 1; atan2a x+y acQ =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @firstQ == 2; atan2a x-y acQ =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @firstQ == 3; atan2b acQ = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 4; reala acQ = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 5; realb acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 6; imaga acQ = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @firstQ == 7; imagb acQ = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 8; moda acQ = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @firstQ == 9; modb acQ = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @firstQ == 10; normal acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @firstQ == 11; r+i acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @firstQ == 12; r*i acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 13; r/i acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @firstQ == 14; i/r acQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) endif if @splitQ if @secondQ == 0 ; atan2a bcQ = atan2(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 1; atan2a x+y bcQ =atan2((@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ)+flip(@fn1bQ(imag(z1-@p1dQ)\ *@p1eQ)^@p1fQ)) elseif @secondQ == 2; atan2a x-y bcQ =atan2((@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ)-flip(@fn1bQ(imag(z1-@p1dQ)\ *@p1eQ)^@p1fQ)) elseif @secondQ == 3; atan2b bcQ = cabs(@fn1aQ(atan2(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 4; reala bcQ = real(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 5; realb bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 6; imaga bcQ = imag(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ elseif @secondQ == 7; imagb bcQ = cabs(@fn1aQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 8; moda bcQ = |(@fn1aQ(z1-@p1dQ)*@p1eQ)^@p1fQ| elseif @secondQ == 9; modb bcQ = cabs(@fn1aQ(|z1-@p1dQ|)*@p1eQ)^@p1fQ elseif @secondQ == 10; normal bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ)) elseif @secondQ == 11; r+i bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ)) elseif @secondQ == 12; r*i bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) * \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 13; r/i bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) / \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) elseif @secondQ == 14; i/r bcQ = cabs(@fn1aQ(real(z1-@p1dQ)*@p1eQ)^@p1fQ) / \ cabs(@fn1bQ(imag(z1-@p1dQ)*@p1eQ)^@p1fQ) endif else if @secondQ == 0 ; atan2a bcQ = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 1; atan2a x+y bcQ =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @secondQ == 2; atan2a x-y bcQ =atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag(z1-@p1aQ)\ *@p1bQ)^@p1cQ)) elseif @secondQ == 3; atan2b bcQ = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 4; reala bcQ = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 5; realb bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 6; imaga bcQ = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @secondQ == 7; imagb bcQ = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 8; moda bcQ = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @secondQ == 9; modb bcQ = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @secondQ == 10; normal bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @secondQ == 11; r+i bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @secondQ == 12; r*i bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 13; r/i bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @secondQ == 14; i/r bcQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) endif endif if @combOpQ == 0; + ztestQ = acQ + real(@combfnQ(bcQ)) elseif @combOpQ == 1; - ztestQ = acQ - real(@combfnQ(bcQ)) elseif @combOpQ == 2; * ztestQ = acQ * real(@combfnQ(bcQ)) elseif @combOpQ == 3; / ztestQ = acQ / real(@combfnQ(bcQ)) elseif @combOpQ == 4; // ztestQ = real(@combfnQ(bcQ)) / acQ elseif @combOpQ == 5; ^ ztestQ = acQ ^ real(@combfnQ(bcQ)) elseif @combOpQ == 6; ^^ ztestQ = real(@combfnQ(bcQ)) ^ acQ endif else if @pztestQ == "atan2 a" ztestQ = atan2(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "atan2 a (x+y)" ztestQ = atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)+flip(@fn1bQ(imag\ (z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "atan2 a (x-y)" ztestQ = atan2((@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ)-flip(@fn1bQ(imag\ (z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "atan2 b" ztestQ = cabs(@fn1aQ(atan2(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "real a" ztestQ = real(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "real b" ztestQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "imag a" ztestQ = imag(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ elseif @pztestQ == "imag b" ztestQ = cabs(@fn1aQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "modulus a" ztestQ = |(@fn1aQ(z1-@p1aQ)*@p1bQ)^@p1cQ| elseif @pztestQ == "modulus b" ztestQ = cabs(@fn1aQ(|z1-@p1aQ|)*@p1bQ)^@p1cQ elseif @pztestQ == "normal" ztestQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ cabs(flip(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "real + imag" ztestQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) + \ flip(cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ)) elseif @pztestQ == "real * imag" ztestQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) * \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "real / imag" ztestQ = cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) elseif @pztestQ == "imag / real" ztestQ = cabs(@fn1bQ(imag(z1-@p1aQ)*@p1bQ)^@p1cQ) / \ cabs(@fn1aQ(real(z1-@p1aQ)*@p1bQ)^@p1cQ) endif endif ztestQ=cabs(((ztestQ-@p2aQ)*@p2bQ)^@p2cQ) if @aparamQ == "1" if @nuflavQ == "exp" ztestQ = ztestQ*exp(1i*pi/180*@rotationQ*180)/@sizeQ elseif @nuflavQ == "acos" ztestQ = ztestQ*acos(1i*pi/180*@rotationQ*180)/@sizeQ elseif @nuflavQ == "acosh" ztestQ = ztestQ*acosh(1i*pi/180*@rotationQ*180)/@sizeQ endif elseif @aparamQ == "2" if @nuflavQ == "exp" ztestQ = ztestQ*exp(exp(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztestQ = ztestQ*acos(exp(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztestQ = (ztestQ)*acosh(exp(1i*pi/180*@rotationQ*180))/@sizeQ endif elseif @aparamQ == "3" if @nuflavQ == "exp" ztestQ = ztestQ*exp(acos(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztestQ = ztestQ*acos(acos(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztestQ = ztestQ*acosh(acos(1i*pi/180*@rotationQ*180))/@sizeQ endif elseif @aparamQ == "4" if @nuflavQ == "exp" ztestQ = ztestQ*exp(acosh(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acos" ztestQ = ztestQ*acos(acosh(1i*pi/180*@rotationQ*180))/@sizeQ elseif @nuflavQ == "acosh" ztestQ = ztestQ*acosh(acosh(1i*pi/180*@rotationQ*180))/@sizeQ endif endif float xzxQ = sqrt(@ratioQ)*real((@xfuncQ(ztestQ-@x1Q)*@x2Q)^@x3Q) float yzyQ = 1/sqrt(@ratioQ)*imag((@yfuncQ(ztestQ-@y1Q)*@y2Q)^@y3Q) if @trapTypeQ == "Alien Waves" zzQ= @fn1Q(@fn2Q((yzyQ)/(xzxQ)\ ^(yzyQ)-@fn4Q(xzxQ^shapeAdjust2Q)-\ @fn3(yzyQ+(1-shapeAdjust1Q))))-zzortQ elseif @trapTypeQ == "Ampersand Curve" zzQ = @fn1Q((@fn2Q(yzyQ^2)-@fn3Q(xzxQ^2+(1-shapeAdjust3Q)))* \ @fn4Q((xzxQ^shapeAdjust4Q)-1)*(shapeAdjust1Q* \ @fn5Q(xzxQ)-shapeAdjust2Q)- 4*(@fn6Q(xzxQ^2*shapeAdjust5Q)+ \ @fn7Q(yzyQ^2)-2* @fn8Q(xzxQ^shapeAdjust6Q))^2)-zzortQ elseif @trapTypeQ == "ArcTangent" zzQ = @fn1Q(atan(@fn2Q(xzxQ^shapeAdjust1Q*shapeAdjust2Q))- \ @fn3Q(yzyQ))-zzortQ elseif @trapTypeQ == "Bad Hair Day" zzQ = @fn1Q(@fn2Q(yzyQ^yzyQ*yzyQ)+@fn3Q(xzxQ+(1-shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Barbed Wire" zzQ = @fn1Q(abs(@fn2Q(xzxQ^shapeAdjust1Q))+ \ abs(yzyQ^yzyQ)-1)- zzortQ elseif @trapTypeQ == "Baubles & Bangles" zzQ = @fn1Q((@fn2Q(xzxQ^(2*shapeAdjust1Q)-1))^2+cos(@fn3Q\ (yzyQ^2+(1-shapeAdjust2Q)))* @fn4Q(yzyQ^(.2)-1) \ *@fn5Q(yzyQ-2)* @fn6Q(yzyQ+(3-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Bean Curve" zzQ = @fn1Q(@fn2Q(xzxQ^4*shapeAdjust1Q)+xzxQ^2* \ @fn3Q(yzyQ^2)+@fn4Q(yzyQ^4)- \ @fn5Q(xzxQ^shapeAdjust2Q)*@fn6Q(xzxQ^(2*shapeAdjust3Q)+ \ @fn7Q(yzyQ^2+(1-shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Bicorn Curve" zzQ = @fn1Q(@fn2Q(yzyQ^2)*(shapeAdjust1Q^2-xzxQ^2))- \ (@fn3Q(xzxQ^2+2*shapeAdjust1Q* \ @fn4Q(yzyQ^shapeAdjust2Q)-shapeAdjust1Q^2)^2)-zzortQ elseif @trapTypeQ == "Bicuspid Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(2*shapeAdjust2Q)-shapeAdjust1Q^2)* \ @fn3Q(xzxQ^shapeAdjust3Q-shapeAdjust1Q)^2+ \ @fn4Q(yzyQ^2-shapeAdjust1Q^2)^2)-zzortQ elseif @trapTypeQ == "Bifolium" zzQ = @fn1Q(@fn2Q(xzxQ^(1+shapeAdjust1Q))+@fn3Q(yzyQ^2+\ (1-shapeAdjust2Q)))^2-4*@fn4Q(abs(xzxQ)* @fn5Q(yzyQ^3))-zzortQ elseif @trapTypeQ == "Bow" zzQ = @fn1Q(@fn2Q(xzxQ^4*shapeAdjust1Q)-@fn3Q(xzxQ^2+1)* \ @fn4Q(yzyQ)+@fn5Q(yzyQ^3))-zzortQ elseif @trapTypeQ == "Butterfly Curve" zzQ = @fn1Q(@fn2Q(yzyQ^6)-(@fn3Q(xzxQ^2+(1-shapeAdjust1Q))- \ @fn4Q(xzxQ^6+(1-shapeAdjust2Q))))-zzort elseif @trapTypeQ == "Bighorn Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1Q)+(yzyQ^2*yzyQ^2+1)*yzyQ^5/ \ xzxQ^2*xzxQ^2-yzyQ)-zzortQ elseif @trapTypeQ == "Binary Curve" zzQ = @fn1Q((@fn2Q(xzxQ^(3-shapeAdjust4Q))-shapeAdjust1Q)/@fn3Q \ (xzxQ^2-2*shapeAdjust3Q)^2+ @fn4Q(yzyQ^2- \ shapeAdjust2Q^2)^2)-zzortQ elseif @trapTypeQ == "Bird of Paradise" zzQ = @fn1Q(exp(@fn4Q((xzxQ)*@fn3Q(yzyQ)))- \ @fn2Q(yzyQ))-zzortQ elseif @trapTypeQ== "Cabuchon Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(shapeAdjust2Q)))-@fn3Q(yzyQ^2)-@fn4Q\ ((xzxQ^(2*shapeAdjust5Q))+@fn6Q(yzyQ^2+(1-shapeAdjust4Q)))\ /shapeAdjust1Q^2-@fn5Q (xzxQ*shapeAdjust3Q)-zzortQ elseif @trapTypeQ == "Cardinal Points Curve" zzQ = @fn1Q(cotanh(@fn2Q(xzxQ^4+(1-shapeAdjust1Q)))-@fn3Q(yzyQ^3)-2* \ @fn4Q(abs(xzxQ^(3-shapeAdjust1Q))-@fn5Q(yzyQ^2)))-zzortQ elseif @trapTypeQ == "Chaos Adorned" zzQ = @fn1Q(@fn2Q((yzyQ)^@fn6Q(yzyQ)* @fn3Q(yzyQ))+@fn4Q(xzxQ+1)^ \ @fn5Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Chaos Unleashed" zzQ = @fn1Q(shapeAdjust1Q^4*@fn2Q(yzyQ^ \ (yzyQ))-shapeAdjust2Q^2*@fn3Q((xzxQ^shapeAdjust3Q) \ ^@fn5Q(xzxQ+(1-shapeAdjust4Q)))* (2*shapeAdjust1Q-@fn4Q \ (xzxQ^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Church Key Curve" zzQ = cotanh(@fn1Q(@fn2Q(((xzxQ^2)*shapeAdjust2Q)^shapeAdjust1Q))+ \ @fn3Q(yzyQ*2.4)^(yzyQ-1))-zzortQ elseif @trapTypeQ == "Compass Curve" zzQ = @fn1Q((@fn2Q(xzxQ^2*shapeAdjust1Q))*(@fn3(xzxQ^2*shapeAdjust3Q)+ \ @fn4Q(yzyQ^2))-shapeAdjust2Q^2* \ @fn5Q(xzxQ^(2*shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Conductor's Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1Q)-((xzxQ*.2* \ yzyQ)-yzyQ^2+1)*yzyQ^4-@fn6Q(xzxQ^(2*shapeAdjust3Q))/\ @fn7Q(xzxQ^(2*shapeAdjust2Q)-@fn8Q(yzyQ^.5)))-zzortQ elseif @trapTypeQ == "Conjoined Circle Curve" zzQ = @fn1Q((@fn2Q(xzxQ^2+yzyQ^2)*(@fn3Q(yzyQ)-@fn4Q(yzyQ))-shapeAdjust1Q-\ abs(@fn5Q(yzyQ))))-zzortQ elseif @trapTypeQ == "Cooking Pot Curve" zzQ = @fn1Q(@fn2Q(yzyQ^2)-(shapeAdjust1Q^2- \ @fn3Q(xzxQ^2*shapeAdjust2Q)))-(@fn4Q(xzxQ^(2*(shapeAdjust3Q)))+2\ *@fn5Q(yzyQ^2)-shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Crochet Hooks" zzQ = @fn1Q(@fn2Q(yzyQ^3)+(@fn3Q((xzxQ+1)^ \ @fn5Q(yzyQ)/@fn4Q((xzxQ*shapeAdjust1Q)^shapeAdjust2Q))))- \ zzortQ elseif @trapTypeQ == "D&U Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(2*shapeAdjust1Q))+@fn3Q((yzyQ^2)^ \ yzyQ)-shapeAdjust2Q)-zzort elseif @trapTypeQ == "Dogleg Curve" zzQ = @fn1Q(atan(@fn3Q((xzxQ*shapeAdjust1Q)+yzyQ))-@fn2Q(yzyQ))-zzortQ elseif @trapTypeQ == "Dribs & Drabs" zzQ = @fn1Q((@fn1Q(xzxQ^shapeAdjust2)+@fn3Q(yzyQ^2)^yzyQ-4*(xzxQ^3)* \ @fn4Q(yzyQ^2)))-zzortQ elseif @trapTypeQ == "Driftwood Curve" zzQ = @fn1Q(((@fn2Q(xzxQ)-.5*shapeAdjust7Q)^2+ \ @fn3Q(yzyQ^2+1))*(@fn4Q(yzyQ+(1-shapeAdjust3Q))* \ (@fn5Q(xzxQ-(shapeAdjust4Q-1))-shapeAdjust8Q)+ \ @fn6Q(yzyQ))+4*shapeAdjust1Q* \ (abs(@fn7Q(xzxQ+(shapeAdjust5Q-1))-1.5*shapeAdjust2Q))* \ @fn8Q(xzxQ^(2*shapeAdjust6Q)))-zzortQ elseif @trapTypeQ == "Eye of the Needle" zzQ = @fn1Q((@fn2Q(yzyQ^(2*shapeAdjust5Q))-@fn3Q(xzxQ^2+ \ (1-shapeAdjust6Q)))*@fn4Q((xzxQ^shapeAdjust7Q)-@fn9Q(yzyQ))* \ (shapeAdjust1Q*@fn5Q(xzxQ*shapeAdjust8Q)-shapeAdjust2Q)-4* \ (@fn6Q(xzxQ^2*shapeAdjust4Q)+@fn7Q(yzyQ^2)-2*@fn8Q \ (xzxQ^shapeAdjust3Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Floreate Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1)+@fn3Q((yzyQ)^ \ yzyQ)-shapeAdjust2Q)-zzortQ elseif @trapTypeQ == "Glyph Curve" zzQ = @fn1Q(((@fn2Q(xzxQ*shapeAdjust3Q)-shapeAdjust2Q)^2- \ @fn3Q(yzyQ^2))*(@fn4Q(xzxQ+(1-shapeAdjust4Q))* \ (@fn5Q(xzxQ-(shapeAdjust5Q-1))-shapeAdjust2Q)+ \ @fn6Q(yzyQ))-4*shapeAdjust1Q* \ (abs(@fn7Q(xzxQ+(shapeAdjust6Q-1))-shapeAdjust2Q))* \ @fn8Q(xzxQ^(2*shapeAdjust7Q)))-zzortQ elseif @trapTypeQ == "Gravity Waves" zzQ = @fn1Q(atan(@fn4Q((xzxQ^(2*shapeAdjust1Q))+@fn3Q(yzyQ)* \ 2))-@fn2Q(yzyQ))-zzortQ elseif @trapTypeQ == "Harpoon Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2))*@fn3Q(yzyQ^2)+ \ shapeAdjust1Q^2-@fn4Q((xzxQ)^@fn6Q(yzyQ))- \ shapeAdjust2Q^2-@fn5Q(xzxQ^shapeAdjust5Q)-zzortQ elseif @trapTypeQ == "Hoops & Plates" zzQ = @fn1Q((@fn2Q((xzxQ+(1-shapeAdjust4Q))^@fn5Q(xzxQ+(1-shapeAdjust4Q)\ ))+@fn3Q(yzyQ^2*shapeAdjust2Q)+shapeAdjust1Q)^2-4*shapeAdjust1Q^2* \ @fn4Q(xzxQ^shapeAdjust3Q)-1)-zzortQ elseif @trapTypeQ == "Indented Parabola" zzQ = @fn1Q(@fn2Q(yzyQ))+@fn3Q(xzxQ*.2*shapeAdjust1Q)- \ @fn4Q(yzyQ^2)-zzortQ elseif @trapTypeQ == "Intersecting Ovals" zzQ = @fn1Q(@fn2Q(xzxQ^(2*shapeAdjust2Q))-(.4*shapeAdjust1Q^2* \ @fn3Q(xzxQ^2*shapeAdjust3Q)))-(@fn4Q(xzxQ^(2*shapeAdjust4Q))+2*\ @fn5Q(yzyQ^2)-.5*shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Leaves of Grass" zzQ = @fn1Q(@fn2Q(yzyQ))-xzxQ^@fn4Q(yzyQ)-zzortQ elseif @trapTypeQ == "Lipped Ovals" zzQ = @fn1Q(abs(@fn2Q(xzxQ^2*shapeAdjust1Q))+ \ abs(@fn3Q(yzyQ))-1)-zzortQ elseif @trapTypeQ == "M Curve" zzQ = @fn1Q(@fn2Q(yzyQ))+@fn3Q(shapeAdjust2Q*xzxQ^(3*shapeAdjust1Q))-\ @fn4Q(yzyQ^2)-zzortQ elseif @trapTypeQ == "Mercury Curve" zzQ = @fn1Q((@fn2Q(xzxQ*shapeAdjust3Q)-shapeAdjust2Q)^2+ \ @fn3Q(yzyQ^2))*(@fn4Q(xzxQ+(1-shapeAdjust4Q))* \ (@fn5Q(xzxQ-(shapeAdjust5Q-1))-shapeAdjust2Q)+ \ @fn6Q(yzyQ))-4*shapeAdjust1Q* \ (abs(@fn7Q(xzxQ+(shapeAdjust6Q-1))-shapeAdjust2Q))* \ @fn8Q(xzxQ^(2*shapeAdjust7Q))-zzortQ elseif @trapTypeQ == "Miscellanea" zzQ = @fn1Q(yzyQ^(2))-@fn3Q(xzxQ^2+(1-shapeAdjust2Q)*(xzxQ^shapeAdjust3Q)\ -(yzyQ)*(shapeAdjust1Q*@fn2Q(yzyQ^xzxQ)-shapeAdjust2Q)+4*(@fn3Q\ (xzxQ^2)+@fn4Q(yzyQ^2)+2*@fn5Q(yzyQ))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Moorish Fantasy" zzQ = @fn1Q(@fn2Q((xzxQ*shapeAdjust2Q)^shapeAdjust1Q))- \ @fn3Q(yzyQ)^(yzyQ-1)-zzortQ elseif @trapTypeQ == "Mousehead Curve" zzQ = @fn1Q(((@fn2Q(xzxQ^shapeAdjust2Q)-shapeAdjust1Q)^2+ \ @fn3Q(yzyQ^2+(1-shapeAdjust3Q)))*(@fn4Q(xzxQ+(1-shapeAdjust4Q))* \ (@fn5Q(xzxQ-(shapeAdjust5Q-1))-shapeAdjust1Q)+ \ @fn6Q(yzyQ^1))-4*(abs(xzxQ)-shapeAdjust1Q)*@fn7Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Nested Ovals" zzQ = @fn1Q(@fn2Q(yzyQ^2)*(shapeAdjust1Q^2- \ xzxQ^2))-(@fn3Q(xzxQ^(2*shapeAdjust2Q))+2* \ @fn4Q(yzyQ^2)-shapeAdjust1Q^2)^2- \ zzortQ elseif @trapTypeQ == "Nesting Birds Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1Q)-((.2*yzyQ)^(yzyQ)*(yzyQ^2+1))* \ yzyQ^(4)/(xzxQ^2)*(xzxQ^2*3-.5*yzyQ))-zzortQ elseif @trapTypeQ == "Odds 'n Ends" zzQ = @fn1Q(@fn2Q(yzyQ^2)-@fn3Q(xzxQ^2+(1-shapeAdjust5Q))* \ @fn4Q(xzxQ^shapeAdjust6Q)-@fn9Q(yzyQ)* \ (shapeAdjust1Q*@fn5Q(xzxQ*shapeAdjust7Q)-shapeAdjust2Q)-4* \ (@fn6Q(xzxQ^2*shapeAdjust4Q)+@fn7Q(yzyQ^2)-2-@fn8Q \ (xzxQ^shapeAdjust3Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Omega Curve" zzQ = @fn1Q(atan(@fn4Q((xzxQ^(2*shapeAdjust1Q))-@fn3Q(yzyQ^2)))+@fn2Q\ (xzxQ^-6*shapeAdjust3Q))-zzortQ elseif @trapTypeQ == "Ornate Curve" zzQ = @fn1Q((@fn2Q(yzyQ^2)/(xzxQ^2+1))*(xzxQ-yzyQ)* (shapeAdjust1Q-xzxQ)\ -4*(@fn3Q(xzxQ^2*shapeAdjust3Q)+@fn4Q(yzyQ^2)-2*@fn5Q \ (xzxQ^shapeAdjust2Q))^2*shapeAdjust1Q)-zzortQ elseif @trapTypeQ == "Ovals" zzQ = @fn1Q(@fn2Q(xzxQ*shapeAdjust1Q-@fn6Q(yzyQ))- \ @fn3Q(xzxQ^2*shapeAdjust2Q+@fn4Q(yzyQ^2))-2*@fn5Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Ovate Waves" zzQ = @fn1Q(@fn2Q(yzyQ^4)*@fn3Q(yzyQ^2)-@fn4Q(yzyQ^yzyQ)+shapeAdjust1Q^2* \ @fn5Q(xzxQ^(2*shapeAdjust2Q)))-zzortQ elseif @trapTypeQ == "Ovate Waves 2" zzQ = @fn1Q(@fn2Q(yzyQ^4)-1*@fn3Q(yzyQ^2)-@fn4Q((xzxQ*shapeAdjust4Q)^ \ @fn6Q(xzxQ^shapeAdjust2Q))+shapeAdjust1Q^2* @fn5Q(xzxQ^(\ 2*shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Pisces Curve" zzQ = @fn1Q((@fn2Q(xzxQ^(2*shapeAdjust1Q))-1)^2-@fn3Q(.6*yzyQ^2+ \ (1-shapeAdjust2Q))*(3*yzyQ+(6-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Plane & Tail" zzQ = @fn1Q(shapeAdjust1Q^4/@fn2Q((xzxQ^(2*shapeAdjust3Q)) \ +@fn5Q(yzyQ)) *shapeAdjust2Q^2- \ @fn3Q((xzxQ^(2*shapeAdjust4Q))^ @fn6Q(xzxQ+(1-shapeAdjust5Q))) \ /(2*shapeAdjust1Q-@fn4Q(yzyQ)))-zzortQ elseif @trapTypeQ == "Seagull Curve" zzQ = @fn1Q(@fn2Q(yzyQ^2)-shapeAdjust1Q^2* \ (@fn3Q(yzyQ^5)+@fn5Q(xzxQ+(1-shapeAdjust2Q))+ \ @fn4Q(yzyQ^7)))-zzortQ elseif @trapTypeQ == "Simple Curve" zzQ = @fn1Q(atan(@fn4Q((xzxQ^shapeAdjust4Q*shapeAdjust1Q)- \ @fn3Q(yzyQ)))-@fn2Q(yzyQ))-zzortQ elseif @trapTypeQ == "Smoke Rings" zzQ = @fn1Q(shapeAdjust1Q^4+@fn2Q((xzxQ^2)* \ @fn5q(yzyQ))- shapeAdjust2Q^2- \ @fn3Q((xzxQ^(shapeAdjust5Q))^@fn6Q(xzxQ+(1-shapeAdjust6Q))) \ /(2*shapeAdjust1Q-@fn4Q(yzyQ)))-zzortQ elseif @trapTypeQ == "Sneering Curve" ; check others for SA 8 zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1Q)-(((xzxQ*.2)* yzyQ)-yzyQ^2+1)* \ yzyQ^4-@fn3Q(xzxQ^(2*shapeAdjust3Q))/\ @fn4Q(xzxQ^(2*shapeAdjust2Q)+@fn5Q(yzyQ^.5)))-zzortQ elseif @trapTypeQ == "Space Debris" zzQ = @fn1Q(shapeAdjust1Q^4*@fn2Q((yzyQ^2)/ \ xzxQ^2)-shapeAdjust2Q^2* \ @fn3Q((xzxQ^shapeAdjust3Q)^@fn5Q(xzxQ+(1-shapeAdjust4Q)))* \ (2*shapeAdjust1Q-@fn4Q(xzxQ^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Spectacles Curve" zzQ = @fn1Q(@fn2Q(xzxQ^4*shapeAdjust2q)+@fn3Q(yzyQ^4)-2* \ shapeAdjust3Q*@fn4Q(abs(xzxQ)- \ @fn5Q(yzyQ^2*shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Spiked Cusp" zzQ = @fn1Q(@fn2Q((yzyQ)^yzyQ* xzxQ))-zzortQ elseif @trapTypeQ == "Squared Circle Curve" zzQ = @fn1Q((@fn2Q(xzxQ^2*shapeAdjust1Q))*(@fn3Q(xzxQ^2*shapeAdjust3Q)- \ @fn4Q(yzyQ^2))-shapeAdjust2Q^2/2+ \ @fn5Q(yzyQ^4))-zzortQ elseif @trapTypeQ == "Squeezed Rectangle Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust2Q)-shapeAdjust1Q* \ (@fn3Q(yzyQ^5)-@fn5Q(xzxQ^shapeAdjust3Q)- \ @fn4Q(yzyQ^7)))-zzortQ elseif @trapTypeQ == "Swallow Curve" zzQ = @fn1Q(@fn2Q((xzxQ^2*shapeAdjust2Q))-@fn3Q((yzyQ^2)))^2-4*@fn4Q\ ((xzxQ^yzyQ^2)*@fn5Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Stretched Oval Curve" zzQ = @fn1Q(shapeAdjust1Q^4+@fn2Q((yzyQ^2)/(xzxQ^2))-shapeAdjust2Q^2* \ @fn3Q((xzxQ^(2*shapeAdjust3Q))*@fn5Q(xzxQ+(1-shapeAdjust4Q)))* \ (2*shapeAdjust1Q-@fn4Q(xzxQ^shapeAdjust5Q)))-zzortQ elseif @trapTypeQ == "Switchback Curve" zzQ = @fn1Q(atan(@fn4Q((xzxQ^(2*shapeAdjust1Q))*@fn3Q(yzyQ^shapeAdjust4Q)*\ shapeAdjust2Q))-@fn2Q(xzxQ^shapeAdjust3Q))-zzortQ elseif @trapTypeQ == "Taurus Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(shapeAdjust2Q)))-@fn3Q(yzyQ^2)\ -@fn4Q((xzxQ^(2*shapeAdjust5Q))+ \ @fn6Q(yzyQ^2+(1-shapeAdjust4Q)))/shapeAdjust1Q^2* \ @fn5Q(xzxQ^shapeAdjust3Q)-zzortQ elseif @trapTypeQ == "Teardrop Curve" zzQ = @fn1Q(shapeAdjust1Q^4*@fn2Q((yzyQ^2)/xzxQ^2)- \ shapeAdjust2Q^2*@fn3Q((xzxQ^(2*shapeAdjust3Q))/@fn5Q(xzxQ+\ (1-shapeAdjust4Q)))*(2*shapeAdjust1Q-@fn4Q(xzxQ^shapeAdjust5Q)))\ -zzortQ elseif @trapTypeQ == "Tennis Anyone?" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust2Q)+2*shapeAdjust1Q* \ @fn3Q((xzxQ^shapeAdjust3Q)-@fn6Q(yzyQ))- \ shapeAdjust1Q^2)^2-@fn4Q(yzyQ^2)* @fn5Q(xzxQ^2)- zzortQ elseif @trapTypeQ == "Thorned Cross" zzQ = @fn1Q(@fn2Q((yzyQ)^yzyQ* \ xzxQ)+@fn3Q(xzxQ+(1-shapeAdjust1Q)))-zzortQ elseif @trapTypeQ == "Three Point Curve" zzQ = @fn1Q((@fn2Q(xzxQ^2)-shapeAdjust1Q^2)*@fn3Q(xzxQ^2-shapeAdjust3Q)^2+\ @fn4Q(yzyQ^4-shapeAdjust2Q^2)^2)- zzortQ elseif @trapTypeQ == "Tsuba curve" zzQ = @fn1Q(@fn2Q(yzyQ^2)-(.4*shapeAdjust1Q^2* \ @fn3Q(xzxQ^2*shapeAdjust2Q)))-(@fn4Q(xzxQ^(2*shapeAdjust3Q))+2\ *@fn5Q(yzyQ^2)-.5*shapeAdjust1Q^2)^2-zzortQ elseif @trapTypeQ == "Wheel in Trough" zzQ = @fn1Q((@fn2Q((xzxQ*shapeAdjust2Q)^(1+shapeAdjust1Q))+ \ @fn3Q(yzyQ^2))*atan2(@fn4Q(yzyQ)*xzxQ)*@fn6Q(yzyQ))-zzortQ elseif @trapTypeQ == "Whip Curve" zzQ = @fn1Q(@fn2Q((yzyQ)^yzyQ*yzyQ)+@fn3Q(xzxQ+(1-shapeAdjust1Q))- \ @fn4Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Cassini Ovals" zzQ = @fn1Q((@fn2Q(xzxQ^2*shapeAdjust3Q)+@fn3Q(yzyQ^2)+ \ shapeAdjust1Q^2)^2-4*shapeAdjust1Q^2* \ @fn4Q(xzxQ^(3-shapeAdjust4Q))-shapeAdjust2Q^4)-zzortQ elseif @trapTypeQ == "Circle" zzQ = @fn1Q(@fn2Q((xzxQ*shapeAdjust1Q)^(3-shapeAdjust2Q))+ \ @fn3Q((yzyQ*shapeAdjust3Q)^3)-1)-zzortQ elseif @trapTypeQ == "Cissoid of Diocles" zzQ = @fn1Q(@fn2Q(xzxQ^shapeAdjust1Q)*@fn3Q(xzxQ^2+(1-shapeAdjust2Q)+ \ (yzyQ^2))-2*@fn4Q(yzyQ^2+(1-shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Cochleoid" zzQ = exp(@fn1Q((@fn2Q(xzxQ^2)+yzyQ^2)* \ atan(@fn3Q(yzyQ))-@fn4Q(yzyQ))+ \ 1*abs(@fn5Q(yzyQ)))-zzortQ elseif @trapTypeQ == "Cocked Hat" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust2Q)+2*shapeAdjust1Q*@fn3Q(yzyQ)- \ shapeAdjust1Q^2)^2-@fn4Q(yzyQ^3)* \ (1-xzxQ^2)-zzortQ elseif @trapTypeQ == "Conchoid of Nicomedes" zzQ = @fn1Q((@fn2Q(xzxQ-shapeAdjust1Q))^2*(@fn3Q(xzxQ^(2*shapeAdjust3Q))+ \ @fn4Q(yzyQ^2))-shapeAdjust2Q^2* \ @fn5Q(xzxQ^2*shapeAdjust4Q))-zzortQ elseif @trapTypeQ == "Cruciform" zzQ = @fn1Q(@fn2Q(xzxQ^2)*@fn3Q(yzyQ)- shapeAdjust1Q^2*@fn4Q \ (xzxQ^(1+shapeAdjust2Q))-1*@fn5Q(yzyQ^3))-zzortQ elseif @trapTypeQ == "Devil's Curve" zzQ = @fn1Q(@fn2Q(yzyQ^3)-1* \ @fn3Q(yzyQ^2+(1-shapeAdjust3Q))-@fn4(xzxQ^4*shapeAdjust2Q)+ \ shapeAdjust1Q^2*@fn5Q(xzxQ^(1+shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Diamond" zzQ = @fn1Q(abs(@fn2Q(xzxQ*shapeAdjust1))+abs(@fn3Q(yzyQ))-1)- \ zzortQ elseif @trapTypeQ == "Dumbbell Curve" zzQ = @fn1Q(@fn2Q(yzyQ^2)-shapeAdjust1Q^2* \ (@fn3Q(xzxQ^(5-shapeAdjust2Q))-@fn4Q(xzxQ^(7-shapeAdjust3Q))))-zzortQ elseif @trapTypeQ == "Dürer's Conchoid" zzQ = @fn1Q(2*@fn2Q(yzyQ)*(@fn3Q(xzxQ)+ @fn4Q(yzyQ^2))-2*shapeAdjust2Q* \ @fn5Q(yzyQ^2+(1-shapeAdjust3Q))*(xzxQ^shapeAdjust4Q+ \ yzyQ+(1-shapeAdjust5Q))+(shapeAdjust2Q^2-3*shapeAdjust1Q^2)* \ @fn6Q(yzyQ)-shapeAdjust1Q^2* \ @fn7Q(xzxQ^2*shapeAdjust6Q)+2*shapeAdjust1Q^2*shapeAdjust2Q* \ (@fn8Q(xzxQ^shapeAdjust7Q)+@fn9Q(yzyQ))+ \ shapeAdjust1Q^2*(shapeAdjust1Q^2-shapeAdjust2Q^2))-zzortQ elseif @trapTypeQ == "Eight Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(3+shapeAdjust2Q))-shapeAdjust1Q^2* \ (@fn3Q(xzxQ^2*shapeAdjust3Q)-@fn4Q(yzyQ^2)))-zzortQ elseif @trapTypeQ == "Happy Accident" zzQ = @fn1Q((@fn2Q((xzxQ*shapeAdjust2Q)^(1+shapeAdjust1Q))+ \ @fn3Q(yzyQ^2))*atan2(@fn4Q(yzyQ)*xzxQ)-1*@fn5Q(yzyQ))-zzortQ elseif @trapTypeQ == "Hyperbola" zzQ = @fn1Q(@fn2Q((xzxQ*shapeAdjust1Q)^(1+shapeAdjust2Q))- \ @fn3Q(yzyQ)+ 1)-zzortQ elseif @trapTypeQ == "Kappa Curve" zzQ = @fn1Q(xzxQ^3+yzyQ^2)* @fn4Q(yzyQ)-shapeAdjust1Q^2* \ @fn5Q(xzxQ^2*shapeAdjust2Q)-zzortQ elseif @trapTypeQ == "Keppler's Folium" zzQ = @fn1Q((@fn2Q(xzxQ^shapeAdjust2Q)-shapeAdjust1Q)^2+ \ @fn3Q(yzyQ^2+(1-shapeAdjust3Q)))*(@fn4Q(xzxQ+(1-shapeAdjust4Q))* \ (@fn5Q(xzxQ-(shapeAdjust5Q-1))-shapeAdjust1Q)+@fn6Q\ (yzyQ))-4*(abs(@fn7Q(xzxQ))-shapeAdjust1Q)*@fn8Q(yzyQ^2)-zzortQ elseif @trapTypeQ == "Keratoid Cusp" zzQ = @fn1Q(@fn2Q(xzxQ^2)*@fn3Q(yzyQ)+ \ @fn4Q(xzxQ^(5*shapeAdjust1Q))-@fn5Q(yzyQ^3))-zzortQ elseif @trapTypeQ == "Knot Curve" zzQ = @fn1Q((@fn2Q(xzxQ^(1+shapeAdjust1Q)-1)^2)-@fn3Q(yzyQ^2)* \ (3+2*yzyQ))-zzortQ elseif @trapTypeQ == "Lemniscate" zzQ = @fn1Q((@fn2Q(xzxQ^2+(1-shapeAdjust2Q))+@fn3Q(yzyQ))^2- \ 2*shapeAdjust1Q*(@fn4Q(xzxQ^(2*shapeAdjust3Q))- \ @fn5Q(yzyQ^2)))-zzortQ elseif @trapTypeQ == "Lemniscate Corrected" zzQ = @fn1Q(@fn2Q(xzxQ^4+(1-shapeAdjust2Q))+yzyQ^4+3* xzxQ^2*yzyQ^2-2* \ shapeAdjust1Q^2*(@fn3Q(xzxQ^(2*shapeAdjust3Q))-@fn4Q(yzyQ)))-zzortQ elseif @trapTypeQ == "Limacon" zzQ = @fn1Q((@fn2Q(xzxQ^(2*shapeAdjust3Q))+@fn3Q(yzyQ^2+(1-shapeAdjust4Q))\ -2*shapeAdjust1Q*@fn4Q(xzxQ^shapeAdjust5Q))^2-shapeAdjust2Q^2* \ (@fn5Q(xzxQ^2*shapeAdjust6Q)+@fn6Q(yzyQ^2)))-zzortQ elseif @trapTypeQ == "Line" zzQ = @fn1Q(yzyQ)-zzortQ elseif @trapTypeQ == "Links Curve" zzQ = @fn1Q((@fn2Q(xzxQ^2*shapeAdjust1Q)+@fn3Q(yzyQ^2)-3* \ @fn4Q(xzxQ^shapeAdjust2Q))^2-4*@fn5Q(xzxQ^(2*shapeAdjust3Q))* \ (2-abs(@fn6Q(xzxQ^shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Maltese Cross Curve" zzQ = @fn1Q(@fn2Q(xzxQ^2*shapeAdjust1Q)+@fn3Q(yzyQ^2)-abs \ (xzxQ)*abs(@fn4Q(yzyQ+(1-shapeAdjust2Q)))* \ (@fn5Q(xzxQ^(2+(1-shapeAdjust3Q))-@fn6Q(yzyQ^2))))- \ zzortQ elseif @trapTypeQ == "Parabola" zzQ = @fn1Q(@fn2Q(xzxQ^(2*shapeAdjust1Q))-@fn3Q(yzyQ))-zzortQ elseif @trapTypeQ == "Pear-Shaped Curve" zzQ = @fn1Q(@fn2Q(xzxQ^(4-shapeAdjust2Q))*(shapeAdjust1Q-@fn3Q\ (xzxQ^shapeAdjust3Q))-1*@fn4Q(yzyQ^2))-zzortQ elseif @trapTypeQ == "Piriform" zzQ = @fn1Q(shapeAdjust1Q^4*@fn2Q(yzyQ^2)-shapeAdjust2Q^2* \ @fn3Q(xzxQ^(3*shapeAdjust3Q))*(2*shapeAdjust1Q-@fn4Q(xzxQ/\ shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Quadrifolium" zzQ = @fn1Q((@fn2Q(xzxQ^(2*shapeAdjust1Q))+yzyQ^2)^3-4* \ (xzxQ^2+1)*@fn5Q(yzyQ^3))-zzortQ elseif @trapTypeQ == "Rose Curve" complex tz = atan2(xzxQ + flip(yzyQ)) zzQ = @fn1Q(shapeAdjust1Q*cos(@fn2Q(tz^shapeAdjust2Q)) + \ sin(@fn3Q(tz^shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Serpentine Curve" zzQ = @fn1Q(shapeAdjust1Q*shapeAdjust2Q*@fn2Q(xzxQ^shapeAdjust3Q)/ \ @fn3Q((xzxQ+1-shapeAdjust3Q)^2+shapeAdjust1Q^2)- \ @fn4Q(yzyQ))-zzortQ elseif @trapTypeQ == "sin(x)/x" zzQ = @fn1Q(10*@fn2Q(sin(xzxQ^shapeAdjust1Q))/@fn3Q(xzxQ*shapeAdjust2Q)- \ @fn4Q(yzyQ))-zzortQ elseif @trapTypeQ == "Sinus + Cosinus" zzQ = @fn1Q(sin(shapeAdjust1Q*@fn2Q(xzxQ^shapeAdjust3Q))+ \ cos(shapeAdjust2Q*@fn3Q(xzxQ+(1-shapeAdjust4Q)))+ \ @fn4Q(yzyQ))-zzortQ elseif @trapTypeQ == "Spiral" zzQ = abs((xzxQ^(2*@shapeAdjust2Q)+yzyQ^2)^ \ @shapeAdjust1Q%1-.5+atan2(xzxQ*@shapeAdjust3Q +(flip(yzyQ)))/(2*pi)) zz2Q = abs((xzxQ^(2*@shapeAdjust4Q)+yzyQ^2)^@shapeAdjust1Q%1-.5+ \ atan2(xzxQ+flip(yzyQ))/(2*pi)+1) if real(zz2Q) < real(zzQ) zzQ = real(zz2Q) endif zz2Q = abs((xzxQ^(2*@shapeAdjust6Q)+yzyQ^2)^@shapeAdjust1Q%1-.5+atan2 \ (xzxQ+flip(yzyQ))/(2*pi)-1) if real(zz2Q) < real(zzQ) zzQ = real(zz2Q) endif elseif @trapTypeQ == "Square" if abs(xzxQ) > abs(yzyQ) zzQ = @fn1Q(@fn2Q(abs(xzxQ^shapeAdjust1Q))-1)-zzortQ else zzQ = abs(yzyQ)-1 endif elseif @trapTypeQ == "Stirrup Curve" zzQ = @fn1Q(@fn2Q((xzxQ^2-1)^2)-@fn3Q(yzyQ^2)*(yzyQ-1)*(yzyQ-2)* \ (yzyQ+5))-zzortQ elseif @trapTypeQ == "Strange Shape" zzQ = @fn1Q((@fn2Q(xzxQ^(2*shapeAdjust2Q))+(yzyQ)^ \ 2)*atan2(@fn4Q(xzxQ*shapeAdjust4Q)^ \ shapeAdjust7Q+flip(@fn5(yzyQ)))- \ 1*@fn6Q(yzyQ))-zzortQ elseif @trapType == "Swastika Curve" zzQ = @fn1(@fn2(yzyQ^4)-@fn3(xzxQ^4*shapeAdjust2)- \ @fn4(xzxQ)*@fn5(yzyQ+(1-shapeAdjust4)))-zzort elseif @trapTypeQ == "Tangent" zzQ = @fn1Q(tan(@fn2Q((xzxQ*shapeAdjust1Q)^shapeAdjust2Q))- @fn3Q(yzyQ))\ -zzortQ elseif @trapTypeQ == "Trefoil" zzQ = @fn1Q(@fn2Q(xzxQ^(5-shapeAdjust1Q))+xzxQ^2* \ @fn3Q(yzyQ^2)+@fn4Q(yzyQ^4)- \ @fn5Q(xzxQ^shapeAdjust2Q)*(@fn6Q(xzxQ^2*shapeAdjust3Q)- \ @fn7Q(yzyQ^2+(1-shapeAdjust4Q))))-zzortQ elseif @trapTypeQ == "Trident" zzQ = @fn1Q(@fn2Q(xzxQ^3*shapeAdjust2Q)-shapeAdjust1Q^3- \ @fn3Q(xzxQ)*yzyQ)-zzortQ elseif @trapTypeQ == "Trident of Descartes" zzQ = @fn1Q((shapeAdjust1Q+@fn2Q(xzxQ^shapeAdjust2Q))* \ (shapeAdjust1Q-@fn3Q(xzxQ*shapeAdjust3Q))* \ (2*shapeAdjust1Q-@fn4Q(xzxQ^shapeAdjust4Q))/ \ (shapeAdjust1Q*@fn5Q(xzxQ+(1-shapeAdjust5Q)))- \ @fn6Q(yzyQ))-zzortQ elseif @trapTypeQ == "Trifolium" zzQ = @fn1Q((@fn2Q(xzxQ^2*shapeAdjust2Q)+@fn3Q(yzyQ^2))* \ (@fn4Q(yzyQ^2)+@fn5Q(xzxQ^shapeAdjust3Q)* \ @fn6Q(xzxQ+shapeAdjust1Q))-4* \ @fn7Q(xzxQ)*@fn8Q(yzyQ^2+(1-shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Trisectrix of Maclaurin" zzQ = @fn1Q(@fn2Q(yzyQ^2)*(shapeAdjust1Q+ xzxQ)-@fn3Q(xzxQ^(2*\ shapeAdjust2Q))*(3*shapeAdjust1Q-@fn4Q(xzxQ*shapeAdjust3Q)))-zzortQ elseif @trapTypeQ == "Twisted Cross" zzQ = @fn1Q(@fn2Q(yzyQ^4)-@fn3Q(xzxQ^(5-shapeAdjust2Q))- \ @fn4Q(xzxQ)*@fn5Q(yzyQ+(1-shapeAdjust4Q)))-zzortQ elseif @trapTypeQ == "Witch of Agnesi" zzQ = @fn1Q(8*shapeAdjust2Q*shapeAdjust1Q^3/ \ @fn2Q(xzxQ^(2*shapeAdjust3Q)+4*shapeAdjust1Q^2)- \ @fn3Q(yzyQ))-zzortQ endif if @ztestflavorQ == "cabs" ztest2Q=cabs(@fn5aQ(ztestQ)) elseif @ztestflavorQ == "real" ztest2Q=real(@fn5aQ(ztestQ)) elseif @ztestflavorQ == "imag" ztest2Q=imag(@fn5aQ(ztestQ)) elseif @ztestflavorQ == "atan2" ztest2Q=atan2(@fn5aQ(ztestQ)) elseif @ztestflavorQ == "mod" ztest2Q=|(@fn5aQ(ztestQ))| endif if @z1parQ == "normal" z1 = z1 elseif @z1parQ == "cabs" z1 = cabs(z1) elseif @z1parQ == "real" z1 = real(z1) elseif @z1parQ == "imag" z1 = imag(z1) elseif @z1parQ == "atan2" z1 = atan2(z1) elseif @z1parQ == "modulus" z1 = |z1| elseif @z1parQ == "function" z1 = @z1fnQ(z1) endif if @zztypQ == "1" zzQ = @zzfn1Q(z1)-@zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ elseif @zztypQ == "2" zzQ = @zzfn2Q(@zzfn1Q(z1)-@zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ) elseif @zztypQ == "3" zzQ = @zzfn3Q(@zzfn2Q(@zzfn1Q(z1))-@zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ) elseif @zztypQ == "4" zzQ = @zzfn3Q(@zzfn2Q(@zzfn1Q(z1)))-@zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ elseif @zztypQ == "5" zzQ = @zzfn3Q(@zzfn2Q(@zzfn1Q(z1)-@zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ)) elseif @zztypQ =="6" zzQ = @zfnQ((zzQ-@p3aQ)*@p3bQ)^@p3cQ endif pointQ = @fn2aQ(zzQ)*@fn3aQ(@fn6aQ(ztest2Q))+flip(@fn2aQ(zzQ)*\ @fn4aQ(@fn7aQ(ztest2Q))) float radiusQ = abs(cabs(z1-zzQ)) pointQ = @fnp3Q(@fnp2Q(@fnpQ(pointQ-@p4aQ)*@p4bQ)^@p4cQ) if @shadeTypeQ == true if @floatdQ == "atan" dQ=cabs(atan(z1-(pointQ))) elseif @floatdQ == "atanh" dQ=cabs(atanh(z1-pointQ)) elseif @floatdQ == "sqrt" dQ=cabs(atan(sqrt(z1-pointQ))) endif else if @floatdQ == "atan" dQ = |atan(z1-(pointQ))| elseif @floatdQ == "atanh" dQ = |atanh(z1-pointQ)| elseif @floatdQ == "sqrt" dQ = |atan(sqrt(z1-pointQ))| endif endif if @simplex_dQ == false d = d else if @nu_dQ == "1" if @change_dQ == false if @var_dQ == 0 d = cabs(log(d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 1 d = cabs(log(d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 2 d = cabs(log(d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 3 d = cabs(log(d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 4 d = cabs(log(d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 5 d = cabs(log(d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 6 d = cabs(log(d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 7 d = cabs(log(d-(@fndQ(z1/@fndQ(zz))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 8 d = cabs(log(d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ== 9 d = cabs(log(d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q) endif else if @var_dQ == 0 d = cabs(log(d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 1 d = cabs(log(d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 2 d = cabs(log(d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 3 d = cabs(log(d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 4 d = cabs(log(d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 5 d = cabs(log(d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 6 d = cabs(log(d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 7 d = cabs(log(d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 8 d = cabs(log(d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q) elseif @var_dQ == 9 d = cabs(log(d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q) endif endif elseif @nu_dQ == "2" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q *\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "3" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(zz)^@fnd2(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q /\ (d-(@fndQ(z1)^@fnd2(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "4" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((z1-@dp4Q)*@dp5Q)^@dp6Q -\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "5" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q +\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif elseif @nu_dQ == "6" if @change_dQ == false if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz+@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz-@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1-@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz*@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz/@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(z1/@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(zz^@fnd2Q(z1))-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log((@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ d-(@fndQ(z1^@fnd2Q(zz))-@dp1Q)*@dp2Q)^@dp3Q)) endif else if @var_dQ == 0 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 1 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 2 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)+@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 3 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)-@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 4 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)-@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 5 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)*@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 6 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)/@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 7 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)/@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 8 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(zz)^@fnd2Q(z1)-@dp1Q)*@dp2Q)^@dp3Q)) elseif @var_dQ == 9 d = cabs(log(@fnd3Q((zz-@dp4Q)*@dp5Q)^@dp6Q ^\ (d-(@fndQ(z1)^@fnd2Q(zz)-@dp1Q)*@dp2Q)^@dp3Q)) endif endif endif endif if @blendOp == "+" d = (@blendA/100*real(@blendFnA(d)) + @blendA3) + (@blendB/100*real\ (@blendFnB(dQ)) + @blendB3) point = (@blendA/100*real(@blendFnA(point)) + @blendA3) + \ (@blendB/100*real(@blendFnB(pointQ)) +@blendB3) radius = (@blendA/100*real(@blendFnA(radius)) + @blendA3) + \ (@blendB/100*real(@blendFnB(radiusQ)) + @blendB3) ;elseif @blendOp == "*" ;d = real(@blendFnA(d) * @blendFnB(dQ)) --keep old code for now ;point = real(@blendFnA(point) * @blendFnB(pointQ)) ;radius = real(@blendFnA(radius) * @blendFnB(radiusQ)) elseif @blendOp == "*" d = (@blendA2 * real(@blendFnA(d)) + @blendA3) * (@blendB2 * \ real(@blendFnB(dQ)) + @blendB3) point = (@blendA2 * real(@blendFnA(point)) + @blendA3) *(@blendB2 *\ real(@blendFnB(pointQ)) + @blendB3) radius = (@blendA2 * real(@blendFnA(radius)) + @blenda3) * (@blendB2 *\ real(@blendFnB(radiusQ)) + @blendB3) endif endif if @avgflv == true if @mode_change == 0 dsum = d + (dsum) dave = dsum/(iter+1) elseif @mode_change == 1 dsum = cabs(cotanh(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 2 dsum = cabs(log(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 3 dsum = |log(d +(dsum))| dave = dsum/(iter+1) dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(d +(dsum))| dave = dsum/(iter+1) dave = |dave| elseif @mode_change == 5 dsum = |tanh(d +(dsum))| dave = dsum/(iter+1) dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(d +(dsum))) dave = dsum/(iter+1) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 8 dsum = cabs(cos(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 9 dsum = cabs(recip(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 10 dsum = |recip(d +(dsum))| dave = dsum/(iter+1) dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(d +(dsum)) dave = dsum/(iter+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(d +(dsum)) dave = dsum/(iter+1) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(d +(dsum)) dave = dsum/(iter+1) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(d +(dsum))) dave = dsum/(iter+1) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(d +(dsum))) dave = dsum/(iter+1) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(d +(dsum))) dave = dsum/(iter+1) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(d +(dsum))) dave = dsum/(iter+1) dave = cabs(log(dave)) endif else dsum = d +(dsum) dave = dsum/(iter+1) if @mode_change == 0 dsum = d + (dsum) elseif @mode_change == 1 dsum = cabs(cotanh(d +(dsum))) elseif @mode_change == 2 dsum = cabs(log(d +(dsum))) elseif @mode_change == 3 dsum = |log(d +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 4 dsum = |atan(d +(dsum))| dave = |dave| elseif @mode_change == 5 dsum = |tanh(d +(dsum))| dave = |dave| elseif @mode_change == 6 dsum = cabs(asin(d +(dsum))) dave = cabs(dave) elseif @mode_change == 7 dsum = cabs(sqrt(d +(dsum))) elseif @mode_change == 8 dsum = cabs(cos(d +(dsum))) elseif @mode_change == 9 dsum = cabs(recip(d +(dsum))) dave = dsum/(iter+1) elseif @mode_change == 10 dsum = |recip(d +(dsum))| dave = |sqrt(dave)| elseif @mode_change == 11 dsum = cabs(d +(dsum)) dave = dsum/(iter+1) dave = cabs(recip(dave)) elseif @mode_change == 12 dsum = cabs(d +(dsum)) dave = cabs(log(dave)) elseif @mode_change == 13 dsum = cabs(d +(dsum)) dave = cabs(atanh(dave)) elseif @mode_change == 14 dsum = cabs(round(d +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 15 dsum = cabs(trunc(d +(dsum))) dave = cabs(recip(dave)) elseif @mode_change == 16 dsum = cabs(round(d +(dsum))) dave = cabs(log(dave)) elseif @mode_change == 17 dsum = cabs(trunc(d +(dsum))) dave = cabs(log(dave)) endif endif if @follow == true if iter >= @skip1 && iter < @skip2 if @version < 1.31 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if (@trap_mode == 0) ; closest if d <= min_dist trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q trapped = true endif elseif (@trap_mode == 1) ; first if d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 2 ; last if !trapped && d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 3 ; average if d <= @size2 trapped = true trap_p = point min_dist = dave + @edge/3 distance = dave min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 4 ; farthest if d > min_dist && d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 5 ; sum if d <= @size2 trapped = true trap_p = point + trap_p min_dist = distance + @edge/3 distance = distance + d min_r = radius +min_r trap_i = iter trap_z = z1 + trap_z trap2_z = #z + trap2_z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif else ; sum outline if d <= @size2 trapped = true trap_p = point + trap_p min_dist = distance + @edge/3 distance = distance + min_dist + .1 min_r = radius +min_r trap_i = iter trap_z = z1 + trap_z trap2_z = #z + trap2_z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif endif endif endif elseif @follow == false if @version < 1.31 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if iter >= @skip1 && iter < @skip2 if (@trap_mode == 0) ; closest if d <= min_dist trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q trapped = true endif elseif (@trap_mode == 1) ; first if d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 2 ; last if !trapped && d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 3 ; average if d <= @size2 trapped = true trap_p = point min_dist = dave + @edge/3 distance = dave min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 4 ; farthest if d > min_dist && d <= @size2 trapped = true trap_p = point min_dist = d + @edge/3 min_r = radius trap_i = iter trap_z = z1 trap2_z = #z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif elseif @trap_mode == 5 ; sum if d <= @size2 trapped = true trap_p = point + trap_p min_dist = distance + @edge/3 distance = distance + d min_r = radius +min_r trap_i = iter trap_z = z1 + trap_z trap2_z = #z + trap2_z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif else ; sum outline if d <= @size2 trapped = true trap_p = point + trap_p min_dist = distance + @edge/3 distance = distance + min_dist + .1 min_r = radius +min_r trap_i = iter trap_z = z1 + trap_z trap2_z = #z + trap2_z traptest = zz + zzQ traptest2 = ztest2 + ztest2Q endif endif endif endif endif iter = iter + 1 Final: if @trap_mode == 3 || @trap_mode == 5 d = distance endif if trapped 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 == "Pattern 1" tz = ((trap_p-@txia1)*@txib1)^@txic1 elseif @ztyp == "Pattern 2" tz = ((traptest-@txia1)*@txib1)^@txic1 elseif @ztyp == "Pattern 3" tz = ((traptest-@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 = ((trap_p-@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 == "Pattern 1" tz = ((trap_p-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Pattern 2" tz = ((traptest-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Pattern 3" tz = ((traptest2-@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 == "Pattern 1" tz = ((trap_p-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Pattern 2" tz = ((traptest-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Pattern 3" tz = ((traptest2-@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 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 == "Pattern 1" tz = ((trap_p-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Pattern 2" tz = ((traptest-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Pattern 3" tz = ((traptest2-@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 == "Pattern 1" tz = ((trap_p-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Pattern 2" tz = ((traptest-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Pattern 3" tz = ((traptest2-@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 if @invt == false if real(1/@msk) < min_dist && !(@msk == 0) #solid = true endif elseif @invt == true if real(1/@msk) > min_dist && !(@msk == 0) #solid = true endif endif if @colorby == "Distance" tmp =.7 * min_dist/@dist elseif @colorby == "Iteration" tmp = real(@colorFn((trap_i-@tz1)*@tz2)^@tz3) elseif @colorby == "Modulated Iter" tmp = ((real(@colorFn((trap_i-@tz1)*@tz2)^@tz3) % @iter_mod) / @iter_mod ) elseif @colorby == "Magnitude" tmp = cabs(@colorFn((trap_z-@tz1)*@tz2)^@tz3) elseif @colorby == "Real" tmp = real(abs(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) elseif @colorby == "Imag" tmp = imag(abs(@colorFn((trap_z-@tz1)*@tz2)^@tz3)) elseif @colorby == "Angle" float angle = atan2(@colorFn((trap_z-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle elseif @colorby == "Angle to Trap" float angle = atan2(@colorFn(((trap_z-trap_p)-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle elseif @colorby == "Radius" tmp = real(@colorFn((min_r-@tz1)*@tz2)^@tz3) elseif @colorby == "Pattern Magnitude" tmp = cabs(@colorFn((trap_p-@tz1)*@tz2)^@tz3) elseif @colorby == "Pattern Real" tmp = real(abs(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) elseif @colorby == "Pattern Imag" tmp = imag(abs(@colorFn((trap_p-@tz1)*@tz2)^@tz3)) elseif @colorby == "Pattern Angle" float angle = atan2(@colorFn((trap_p-@tz1)*@tz2)^@tz3) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle tmp = angle endif #index = real(@indfn(tmp^@shad+(texture)))+(tx*@txamt/10)/100 + t2*\ (tx*@txamt/10)/100 + rn*@r*(tx*@txamt/10)/100 else #solid = true endif Default: Title="Trap the Light Fantastic" param version caption = "Version" default = 1.33 visible = false endparam heading caption="Basic Tools" endheading param trap_mode caption = "Trap Mode" enum = "Closest" "First" "Last" "Average" "Farthest" "Sum""Sum Outline" hint = "All modes but 'Closest' are automatically masked. Use \ 'Edge Threshold' param to control masking." endparam int param mode_change caption = "Avg. Flavor" enum = "Normal""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17" default = 1 hint = "Changes the gradient as applied to the 'Average' trap mode. \ some differences are subtle. You may need to change your \ gradient for best effect" visible = @trap_mode == 3 endparam bool param avgflv caption = "Change Avg. Flavor" default = false visible = @trap_mode == 3 endparam float param size2 caption = "Edge Threshold" default = 1 hint = "This param determines element size with all \ trap modes except 'closest'" visible = @trap_mode != 0 endparam param colorby caption = "Coloring Mode" enum = "Distance" "Iteration" "Modulated Iter" "Magnitude" "Real" "Imag" \ "Angle" "Angle to Trap" "Radius" "Pattern Magnitude" "Pattern Real" \ "Pattern Imag" "Pattern Angle" default = 0 endparam float param dist caption = "Distance Offset" default = 1 visible = @colorby == 0 hint = "Changes the gradient mapping onto the elements" endparam float param iter_mod caption = "Color Ranges" default = 4.0 hint = "Determines the number of color ranges in the 'Modulated Iter' \ coloring mode. Decimal values can be used to vary the colors \ within individual ranges" visible = @colorby == "Modulated Iter" endparam func colorFn caption = "Coloring Mode Fn" default = ident() hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endfunc complex param tz1 caption = "Color Offset" default = (0,0) visible = @colorby > 0 hint = "Changes the gradient mapping onto the elements" endparam complex param tz2 caption = "Color Strength" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endparam complex param tz3 caption = "Color Power" default = (1,0) hint = "Changes the gradient mapping onto the elements" visible = @colorby > 0 endparam float param edge caption = "Edge Definition" default = 0 hint = "Increasing this value adds edges to the elements. You \ will need to adjust your gradient" endparam float param shad caption = "Shading" default = 1 hint = "If you have extraneous bands at the outside of your figure \ try adjusting this value for less than 1" endparam heading caption = "Trap Mixing" endheading bool param blendType caption = "Blend Traps" default = false endparam int param blendOp caption = "Blend Mode" enum = "+""*" default = 1 hint = "Determines the arithmetical means by which the two \ traps are blended" visible = @blendType endparam int param seq caption = "Formula Scenario" enum = "Trap I""Modulated""Trap II" default = 0 hint = "Defines if and how the effects of two different formulae are used \ to determine how the elements are colored. 'Trap I' uses only the \ first trap section. 'Modulated' uses a second formula after a \ user-determined number of iterations. 'Trap II uses only the \ second trap section" visible = @blendType == false endparam int param modCmp caption = "Modulation Repeat" default = 1 hint = "At what iteration the modulation starts. If '0' all iters are \ of modulation formula" visible = @blendType == false && @seq == "Modulated" endparam int param modBy caption = "# of Modulated Iters" default = 1 hint = "How many iterations of 2nd formula are present" visible = @blendType == false && @seq == "Modulated" endparam float param blendA caption = "% Trap 1" default = 50 visible = @blendType == true && @blendOp == 0 endparam float param blendB caption = "% Trap 2" default = 50 visible = @blendType == true && @blendOp == 0 endparam float param blendA2 caption = "Trap 1 Emphasis" default = 1 visible = @blendType == true && @blendOp == 1 endparam float param blendB2 caption = "Trap 2 Emphasis" default = 1 visible = @blendType == true && @blendOp == 1 endparam float param blendA3 caption = "Trap 1 Strength" default = 0 visible = @blendType == true endparam float param blendB3 caption = "Trap 2 Strength" default = 0 visible = @blendType == true endparam func blendFnA caption = "Blend Fn A" default = ident() visible = @blendType == true endfunc func blendFnB caption = "Blend Fn B" default = ident() visible = @blendType == true endfunc param trapType caption = "Trap Modifier I" enum = "Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day" \ "Barbed Wire""Baubles & Bangles""Bean Curve""Bicorn Curve" \ "Bicuspid Curve""Bifolium""Bighorn Curve""Binary Curve" \ "Bird of Paradise""Bow""Butterfly Curve""Cabuchon Curve" \ "Cardinal Points Curve""Cassini Ovals""Chaos Adorned""Chaos Unleashed" \ "Church Key Curve""Circle""Cissoid of Diocles""Cochleoid""Cocked Hat" \ "Compass Curve""Conchoid of Nicomedes""Conjoined Circle Curve" \ "Conductor's Curve""Cooking Pot Curve""Crochet Hooks" \ "Cruciform""D&U Curve""Devil's Curve""Diamond" \ "Dogleg Curve""Dribs & Drabs" \ "Driftwood Curve""Dumbbell Curve""Dürer's Conchoid" \ "Eight Curve""Eye of the Needle"\ "Floreate Curve""Glyph Curve""Gravity Waves""Happy Accident" \ "Harpoon Curve""Hoops & Plates"\ "Hyperbola""Indented Parabola""Intersecting Ovals""Kappa Curve" \ "Keppler's Folium""Keratoid Cusp""Knot Curve""Leaves of Grass" \ "Lemniscate""Lemniscate Corrected""Limacon""Line" "Links Curve" \ "Lipped Ovals""M curve""Maltese Cross Curve""Mercury Curve""Miscellanea" \ "Moorish Fantasy""Mousehead Curve""Nested Ovals""Nesting Birds Curve" \ "Odds 'n Ends""Omega Curve""Ornate Curve""Ovals" \ "Ovate Waves""Ovate Waves 2""Parabola" \ "Pear-Shaped Curve""Piriform" \ "Pisces Curve""Plane & Tail""Quadrifolium""Rose Curve" \ "Seagull Curve" "Serpentine Curve""Simple Curve""sin(x)/x" \ "Sinus + Cosinus""Smoke Rings""Sneering Curve""Space Debris" \ "Spectacles Curve""Spiked Cusp""Spiral""Square""Squared Circle Curve" \ "Squeezed Rectangle Curve""Stirrup Curve""Strange Shape" \ "Stretched Oval Curve""Swallow Curve""Swastika Curve""Switchback Curve" \ "Tangent""Taurus Curve""Teardrop Curve""Tennis Anyone?"\ "Thorned Cross""Three Point Curve""Trefoil""Trident" \ "Trident of Descartes""Trifolium""Trisectrix of Maclaurin""Tsuba Curve" \ "Twisted Cross""Wheel in Trough""Whip Curve""Witch of Agnesi" default = 7 hint = "The trap type." visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam param trapTypeQ caption = "Trap Modifier II" enum = "Alien Waves""Ampersand Curve""ArcTangent""Bad Hair Day" \ "Barbed Wire""Baubles & Bangles""Bean Curve""Bicorn Curve" \ "Bicuspid Curve""Bifolium""Bighorn Curve""Binary Curve" \ "Bird of Paradise""Bow""Butterfly Curve""Cabuchon Curve" \ "Cardinal Points Curve""Cassini Ovals""Chaos Adorned""Chaos Unleashed" \ "Church Key Curve""Circle""Cissoid of Diocles""Cochleoid""Cocked Hat" \ "Compass Curve""Conchoid of Nicomedes""Conjoined Circle Curve" \ "Conductor's Curve""Cooking Pot Curve""Crochet Hooks" \ "Cruciform""D&U Curve""Devil's Curve""Diamond" \ "Dogleg Curve""Dribs & Drabs" \ "Driftwood Curve""Dumbbell Curve""Dürer's Conchoid" \ "Eight Curve""Eye of the Needle"\ "Floreate Curve""Glyph Curve""Gravity Waves""Happy Accident" \ "Harpoon Curve""Hoops & Plates"\ "Hyperbola""Indented Parabola""Intersecting Ovals""Kappa Curve" \ "Keppler's Folium""Keratoid Cusp""Knot Curve""Leaves of Grass" \ "Lemniscate""Lemniscate Corrected""Limacon""Line" "Links Curve" \ "Lipped Ovals""M curve""Maltese Cross Curve""Mercury Curve""Miscellanea" \ "Moorish Fantasy""Mousehead Curve""Nested Ovals""Nesting Birds Curve" \ "Odds 'n Ends""Omega Curve""Ornate Curve""Ovals" \ "Ovate Waves""Ovate Waves 2""Parabola" \ "Pear-Shaped Curve""Piriform" \ "Pisces Curve""Plane & Tail""Quadrifolium""Rose Curve" \ "Seagull Curve" "Serpentine Curve""Simple Curve""sin(x)/x" \ "Sinus + Cosinus""Smoke Rings""Sneering Curve""Space Debris" \ "Spectacles Curve""Spiked Cusp""Spiral""Square""Squared Circle Curve" \ "Squeezed Rectangle Curve""Stirrup Curve""Strange Shape" \ "Stretched Oval Curve""Swallow Curve""Swastika Curve""Switchback Curve" \ "Tangent""Taurus Curve""Teardrop Curve""Tennis Anyone?"\ "Thorned Cross""Three Point Curve""Trefoil""Trident" \ "Trident of Descartes""Trifolium""Trisectrix of Maclaurin""Tsuba Curve" \ "Twisted Cross""Wheel in Trough""Whip Curve""Witch of Agnesi" default = 8 hint = "The trap type." visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam heading caption = "Global Params and Functions" endheading int param skip1 caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam func rootfn caption="Root Fn" default=ident() endfunc func indfn caption = "Final Index Function" default = ident() hint = "Changes the 'shading' of the elements." endfunc ; Morph Parameters-------------------------------------------------- heading caption = "Morph Parameters" $ifdef VER40 expanded = false $endif endheading param tha2 caption = "Morph -> Morph II" default = false endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 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 = @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 = @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 = @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 = @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 = @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 = @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @change > 5 endfunc heading caption = "Shaping Stuff I" visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading bool param combine caption = "Double Trap I" default = false visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam int param first caption = "Trap A Style I" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible = @combine && (@seq == 0 || @seq == 1 || @blendType == true) endparam int param second caption = "Trap B Style I" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible = @combine && (@seq == 0 || @seq == 1 || @blendType == true) endparam int param combOp caption = "Operator I" enum = "+""-""*""/""//""^""^^" default = 0 visible = @combine && (@seq == 0 || @seq == 1 || @blendType == true) endparam func combfn caption = "Combination Fn I" default = ident() visible = @combine && (@seq == 0 || @seq == 1 || @blendType == true) endfunc int param pztest caption = "Trap Style I" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible =@combine == false && (@seq == 0 || @seq == 1 || @blendType == true) endparam int param nuflav caption = "Shape I" enum = "exp""acos""acosh" default = 0 visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam int param aparam caption = "Shape Variation I" enum = "1""2""3""4" default = 0 visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam int param floatd caption = "Shading/Shape I" enum = "atan""atanh""sqrt" default = 0 hint = "Affects shading using Distance Mode 1, shape \ using Distance Mode 2" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam bool param shadeType caption = "Change Shading/Shape I" default = false hint = "Affects shading using Distance Mode 1, shape \ using Distance Mode 2" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam heading caption = "Shaping Stuff II" visible = (@seq == 1 || @seq == 2 || @blendType == true) endheading bool param combineQ caption = "Double Trap II" default = false visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam int param firstQ caption = "Trap A Style II" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible = @combineQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam int param secondQ caption = "Trap B Style II" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible = @combineQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam int param combOpQ caption = "Operator II" enum = "+""-""*""/""//""^""^^" default = 0 visible = @combineQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam func combfnQ caption = "Combination Fn II" default = ident() visible = @combineQ && (@seq == 1 || @seq == 2 || @blendType == true) endfunc int param pztestQ caption = "Trap Style II" enum = "atan2 a""atan2 a (x+y)""atan2 a (x-y)""atan2 b""real a"\ "real b""imag a""imag b""modulus a""modulus b""normal"\ "real + imag""real * imag""real / imag""imag / real" default = 10 visible = @combineQ == false && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam int param nuflavQ caption = "Shape II" enum = "exp""acos""acosh" default = 0 visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam int param aparamQ caption = "Shape Variation II" enum = "1""2""3""4" default = 0 visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam int param floatdQ caption = "Shading/Shape II" enum = "atan""atanh""sqrt" default = 0 hint = "Affects shading using Distance Mode 1, shape \ using Distance Mode 2" visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam bool param shadeTypeQ caption = "Change Shading/Shape II" default = false hint = "Affects shading using Distance Mode 1, shape \ using Distance Mode 2" visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam heading caption = "General Parameters I" visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading bool param simplex_d caption = "Complexify Distance I " default = false visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam int param var_d caption="Distance Mode I" enum="1""2""3""4""5""6""7""8""9" default=0 visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endparam int param nu_d caption="Distance Variation I" enum="1""2""3""4""5""6" default=0 visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endparam bool param change_d caption = "Change Distance Flavor I" default = false visible = @simplex_d && @var_d > 1 && (@seq == 0 || @seq == 1 || \ @blendType == true) endparam func fnd caption = "Distance Fn 1 I" default = ident() visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fnd2 caption = "Distance Fn 2 I" default = ident() visible = @simplex_d && @var_d > 1 && (@seq == 0 || @seq == 1 || \ @blendType == true) endfunc func fnd3 caption = "Distance Fn 3 I" default = ident() visible = @simplex_d && @nu_d > 0 && (@seq == 0 || @seq == 1 || \ @blendType == true) endfunc int param ztestflavor caption = "Z Flavor 1 I" enum = "cabs""real""imag""atan2""mod" default = 0 visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam int param z1par caption = "Z Flavor 2 I" enum = "normal""cabs""real""imag""atan2""modulus""function" default = 0 visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam func z1fn caption="Z Flavor Fn I" default=sqr() visible = @z1par == "function" && (@seq == 0 || @seq == 1 || \ @blendType == true) endfunc int param zztyp caption = "Trap Flavor I" enum = "1""2""3""4""5""6" default = 0 hint = "3 and 4 are different only when 'Trap Flavor Fn 3' is at \ certain values" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam func zzfn1 caption = "Trap Flavor Fn 1 I" default = ident() visible = @zztyp != 5 && (@seq == 0 || @seq == 1 || @blendType == true) endfunc func zzfn2 caption = "Trap Flavor Fn 2 I" default = sqr() visible = (@zztyp == 1 || @zztyp == 2 || @zztyp == 3 || @zztyp == 4) && \ (@seq == 0 || @seq == 1 || @blendType == true) endfunc func zzfn3 caption = "Trap Flavor Fn 3 I" default = flip() visible = (@zztyp == 2 || @zztyp == 3 || @zztyp == 4) && \ (@seq == 0 || @seq == 1 || @blendType == true) endfunc float param size caption = "Size I" default = 1 hint = "The size of the trap shape" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam float param rotation caption = "Rotation I" default = 0 hint = "The amount to rotate the trap shape about its origin" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam float param ratio caption = "Height/Width Ratio I" default = 1 hint = "The ration of height to width" visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam heading caption = "Distance Parameters I" $ifdef VER40 expanded = false $endif visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endheading complex param dp1 caption = "Distance Offset I" default = (0,0) visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param dp2 caption = "Distance Strength I" default = (1,0) visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param dp3 caption = "Distance Power I" default = (1,0) visible = @simplex_d && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param dp4 caption = "Distance Offset 2 I" default = (0,0) visible = @simplex_d && @nu_d > 0 && (@seq == 0 || @seq == 1 || \ @blendType == true) endparam complex param dp5 caption = "Dist Strength 2 I" default = (1,0) visible = @simplex_d && @nu_d > 0 && (@seq == 0 || @seq == 1 || \ @blendType == true) endparam complex param dp6 caption = "Dist Power 2 I" default = (2,0) visible = @simplex_d && @nu_d > 0 && (@seq == 0 || @seq == 1 || \ @blendType == true) endparam heading caption = "Z and Shape Parameters I" $ifdef VER40 expanded = false $endif visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading complex param p2a caption = "Z Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p2b caption = "Z Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p2c caption = "Z Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1a caption = "Shape Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1b caption = "Shape Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1c caption = "Shape Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam bool param @split caption = "Split Shape Params I" default = false hint= "Splitting shape params allows independent adjustment of params \ for double traps. If you have changed 'Shape' param values with \ this box unchecked, please copy and paste the complex values \ into the relevant 'Shape B' param fields to achieve the same \ appearance" visible = @combine && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1d caption = "Shape B Offset I" default = (0,0) visible = @combine && @split && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1e caption = "Shape B Strength I" default = (1,0) visible =@combine && @split && (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p1f caption = "Shape B Power I" default = (1,0) visible =@combine && @split && (@seq == 0 || @seq == 1 || @blendType == true) endparam heading caption = "Trap, Point, X&Y Parameters I" $ifdef VER40 expanded = false $endif visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading complex param p3a caption="Trap Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p3b caption = "Trap Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p3c caption="Trap Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p4a caption="Point Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p4b caption = "Point Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param p4c caption="Point Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param x1 caption = "Global X Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param x2 caption = "Global X Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param x3 caption = "Global X Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param y1 caption = "Global Y Offset I" default = (0,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param y2 caption = "Global Y Strength I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam complex param y3 caption = "Global Y Power I" default = (1,0) visible = (@seq == 0 || @seq == 1 || @blendType == true) endparam heading caption = "Trap Type Parameters I" $ifdef VER40 expanded = false $endif visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading float param shapeAdjust1 caption = "Shape Adj. 1 I" default = 1 hint = "Shape adjustment parameter 1." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || (@trapType == "Bad Hair Day") || \ (@trapType == "Barbed Wire") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Bighorn Curve") || (@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Lipped Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "M Curve") || \ (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pisces Curve") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") ||\ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") ||(@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Butterfly Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Circle") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Square") || \ (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") ||(@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust2 caption = "Shape Adj. 2 I" default = 1 hint = "Shape adjustment parameter 2." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || (@trapType == "Baubles & Bangles") || \ (@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Floreate Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Harpoon Curve") || \ (@trapType == "Hoops & Plates") || (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pisces Curve") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifolium") || \ (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust3 caption = "Shape Adj. 3 I" default = 1 hint = "Shape adjustment parameter 3." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Baubles & Bangles") ||(@trapType == "Binary Curve") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovate Waves 2") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Seagull Curve") || \ (@trapType == "Smoke Rings") || (@trapType == "Sneering Curve") || \ (@trapType == "Space Debris") ||(@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Ampersand Curve") || \ (@trapType == "Bean Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dumbbell Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Eight Curve") ||(@trapType == "Keppler's Folium") || \ (@trapType == "Lemniscate") || (@trapType == "Lemniscate Corrected") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") || (@trapType == "Piriform") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "Sinus + Cosinus") || \ (@trapType == "Spiral") || (@trapType == "Strange Shape") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Witch of Agnesi")) endparam float param shapeAdjust4 caption = "Shape Adj. 4 I" default = 1 hint = "Shape adjustment parameter 4." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Binary Curve") || (@trapType == "Cabuchon Curve") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Compass Curve") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Hoops & Plates") || \ (@trapType == "Intersecting Ovals") || (@trapType == "Mercury Curve") || \ (@trapType == "Mousehead Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ovate Waves 2") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Space Debris") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Ampersand Curve") ||( @trapType == "Bean Curve") || \ (@trapType == "Cassini Ovals") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || (@trapType == "Devil's Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Hyperbola") || \ (@trapType == "Keppler's Folium") || (@trapType == "Lemniscate") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Sinus + Cosinus") ||(@trapType == "Spiral") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endparam float param shapeAdjust5 caption = "Shape Adj. 5 I" default = 1 hint = "Shape adjustment parameter 5." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Cabuchon Curve") || (@trapType == "Chaos Unleashed") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || (@trapType == "Space Debris") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Cassini Ovals") || \ (@trapType == "Cruciform") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || (@trapType == "Lemniscate") || \ (@trapType == "Limacon") || (@trapType == "Trident of Descartes")) endparam float param shapeAdjust6 caption = "Shape Adj. 6 I" default = 1 hint = "Shape adjustment parameter 6." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ampersand Curve") || (@trapType == "Cruciform") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Limacon")) endparam float param shapeAdjust7 caption = "Shape Adj. 7 I" default = 1 hint = "Shape adjustment parameter 7." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Dürer's Conchoid")) endparam float param shapeAdjust8 caption = "Shape Adj. 8 I" default = 1 hint = "Shape adjustment parameter 8." visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Driftwood Curve") || (@trapType == "Eye of the Needle")) endparam float param zzort caption = "Fission I" hint = "Generally stretches and splits the elements" default = 0 visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve") || \ (@trapType == "Crochet Hooks") ||(@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || (@trapType == "Harpoon Curve") || \ (@trapType == "Hoops & Plates") || (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pisces Curve") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Spiked Cusp") || (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endparam heading caption = "General Parameters II" visible = (@seq == 1 || @seq == 2 || @blendType == true) endheading bool param simplex_dQ caption = "Complexify Distance II" default = false visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam int param var_dQ caption="Distance Mode II" enum="1""2""3""4""5""6""7""8""9" default=0 visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam int param nu_dQ caption="Distance Variation II" enum="1""2""3""4""5""6" default=0 visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam bool param change_dQ caption = "Change Distance Flavor II" default = false visible = @simplex_dQ && @var_dQ > 1 && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam func fndQ caption = "Distance Fn II" default = ident() visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fnd2Q caption = "Distance Fn 2 II" default = ident() visible = @simplex_dQ && @var_dQ > 1 && (@seq == 1 || @seq == 2 || \ @blendType == true) endfunc func fnd3Q caption = "Distance Fn 3 II" default = ident() visible = @simplex_dQ && @nu_dQ > 0 && (@seq == 1 || @seq == 2 || \ @blendType == true) endfunc int param ztestflavorQ caption = "Z Flavor 1 II" enum = "cabs""real""imag""atan2""mod" default = 0 visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam int param z1parQ caption = "Z Flavor 2 II" enum = "normal""cabs""real""imag""atan2""modulus""function" default = 0 visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam func z1fnQ caption="Z Flavor Fn II" default=sqr() visible = @z1parQ == "function" && (@seq == 1 || @seq == 2 || \ @blendType == true) endfunc int param zztypQ caption = "Trap Flavor II" enum = "1""2""3""4""5""6" default = 0 hint = "3 and 4 are different only when 'ZZ Fn 3' is at \ certain values" visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam func zzfn1Q caption = "Trap Flavor Fn 1 II" default = ident() visible = @zztypQ != 5 && (@seq == 1 || @seq == 2 || @blendType == true) endfunc func zzfn2Q caption = "Trap Flavor Fn 2 II" default = sqr() visible = (@zztypQ == 1 || @zztypQ == 2 || @zztypQ == 3 || @zztypQ == 4) && \ (@seq == 1 || @seq == 2 || @blendType == true) endfunc func zzfn3Q caption = "Trap Flavor Fn 3 II" default = flip() visible = (@zztyp == 2 || @zztyp == 3 || @zztyp == 4) && (@seq == 1 || \ @seq == 2 || @blendType == true) endfunc float param sizeQ caption = "Size II" default = 1.0 hint = "The size of the trap shape." visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam float param rotationQ caption = "Rotation II" default = 0.0 hint = "The amount to rotate the trap shape about its origin." visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam float param ratioQ caption = "Height/Width Ratio II" default = 1.0 hint = "The ration of height to width." visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam heading caption = "Distance Parameters II" visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) $ifdef VER40 expanded = false $endif endheading complex param dp1Q caption = "Dist Offset II" default = (0,0) visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param dp2Q caption = "Dist Strength II" default = (1,0) visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param dp3Q caption = "Dist Power II" default = (1,0) visible = @simplex_dQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param dp4Q caption = "Dist Offset 2 II" default = (0,0) visible = @simplex_dQ && @nu_dQ > 0 && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam complex param dp5Q caption = "Dist Strength 2 II" default = (1,0) visible = @simplex_dQ && @nu_dQ > 0 && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam complex param dp6Q caption = "Dist Power 2 II" default = (2,0) visible = @simplex_dQ && @nu_dQ > 0 && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam heading caption = "Z and Shape Parameters II" visible = (@seq == 1 || @seq == 2 || @blendType == true) $ifdef VER40 expanded = false $endif endheading complex param p2aQ caption = "Z Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p2bQ caption = "Z Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p2cQ caption = "Z Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p1aQ caption = "Shape Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p1bQ caption = "Shape Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p1cQ caption = "Shape Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam bool param @splitQ caption = "Split Shape Params II" default = false hint= "Splitting shape params allows independent adjustment of params \ for double traps. If you have changed 'Shape II' param values with \ this box unchecked, please copy and paste the complex values \ into the relevant 'Shape B II' param fields to achieve the same \ appearance" visible = @combineQ && (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p1dQ caption = "Shape B Offset II" default = (0,0) visible = @combineQ && @splitQ && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam complex param p1eQ caption = "Shape B Strength II" default = (1,0) visible = @combineQ && @splitQ && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam complex param p1fQ caption = "Shape B Power II" default = (1,0) visible = @combineQ && @splitQ && (@seq == 1 || @seq == 2 || \ @blendType == true) endparam heading caption = "Trap, Point, X&Y Parameters II" visible = (@seq == 1 || @seq == 2 || @blendType == true) $ifdef VER40 expanded = false $endif endheading complex param p3aQ caption="Trap Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p3bQ caption = "Trap Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p3cQ caption="Trap Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p4aQ caption="Point Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p4bQ caption = "Point Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param p4cQ caption="Point Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param x1Q caption = "Global X Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param x2Q caption = "Global X Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param x3Q caption = "Global X Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param y1Q caption = "Global Y Offset II" default = (0,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param y2Q caption = "Global Y Strength II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam complex param y3Q caption = "Global Y Power II" default = (1,0) visible = (@seq == 1 || @seq == 2 || @blendType == true) endparam heading caption = "Trap Type Parameters II" visible = (@seq == 1 || @seq == 2 || @blendType == true) $ifdef VER40 expanded = false $endif endheading float param shapeAdjust1Q caption = "Shape Adj. 1 II" default = 1 hint = "Shape adjustment parameter 1." visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || (@trapTypeQ == "Bad Hair Day") || \ (@trapTypeQ == "Barbed Wire") || (@trapTypeQ == "Baubles & Bangles") || \ (@trapTypeQ == "Bighorn Curve") || (@trapTypeQ == "Binary Curve") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve")||\ (@trapTypeQ == "Conjoined Circle Curve") || \ (@trapTypeQ == "Cooking Pot Curve") || (@trapTypeQ == "Crochet Hooks") ||\ (@trapTypeQ == "D&U Curve") || (@trapTypeQ == "Dogleg Curve") || \ (@trapTypeQ == "Dribs & Drabs") || (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Floreate Curve")||\ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Harpoon Curve") || (@trapTypeQ == "Hoops & Plates") || \ (@trapTypeQ == "Indented Parabola") || \ (@trapTypeQ == "Intersecting Ovals") || (@trapTypeQ == "Lipped Ovals")||\ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || (@trapTypeQ == "Mousehead Curve") ||\ (@trapTypeQ == "Nesting Birds Curve") || (@trapTypeQ == "Nested Ovals")||\ (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ovate Waves") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Pisces Curve") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") ||\ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || (@trapTypeQ == "Thorned Cross") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") ||(@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || \ (@trapTypeQ == "Bifolium") || (@trapTypeQ == "Bow") || \ (@trapTypeQ == "Butterfly Curve") || (@trapTypeQ == "Cassini Ovals") || \ (@trapTypeQ == "Circle") || (@trapTypeQ == "Cissoid of Diocles") || \ (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform")|| \ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Diamond") || \ (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Keratoid Cusp") || (@trapTypeQ == "Knot Curve") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Links Curve") || (@trapTypeQ == "Maltese Cross Curve") ||\ (@trapTypeQ == "Parabola") || (@trapTypeQ == "Pear-Shaped Curve") || \ (@trapTypeQ == "Piriform") || (@trapTypeQ == "Quadrifolium") || \ (@trapTypeQ == "Rose Curve") || \ (@trapTypeQ == "Serpentine Curve") || (@trapTypeQ == "sin(x)/x") || \ (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Spiral") || (@trapTypeQ == "Square") || \ (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Swastika Curve") || (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium") ||(@trapTypeQ == "Trisectrix of Maclaurin")||\ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endparam float param shapeAdjust2Q caption = "Shape Adj. 2 II" default = 1 hint = "Shape adjustment parameter 2." visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Alien Waves") || (@trapTypeQ == "Baubles & Bangles") || \ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Cooking Pot Curve") || (@trapTypeQ == "Crochet Hooks") ||\ (@trapTypeQ == "D&U Curve") || (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Floreate Curve")||\ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Hoops & Plates") || (@trapTypeQ == "Indented Parabola")||\ (@trapTypeQ == "Intersecting Ovals") || (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || (@trapTypeQ == "Mousehead Curve")|| \ (@trapTypeQ == "Nested Ovals") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ovate Waves") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Pisces Curve") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform") ||\ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Links Curve") || (@trapTypeQ == "Maltese Cross Curve") ||\ (@trapTypeQ == "Pear-Shaped Curve") || (@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Rose Curve") || (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "sin(x)/x") || (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Spiral") || (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Swastika Curve") || (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endparam float param shapeAdjust3Q caption = "Shape Adj. 3 II" default = 1 hint = "Shape adjustment parameter 3." visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Baubles & Bangles") ||(@trapTypeQ == "Binary Curve") || \ (@trapTypeQ == "Cabuchon Curve") || (@trapTypeQ == "Chaos Unleashed") || \ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Cooking Pot Curve") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Harpoon Curve") || (@trapTypeQ == "Hoops & Plates") || \ (@trapTypeQ == "Indented Parabola") || \ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Mousehead Curve") || \ (@trapTypeQ == "Odds 'n Ends") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovate Waves 2") || (@trapTypeQ == "Pisces Curve") || \ (@trapTypeQ == "Plane & Tail") || (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Smoke Rings") || (@trapTypeQ == "Sneering Curve") || \ (@trapTypeQ == "Space Debris") ||(@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Ampersand Curve") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicuspid Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || \ (@trapTypeQ == "Conchoid of Nicomedes") || \ (@trapTypeQ == "Cruciform") || (@trapTypeQ == "Devil's Curve") || \ (@trapTypeQ == "Dumbbell Curve") || (@trapTypeQ == "Dürer's Conchoid") ||\ (@trapTypeQ == "Eight Curve") ||(@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Lemniscate") || (@trapTypeQ == "Lemniscate Corrected") ||\ (@trapTypeQ == "Limacon") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || \ (@trapTypeQ == "Pear-Shaped Curve") || (@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Rose Curve") || (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Spiral") || (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident of Descartes") || (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Witch of Agnesi")) endparam float param shapeAdjust4Q caption = "Shape Adj. 4 II" default = 1 hint = "Shape adjustment parameter 4." visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Compass Curve") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Hoops & Plates") || \ (@trapTypeQ == "Intersecting Ovals") || (@trapTypeQ == "Mercury Curve")||\ (@trapTypeQ == "Mousehead Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ovate Waves 2") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Ampersand Curve") ||( @trapTypeQ == "Bean Curve") || \ (@trapTypeQ == "Cassini Ovals") || \ (@trapTypeQ == "Conchoid of Nicomedes") || \ (@trapTypeQ == "Cruciform") || (@trapTypeQ == "Devil's Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Keppler's Folium") || (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Limacon") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Sinus + Cosinus") ||(@trapTypeQ == "Spiral") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium")) endparam float param shapeAdjust5Q caption = "Shape Adj. 5 II" default = 1 hint = "Shape adjustment parameter 5." visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Cabuchon Curve") || (@trapTypeQ == "Chaos Unleashed") ||\ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Mousehead Curve") || \ (@trapTypeQ == "Odds 'n Ends") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Cassini Ovals") || \ (@trapTypeQ == "Cruciform") || (@trapTypeQ == "Dürer's Conchoid") || \ (@trapTypeQ == "Keppler's Folium") || (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Limacon") || (@trapTypeQ == "Trident of Descartes")) endparam float param shapeAdjust6Q caption = "Shape Adj. 6 II" default = 1 hint = "Shape adjustment parameter 6." visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Cruciform") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Limacon")) endparam float param shapeAdjust7Q caption = "Shape Adj. 7 II" default = 1 hint = "Shape adjustment parameter 7." visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Dürer's Conchoid")) endparam float param shapeAdjust8Q caption = "Shape Adj. 8 II" default = 1 hint = "Shape adjustment parameter 8." visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Driftwood Curve") || (@trapTypeQ == "Eye of the Needle")) endparam float param zzortQ caption = "Fission II" hint = "Generally stretches and splits the elements" default = 0 visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || \ (@trapTypeQ == "Bad Hair Day") || (@trapTypeQ == "Barbed Wire") || \ (@trapTypeQ == "Baubles & Bangles") || (@trapTypeQ == "Bighorn Curve") ||\ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Bird of Paradise") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Adorned") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Conjoined Circle Curve") || \ (@trapTypeQ == "Cooking Pot Curve") || \ (@trapTypeQ == "Crochet Hooks") ||(@trapTypeQ == "D&U Curve") || \ (@trapTypeQ == "Dogleg Curve") || (@trapTypeQ == "Dribs & Drabs") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || \ (@trapTypeQ == "Floreate Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Hoops & Plates") || (@trapTypeQ == "Indented Parabola") || \ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Leaves of Grass") || \ (@trapTypeQ == "Lipped Ovals") || (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || (@trapTypeQ == "Mousehead Curve") ||\ (@trapTypeQ == "Nesting Birds Curve") || (@trapTypeQ == "Nested Ovals")||\ (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ovate Waves") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Pisces Curve") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Spiked Cusp") || (@trapTypeQ == "Squared Circle Curve")||\ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Thorned Cross") || (@trapTypeQ == "Three Point Curve") ||\ (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || (@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Bow") || (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || (@trapTypeQ == "Cochleoid") || \ (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || \ (@trapTypeQ == "Cruciform") || \ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Diamond") || \ (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Keratoid Cusp") || (@trapTypeQ == "Knot Curve") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Line") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || \ (@trapTypeQ == "Parabola") || (@trapTypeQ == "Pear-Shaped Curve") || \ (@trapTypeQ == "Piriform") || (@trapTypeQ == "Quadrifolium") || \ (@trapTypeQ == "Rose Curve") || (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "sin(x)/x") || (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Square") || (@trapTypeQ == "Stirrup Curve") || \ (@trapTypeQ == "Strange Shape") || (@trapTypeQ == "Swastika Curve") || \ (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || (@trapTypeQ == "Trident") || \ (@trapTypeQ == "Trident of Descartes") || (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endparam heading caption = "A Flood of Functions I" $ifdef VER40 expanded = false $endif visible = (@seq == 0 || @seq == 1 || @blendType == true) endheading func fn1a caption="Function 1 I" default=sqr() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn1b caption="Function 1a I" default=sqr() visible = (@pztest == "Atan2 a (x+y)" || @pztest == "Atan2 a (x-y)" || \ @pztest == "Normal" || @pztest == "Real + Imag" || \ @pztest == "Real * Imag" || @pztest == "Real / Imag") && \ (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn2a caption="Function 2 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn3a caption="Function 3 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn4a caption="Function 4 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn5a caption="Function 5 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn6a caption="Function 6 I" default=sin() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn7a caption="Function 7 I" default=cos() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fnp caption="Point Fn 1 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fnp2 caption="Point Fn 2 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fnp3 caption="Point Fn 3 I" default=ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func zfn caption = "Z Fn I" default = ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func xfunc caption = "Global X Fn I" default = ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func yfunc caption = "Global Y Fn I" default = ident() visible = (@seq == 0 || @seq == 1 || @blendType == true) endfunc func fn1 caption = "Shape Function 1 I" default = abs () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")|| \ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || (@trapType == "Dogleg Curve") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || (@trapType == "Harpoon Curve") || \ (@trapType == "Hoops & Plates") || (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Pisces Curve") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || \ (@trapType == "Thorned Cross") || (@trapType == "Three Point Curve") || \ (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Line") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || (@trapType == "Quadrifolium") || \ (@trapType == "Rose Curve") || (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || (@trapType == "Stirrup Curve") || \ (@trapType == "Strange Shape") || (@trapType == "Swastika Curve") || \ (@trapType == "Tangent") || \ (@trapType == "Trefoil") || (@trapType == "Trident") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endfunc func fn2 caption = "Shape Function 2 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || \ (@trapType == "Bad Hair Day") || (@trapType == "Barbed Wire") || \ (@trapType == "Baubles & Bangles") || (@trapType == "Bighorn Curve") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||(@trapType == "Crochet Hooks") || \ (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") ||(@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || (@trapType == "Harpoon Curve") || \ (@trapType == "Hoops & Plates") || (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || \ (@trapType == "Lipped Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || (@trapType == "Mousehead Curve") || \ (@trapType == "Nesting Birds Curve") || \ (@trapType == "Nested Ovals") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ornate Curve") || \ (@trapType == "Ovals") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || (@trapType == "Spiked Cusp") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || (@trapType == "Conchoid of Nicomedes") || \ (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Parabola") || (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Square") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endfunc func fn3 caption = "Shape Function 3 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") ||(@trapType == "Bad Hair Day") ||\ (@trapType == "Baubles & Bangles") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Adorned") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Church Key Curve") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")|| \ (@trapType == "Crochet Hooks") || (@trapType == "D&U Curve") || \ (@trapType == "Dogleg Curve") || (@trapType == "Dribs & Drabs") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Floreate Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Glyph Curve") || (@trapType == "Harpoon Curve") || \ (@trapType == "Hoops & Plates") || (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Leaves of Grass") || (@trapType == "Lipped Ovals") || \ (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Moorish Fantasy") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Omega Curve") || (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || (@trapType == "Pisces Curve") || \ (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || (@trapType == "Simple Curve") || \ (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || (@trapType == "Thorned Cross") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "ArcTangent") || \ (@trapType == "Bean Curve") || (@trapType == "Bicorn Curve") || \ (@trapType == "Bicuspid Curve") || (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Circle") || \ (@trapType == "Cissoid of Diocles") || (@trapType == "Cochleoid") || \ (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Diamond") || \ (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Hyperbola") || \ (@trapType == "Kappa Curve") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || (@trapType == "Knot Curve") || \ (@trapType == "Lemniscate") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || (@trapType == "Parabola") || \ (@trapType == "Pear-Shaped Curve") || \ (@trapType == "Piriform") || \ (@trapType == "Quadrifolium") || (@trapType == "Rose Curve") || \ (@trapType == "Serpentine Curve") || \ (@trapType == "sin(x)/x") || (@trapType == "Sinus + Cosinus") || \ (@trapType == "Stirrup Curve") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Tangent") || \ (@trapType == "Trefoil") || \ (@trapType == "Trident") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross") || (@trapType == "Witch of Agnesi")) endfunc func fn4 caption = "Shape Function 4 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Alien Waves") || \ (@trapType == "Baubles & Bangles") || \ (@trapType == "Binary Curve") || (@trapType == "Bird of Paradise") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Unleashed") || (@trapType == "Compass Curve") || \ (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve")||\ (@trapType == "Cooking Pot Curve") || (@trapType == "Crochet Hooks") || \ (@trapType == "Dribs & Drabs") || (@trapType == "Driftwood Curve") || \ (@trapType == "Glyph Curve") || (@trapType == "Gravity Waves") || \ (@trapType == "Harpoon Curve") || (@trapType == "Hoops & Plates") || \ (@trapType == "Indented Parabola") || \ (@trapType == "Intersecting Ovals") || (@trapType == "M Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || (@trapType == "Nested Ovals") || \ (@trapType == "Odds 'n Ends") || (@trapType == "Omega Curve") || \ (@trapType == "Ovals") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovate Waves") || \ (@trapType == "Ovate Waves 2") || (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || \ (@trapType == "Simple Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Switchback Curve") || \ (@trapType == "Taurus Curve") || (@trapType == "Teardrop Curve") || \ (@trapType == "Tennis Anyone?") || \ (@trapType == "Three Point Curve") || (@trapType == "Tsuba Curve") || \ (@trapType == "Wheel in Trough") || (@trapType == "Whip Curve") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bicorn Curve") || (@trapType == "Bicuspid Curve") || \ (@trapType == "Bifolium") || \ (@trapType == "Bow") || (@trapType == "Butterfly Curve") || \ (@trapType == "Cassini Ovals") || (@trapType == "Cissoid of Diocles") || \ (@trapType == "Cochleoid") || (@trapType == "Cocked Hat") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dumbbell Curve") || \ (@trapType == "Dürer's Conchoid") || (@trapType == "Eight Curve") || \ (@trapType == "Happy Accident") || (@trapType == "Keppler's Folium") || \ (@trapType == "Keratoid Cusp") || \ (@trapType == "Lemniscate Corrected") || (@trapType == "Limacon") || \ (@trapType == "Links Curve") || (@trapType == "Maltese Cross Curve") || \ (@trapType == "Pear-Shaped Curve") ||(@trapType == "Piriform") || \ (@trapType == "Serpentine Curve") || (@trapType == "sin(x)/x") || \ (@trapType == "Sinus + Cosinus") || (@trapType == "Strange Shape") || \ (@trapType == "Swastika Curve") || (@trapType == "Trefoil") || \ (@trapType == "Trident of Descartes") || (@trapType == "Trifolium") || \ (@trapType == "Trisectrix of Maclaurin") || \ (@trapType == "Twisted Cross")) endfunc func fn5 caption = "Shape Function 5 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Baubles & Bangles") || \ (@trapType == "Cabuchon Curve") || \ (@trapType == "Cardinal Points Curve") || \ (@trapType == "Chaos Unleashed") || \ (@trapType == "Compass Curve") || (@trapType == "Conductor's Curve") || \ (@trapType == "Conjoined Circle Curve") || \ (@trapType == "Cooking Pot Curve")||(@trapType == "Crochet Hooks") || \ (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || \ (@trapType == "Intersecting Ovals") || \ (@trapType == "Mercury Curve") || (@trapType == "Miscellanea") || \ (@trapType == "Mousehead Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ornate Curve") || (@trapType == "Ovals") || \ (@trapType == "Ovate Waves") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Plane & Tail") || \ (@trapType == "Seagull Curve") || (@trapType == "Smoke Rings") || \ (@trapType == "Sneering Curve") || (@trapType == "Space Debris") || \ (@trapType == "Spectacles Curve") || \ (@trapType == "Squared Circle Curve") || \ (@trapType == "Squeezed Rectangle Curve") || \ (@trapType == "Stretched Oval Curve") || \ (@trapType == "Swallow Curve") || (@trapType == "Taurus Curve") || \ (@trapType == "Teardrop Curve") || (@trapType == "Tennis Anyone?") || \ (@trapType == "Tsuba Curve") || (@trapType == "Wheel in Trough") || \ (@trapType == "Ampersand Curve") || (@trapType == "Bean Curve") || \ (@trapType == "Bifolium") || (@trapType == "Bow") || \ (@trapType == "Cochleoid") || \ (@trapType == "Conchoid of Nicomedes") || (@trapType == "Cruciform") || \ (@trapType == "Devil's Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Happy Accident") || \ (@trapType == "Keppler's Folium") || (@trapType == "Keratoid Cusp") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Strange Shape") || (@trapType == "Swastika Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium") || (@trapType == "Twisted Cross")) endfunc func fn6 caption = "Shape Function 6 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Baubles & Bangles") || \ (@trapType == "Cabuchon Curve") || (@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Harpoon Curve") || (@trapType == "Mercury Curve") || \ (@trapType == "Mousehead Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ovals") || (@trapType == "Ovate Waves 2") || \ (@trapType == "Plane & Tail") || (@trapType == "Smoke Rings") || \ (@trapType == "Taurus Curve") || \ (@trapType == "Ampersand Curve") ||(@trapType == "Bean Curve") || \ (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Limacon") || (@trapType == "Links Curve") || \ (@trapType == "Maltese Cross Curve") || \ (@trapType == "Trefoil") || (@trapType == "Trident of Descartes") || \ (@trapType == "Trifolium")) endfunc func fn7 caption = "Shape Function 7 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || \ (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Mousehead Curve") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || (@trapType == "Trifolium")) endfunc func fn8 caption = "Shape Function 8 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Driftwood Curve") || \ (@trapType == "Eye of the Needle") || (@trapType == "Glyph Curve") || \ (@trapType == "Mercury Curve") || (@trapType == "Odds 'n Ends") || \ (@trapType == "Ampersand Curve") || (@trapType == "Dürer's Conchoid") || \ (@trapType == "Keppler's Folium") || \ (@trapType == "Trefoil") || (@trapType == "Trifolium")) endfunc func fn9 caption = "Shape Function 9 I" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 0 || @seq == 1 || @blendType == true) && \ ((@trapType == "Eye of the Needle") || \ (@trapType == "Odds 'n Ends") || \ (@trapType == "Dürer's Conchoid")) endfunc heading caption = "A Flood of Functions II " visible = (@seq == 1 || @seq == 2 || @blendType == true) $ifdef VER40 expanded = false $endif endheading func fn1aQ caption="Function 1 II" default=sqr() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn1bQ caption="Function 1a II" default=sqr() visible = (@pztestQ == "Atan2 a (x+y)" || @pztestQ == "Atan2 a (x-y)" || \ @pztestQ == "Normal" || @pztestQ == "Real + Imag" || \ @pztestQ == "Real * Imag" || @pztestQ == "Real / Imag") && \ (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn2aQ caption="Function 2 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn3aQ caption="Function 3 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn4aQ caption="Function 4 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn5aQ caption="Function 5 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn6aQ caption="Function 6 II" default=sin() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn7aQ caption="Function 7 II" default=cos() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fnpQ caption="Point Fn 1 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fnp2Q caption="Point Fn 2 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fnp3Q caption="Point Fn 3 II" default=ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func zfnQ caption = "Z Fn II" default = ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func xfuncQ caption = "Global X Fn II" default = ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func yfuncQ caption = "Global Y Fn II" default = ident() visible = (@seq == 1 || @seq == 2 || @blendType == true) endfunc func fn1Q caption = "Shape Function 1 II" default = abs () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || \ (@trapTypeQ == "Bad Hair Day") || (@trapTypeQ == "Barbed Wire") || \ (@trapTypeQ == "Baubles & Bangles") || (@trapTypeQ == "Bighorn Curve") ||\ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Bird of Paradise") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Adorned") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Conjoined Circle Curve")|| \ (@trapTypeQ == "Cooking Pot Curve") || (@trapTypeQ == "Crochet Hooks") ||\ (@trapTypeQ == "D&U Curve") || (@trapTypeQ == "Dogleg Curve") || \ (@trapTypeQ == "Dribs & Drabs") || (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || \ (@trapTypeQ == "Floreate Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Hoops & Plates") || (@trapTypeQ == "Indented Parabola")||\ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Leaves of Grass") || (@trapTypeQ == "Lipped Ovals") || \ (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || (@trapTypeQ == "Mousehead Curve") ||\ (@trapTypeQ == "Nesting Birds Curve") || (@trapTypeQ == "Nested Ovals")||\ (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ovate Waves") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Pisces Curve") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || (@trapTypeQ == "Spiked Cusp") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Thorned Cross") || (@trapTypeQ == "Three Point Curve") ||\ (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || (@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Bow") || (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || (@trapTypeQ == "Cochleoid") || \ (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform")|| \ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Diamond") || \ (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Keratoid Cusp") || (@trapTypeQ == "Knot Curve") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Line") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || \ (@trapTypeQ == "Parabola") || (@trapTypeQ == "Pear-Shaped Curve") || \ (@trapTypeQ == "Piriform") || (@trapTypeQ == "Quadrifolium") || \ (@trapTypeQ == "Rose Curve") || (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "sin(x)/x") || (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Square") || (@trapTypeQ == "Stirrup Curve") || \ (@trapTypeQ == "Strange Shape") || (@trapTypeQ == "Swastika Curve") || \ (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || (@trapTypeQ == "Trident") || \ (@trapTypeQ == "Trident of Descartes") || (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endfunc func fn2Q caption = "Shape Function 2 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || \ (@trapTypeQ == "Bad Hair Day") || (@trapTypeQ == "Barbed Wire") || \ (@trapTypeQ == "Baubles & Bangles") || (@trapTypeQ == "Bighorn Curve") ||\ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Bird of Paradise") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Adorned") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Conjoined Circle Curve") || \ (@trapTypeQ == "Cooking Pot Curve")||(@trapTypeQ == "Crochet Hooks") || \ (@trapTypeQ == "D&U Curve") || \ (@trapTypeQ == "Dogleg Curve") ||(@trapTypeQ == "Dribs & Drabs") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || \ (@trapTypeQ == "Floreate Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Hoops & Plates") || (@trapTypeQ == "Indented Parabola")||\ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Leaves of Grass") || \ (@trapTypeQ == "Lipped Ovals") || (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || (@trapTypeQ == "Mousehead Curve") ||\ (@trapTypeQ == "Nesting Birds Curve") || \ (@trapTypeQ == "Nested Ovals") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ornate Curve") || \ (@trapTypeQ == "Ovals") || (@trapTypeQ == "Ovate Waves") || \ (@trapTypeQ == "Ovate Waves 2") || (@trapTypeQ == "Pisces Curve") || \ (@trapTypeQ == "Plane & Tail") || (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || (@trapTypeQ == "Spiked Cusp") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || (@trapTypeQ == "Thorned Cross") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || (@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Bow") || (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || (@trapTypeQ == "Cochleoid") || \ (@trapTypeQ == "Cocked Hat") || (@trapTypeQ == "Conchoid of Nicomedes")||\ (@trapTypeQ == "Cruciform") || \ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Diamond") || \ (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Keratoid Cusp") || (@trapTypeQ == "Knot Curve") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Links Curve") || (@trapTypeQ == "Maltese Cross Curve") ||\ (@trapTypeQ == "Parabola") || (@trapTypeQ == "Pear-Shaped Curve") || \ (@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Quadrifolium") || (@trapTypeQ == "Rose Curve") || \ (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "sin(x)/x") || (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Square") || \ (@trapTypeQ == "Stirrup Curve") || (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Swastika Curve") || (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endfunc func fn3Q caption = "Shape Function 3 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || (@trapTypeQ == "Bad Hair Day") || \ (@trapTypeQ == "Baubles & Bangles") || \ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Bird of Paradise") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Adorned") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Church Key Curve")||\ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Conjoined Circle Curve") || \ (@trapTypeQ == "Cooking Pot Curve")|| \ (@trapTypeQ == "Crochet Hooks") || (@trapTypeQ == "D&U Curve") || \ (@trapTypeQ == "Dogleg Curve") || (@trapTypeQ == "Dribs & Drabs") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || \ (@trapTypeQ == "Floreate Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Hoops & Plates") || (@trapTypeQ == "Indented Parabola")||\ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Leaves of Grass") || (@trapTypeQ == "Lipped Ovals") || \ (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Moorish Fantasy") || \ (@trapTypeQ == "Mousehead Curve") || (@trapTypeQ == "Nested Ovals") || \ (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Omega Curve") || (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ornate Curve") || (@trapTypeQ == "Ovate Waves") || \ (@trapTypeQ == "Ovate Waves 2") || (@trapTypeQ == "Pisces Curve") || \ (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || (@trapTypeQ == "Simple Curve") || \ (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || (@trapTypeQ == "Thorned Cross") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || (@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "ArcTangent") || \ (@trapTypeQ == "Bean Curve") || (@trapTypeQ == "Bicorn Curve") || \ (@trapTypeQ == "Bicuspid Curve") || (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Bow") || (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Circle") || \ (@trapTypeQ == "Cissoid of Diocles") || (@trapTypeQ == "Cochleoid") || \ (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform") ||\ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Diamond") || \ (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Hyperbola") || \ (@trapTypeQ == "Kappa Curve") || (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Keratoid Cusp") || (@trapTypeQ == "Knot Curve") || \ (@trapTypeQ == "Lemniscate") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || (@trapTypeQ == "Parabola") || \ (@trapTypeQ == "Pear-Shaped Curve") || \ (@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Quadrifolium") || (@trapTypeQ == "Rose Curve") || \ (@trapTypeQ == "Serpentine Curve") || \ (@trapTypeQ == "sin(x)/x") || (@trapTypeQ == "Sinus + Cosinus") || \ (@trapTypeQ == "Stirrup Curve") || (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Swastika Curve") || (@trapTypeQ == "Tangent") || \ (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross") || (@trapTypeQ == "Witch of Agnesi")) endfunc func fn4Q caption = "Shape Function 4 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Alien Waves") || (@trapTypeQ == "Baubles & Bangles") || \ (@trapTypeQ == "Binary Curve") || (@trapTypeQ == "Bird of Paradise") || \ (@trapTypeQ == "Cabuchon Curve") || \ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Unleashed") || (@trapTypeQ == "Compass Curve") || \ (@trapTypeQ == "Conductor's Curve") || \ (@trapTypeQ == "Conjoined Circle Curve")||\ (@trapTypeQ == "Cooking Pot Curve") || (@trapTypeQ == "Crochet Hooks") ||\ (@trapTypeQ == "Dribs & Drabs") || (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Glyph Curve") || (@trapTypeQ == "Gravity Waves") || \ (@trapTypeQ == "Harpoon Curve") || (@trapTypeQ == "Hoops & Plates") || \ (@trapTypeQ == "Indented Parabola") || \ (@trapTypeQ == "Intersecting Ovals") || (@trapTypeQ == "M Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Mousehead Curve") || (@trapTypeQ == "Nested Ovals") || \ (@trapTypeQ == "Odds 'n Ends") || (@trapTypeQ == "Omega Curve") || \ (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ornate Curve") || (@trapTypeQ == "Ovate Waves") || \ (@trapTypeQ == "Ovate Waves 2") || (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || \ (@trapTypeQ == "Simple Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Switchback Curve") || \ (@trapTypeQ == "Taurus Curve") || (@trapTypeQ == "Teardrop Curve") || \ (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Three Point Curve") || (@trapTypeQ == "Tsuba Curve") || \ (@trapTypeQ == "Wheel in Trough") || (@trapTypeQ == "Whip Curve") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Bean Curve") || \ (@trapTypeQ == "Bicorn Curve") || (@trapTypeQ == "Bicuspid Curve") || \ (@trapTypeQ == "Bifolium") || \ (@trapTypeQ == "Bow") || (@trapTypeQ == "Butterfly Curve") || \ (@trapTypeQ == "Cassini Ovals") || (@trapTypeQ == "Cissoid of Diocles")||\ (@trapTypeQ == "Cochleoid") || (@trapTypeQ == "Cocked Hat") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform") ||\ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Dumbbell Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || (@trapTypeQ == "Eight Curve") || \ (@trapTypeQ == "Happy Accident") || (@trapTypeQ == "Keppler's Folium") ||\ (@trapTypeQ == "Keratoid Cusp") || \ (@trapTypeQ == "Lemniscate Corrected") || (@trapTypeQ == "Limacon") || \ (@trapTypeQ == "Links Curve") || (@trapTypeQ == "Maltese Cross Curve") ||\ (@trapTypeQ == "Pear-Shaped Curve") ||(@trapTypeQ == "Piriform") || \ (@trapTypeQ == "Serpentine Curve") || (@trapTypeQ == "sin(x)/x") || \ (@trapTypeQ == "Sinus + Cosinus") || (@trapTypeQ == "Strange Shape") || \ (@trapTypeQ == "Swastika Curve") || (@trapTypeQ == "Trefoil") || \ (@trapTypeQ == "Trident of Descartes") || (@trapTypeQ == "Trifolium") || \ (@trapTypeQ == "Trisectrix of Maclaurin") || \ (@trapTypeQ == "Twisted Cross")) endfunc func fn5Q caption = "Shape Function 5 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Baubles & Bangles") ||(@trapTypeQ == "Cabuchon Curve")||\ (@trapTypeQ == "Cardinal Points Curve") || \ (@trapTypeQ == "Chaos Unleashed") || \ (@trapTypeQ == "Compass Curve") || (@trapTypeQ == "Conductor's Curve") ||\ (@trapTypeQ == "Conjoined Circle Curve") || \ (@trapTypeQ == "Cooking Pot Curve")||(@trapTypeQ == "Crochet Hooks") || \ (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Harpoon Curve") || \ (@trapTypeQ == "Intersecting Ovals") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Miscellanea") || \ (@trapTypeQ == "Mousehead Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ornate Curve") || (@trapTypeQ == "Ovals") || \ (@trapTypeQ == "Ovate Waves") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Plane & Tail") || \ (@trapTypeQ == "Seagull Curve") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Sneering Curve") || (@trapTypeQ == "Space Debris") || \ (@trapTypeQ == "Spectacles Curve") || \ (@trapTypeQ == "Squared Circle Curve") || \ (@trapTypeQ == "Squeezed Rectangle Curve") || \ (@trapTypeQ == "Stretched Oval Curve") || \ (@trapTypeQ == "Swallow Curve") || (@trapTypeQ == "Taurus Curve") || \ (@trapTypeQ == "Teardrop Curve") || (@trapTypeQ == "Tennis Anyone?") || \ (@trapTypeQ == "Tsuba Curve") || (@trapTypeQ == "Wheel in Trough") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Bean Curve") || \ (@trapTypeQ == "Bifolium") || (@trapTypeQ == "Bow") || \ (@trapTypeQ == "Cochleoid") || \ (@trapTypeQ == "Conchoid of Nicomedes") || (@trapTypeQ == "Cruciform") ||\ (@trapTypeQ == "Devil's Curve") || (@trapTypeQ == "Dürer's Conchoid") || \ (@trapTypeQ == "Happy Accident") || \ (@trapTypeQ == "Keppler's Folium") || (@trapTypeQ == "Keratoid Cusp") || \ (@trapTypeQ == "Limacon") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || \ (@trapTypeQ == "Strange Shape") || (@trapTypeQ == "Swastika Curve") || \ (@trapTypeQ == "Trefoil") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium") || (@trapTypeQ == "Twisted Cross")) endfunc func fn6Q caption = "Shape Function 6 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) &&\ ((@trapTypeQ == "Baubles & Bangles") || \ (@trapTypeQ == "Cabuchon Curve") || (@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Harpoon Curve") || (@trapTypeQ == "Mercury Curve") || \ (@trapTypeQ == "Mousehead Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ovals") || (@trapTypeQ == "Ovate Waves 2") || \ (@trapTypeQ == "Plane & Tail") || (@trapTypeQ == "Smoke Rings") || \ (@trapTypeQ == "Taurus Curve") || \ (@trapTypeQ == "Ampersand Curve") ||(@trapTypeQ == "Bean Curve") || \ (@trapTypeQ == "Dürer's Conchoid") || \ (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Limacon") || (@trapTypeQ == "Links Curve") || \ (@trapTypeQ == "Maltese Cross Curve") || \ (@trapTypeQ == "Trefoil") || (@trapTypeQ == "Trident of Descartes") || \ (@trapTypeQ == "Trifolium")) endfunc func fn7Q caption = "Shape Function 7 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || \ (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Mousehead Curve") || \ (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Dürer's Conchoid")||\ (@trapTypeQ == "Keppler's Folium") || (@trapTypeQ == "Trifolium")) endfunc func fn8Q caption = "Shape Function 8 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Driftwood Curve") || \ (@trapTypeQ == "Eye of the Needle") || (@trapTypeQ == "Glyph Curve") || \ (@trapTypeQ == "Mercury Curve") || (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Ampersand Curve") || (@trapTypeQ == "Dürer's Conchoid")||\ (@trapTypeQ == "Keppler's Folium") || \ (@trapTypeQ == "Trefoil") || (@trapTypeQ == "Trifolium")) endfunc func fn9Q caption = "Shape Function 9 II" default = ident () hint = "Changes the Shapes of the elements and their relations" visible = (@seq == 1 || @seq == 2 || @blendType == true) && \ ((@trapTypeQ == "Eye of the Needle")|| (@trapTypeQ == "Odds 'n Ends") || \ (@trapTypeQ == "Dürer's Conchoid")) endfunc heading caption = "Masking" visible = @msk == 0 endheading heading caption = "Masking [active]" visible = @msk != 0 endheading float param msk caption = "Distance Masking" default = 0.0 endparam param invt caption = "Invert Mask" default = false endparam 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 = "Textures" 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""Pattern 1""Pattern 2""Pattern 3" 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""Pattern 1""Pattern 2""Pattern 3" 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""Pattern 1""Pattern 2""Pattern 3" 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""Pattern 1""Pattern 2""Pattern 3" 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""Pattern 1""Pattern 2""Pattern 3" 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 } :*********************************************** GaussianInteger+ { ; ; Colors by the relationship of the orbit of Z to Gaussian ; Integers. ; ; Written by Kerry Mitchell, tweaked by Toby Marshall. ; Many thanks to Kerry, Damien M. Jones, Ron Barnett, ; Andreas Lober, Michèle Dessureault and Dennis Magar ; for their kind permission to use their code. ; ; version 1.0, 10 Apr 2008 ; version 1.1, 14 Apr 2008 -- rationalized and standardized ; limited iter code. ; init: float r=0.0 float rmin=1.0e12 float rmax=0.0 float rave=0.0 float total=0.0 float t=0.0 float x = 0 float y = 0 float xx = 0 float yy = 0 int iter=0 int itermin=0 int itermax=0 zmin=(0.0,0.0) zmax=(0.0,0.0) if(@norm==1) ; pixel normalization normfac=#pixel elseif(@norm==2) ; factor normalization normfac=@fac elseif(@norm==3) ; f(z) normalization normfac=@normfunc(#z) else ; no normalization normfac=(1.0,0.0) endif float logfac=@logseed complex z1 = (0,0) 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 bool trapped = false float texture = 0.0 p = (0.0,0.0) pfb = (0.0,0.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 float aaa = 0 float t2 = 0 float tx = abs(@tp) float a2 = 0 complex tz = (0,0) float ct = abs(@tc*1000) float tmp = 0 float rn = real(#random) float texture_tr = 0.0 complex ptr = (0,0) float za = 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 int it = 0 int i = 0 complex z_values[#maxiter+1] bool trapping = false float fiter = 0 float patnum = 0 loop: complex z1 = #z 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 temp2=z1 float xx = real(temp2) float yy = imag(temp2) if @nuflav2 == true if @opxy == "X+Y" temp2 = (@fn8((@nufnx(xx-@px1)*@px2)^@px3 + \ @nufny(flip(yy-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" temp2 = (@fn8((@nufnx(xx-@px1)*@px2)^@px3 - \ @nufny(flip(yy-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" temp2 = (@fn8(@nufny((flip(yy-@py1)*@py2)^@py3) - \ @nufnx(xx-@px1)*@px2)^@px3)^@pwr endif else if @opxy == "X+Y" temp2 = (@fn8((@nufnx(xx-@px1)*@px2)^@px3 + \ flip(@nufny(yy-@py1)*@py2)^@py3))^@pwr elseif @opxy == "X-Y" temp2 = (@fn8((@nufnx(xx-@px1)*@px2)^@px3 - \ flip(@nufny(yy-@py1)*@py2)^@py3))^@pwr elseif @opxy == "Y-X" temp2 = (@fn8(flip((@nufny(yy-@py1)*@py2)^@py3) - \ @nufnx(xx-@px1)*@px2)^@px3)^@pwr endif endif if @varType == "Normal" temp2 = @varFn((temp2-@xb1)*@xb2)^@xb3 elseif @varType == "Modulus" temp2 = @varFn((|temp2|-@xb1)*@xb2)^@xb3 elseif @varType == "Atan2" temp2 = @varFn(atan2(temp2-@xb1)*@xb2)^@xb3 elseif @varType == "Real" temp2 = @varFn(real(temp2-@xb1)*@xb2)^@xb3 elseif @varType == "Imag" temp2 = @varFn(imag(temp2-@xb1)*@xb2)^@xb3 endif if @opadd == "None" temp2 = temp2 elseif @opadd == "+(X+Y)" temp2 = temp2 + (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X+Y)" temp2 = temp2 - (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x + \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X-Y)" temp2 = temp2 + (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd== "-(X-Y)" temp2 = temp2 - (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x - \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y-X)" temp2 = temp2 + (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y-X)" temp2 = temp2 - (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y - \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X*Y)" temp2 = temp2 + (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X*Y)" temp2 = temp2 - (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x * \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(X/Y)" temp2 = temp2 + (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X/Y)" temp2 = temp2 - (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x / \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y/X)" temp2 = temp2 + (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y/X)" temp2 = temp2 - (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y / \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "+(X^Y)" temp2 = temp2 + (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "-(X^Y)" temp2 = temp2 - (@nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x ^ \ flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y)) elseif @opadd == "+(Y^X)" temp2 = temp2 + (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) elseif @opadd == "-(Y^X)" temp2 = temp2 - (flip(@nufuncxty((yy-@xtra1y)*@xtra2y)^@xtra3y ^ \ @nufuncxtx((xx-@xtra1x)*@xtra2x)^@xtra3x)) endif if @randomize logfac=4*logfac*(1-logfac) temp2=temp2*(1-@randomsize*logfac) endif if(@inttype==1) ; trunc temp=@intfunc3(trunc(@intfunc(@intfunc2(temp2/normfac)))) elseif(@inttype==2) ; floor temp=@intfunc3(floor(@intfunc(@intfunc2(temp2/normfac)))) elseif(@inttype==3) ; ceil temp=@intfunc3(ceil(@intfunc(@intfunc2(temp2/normfac)))) elseif(@inttype==4) ; function temp=@intfunc3(recip(@intfunc(@intfunc2(temp2/normfac)))) else ; round temp=@intfunc3(round(@intfunc(@intfunc2(temp2/normfac)))) endif remain=temp2-temp*normfac r=cabs(remain) total=total+r rave=total/iter if @follow == true if iter >= @skip1 && iter < @skip2 if @version < 1.1 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if @type == "Closest" if(rrmax) rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true elseif @type == "First" if(r<@th) rmin=r+@rp*.01 zmin=temp2 itermin=iter endif if(r>@th) rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true elseif @type == "Last" if(r<@th) && !trapped rmin=r+@rp*.01 zmin=temp2 itermin=iter endif if(r>@th) && !trapped rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true endif endif endif elseif @follow == false if @version < 1.1 if @reverse if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter)) ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif patnum = patnum + 1 else ; new version if @reverse == false if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (!trapping); we are not currently trapping trapping = true; so start if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we are currently trapping trapping = false; so stop fiter = fiter + @trapiter; do this many iterations endif endwhile endif else if (@trapalliterations == true) fiter = fiter - 1; one less to go before we trap while (fiter < 0.0); iterations all used up if (trapping); we are currently trapping trapping = false; so stop if (patnum < @pattern * (@trapskip + @trapiter))|| patnum == 0 ; execute skip code under these conditions fiter = fiter + @trapskip; skip this many iterations endif else; we aren't currently trapping trapping = true; so start fiter = fiter + @trapiter; do this many iterations endif endwhile endif endif if @pattern != 0 patnum = patnum + 1 endif endif if (@trapalliterations == false || trapping) ; if we're checking for traps... if iter >= @skip1 && iter < @skip2 if @type == "Closest" if(rrmax) rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true elseif @type == "First" if(r<@th) rmin=r+@rp*.01 zmin=temp2 itermin=iter endif if(r>@th) rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true elseif @type == "Last" if(r<@th) && !trapped rmin=r+@rp*.01 zmin=temp2 itermin=iter endif if(r>@th) && !trapped rmax=r+@rp*.01 zmax=temp2 itermax=iter endif trapped = true endif endif endif endif iter = iter + 1 final: if trapped if tx > 0 if @ztyp == "#z" tz = ((#z-@txia1)*@txib1)^@txic1 elseif @ztyp == "Morph z" tz = ((z1-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap Min z" tz = ((zmin-@txia1)*@txib1)^@txic1 elseif @ztyp == "Trap Max z" tz = ((zmax-@txia1)*@txib1)^@txic1 elseif @ztyp == "Distance" tz = ((r-@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 Min z" tz = ((zmin-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Trap Max z" tz = ((zmax-@txia4)*@txib4)^@txic4 elseif @ztyp4 == "Distance" tz = ((r-@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 Min z" tz = ((zmin-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Trap Max z" tz = ((zmax-@txia2)*@txib2)^@txic2 elseif @ztyp2 == "Distance" tz = ((r-@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 if (@gnarl_amt != 0) if @ztyp3 == "#z" tz = ((#z-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Morph z" tz = ((z1-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap Min z" tz = ((zmin-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Trap Max z" tz = ((zmax-@txia3)*@txib3)^@txic3 elseif @ztyp3 == "Distance" tz = ((r-@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 Min z" tz = ((zmin-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Trap Max z" tz = ((zmax-@trxia)*@trxib)^@trxic elseif @ztyp5 == "Distance" tz = ((r-@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 if(@colorby==1) ; iteration @ min tmp=0.01*real(@colorfn(itermin-@cp)^@colorparam) elseif (@colorby==2) ; modulated iteration tmp=real(@colorfn((itermin-@cp)^@colorparam2%@itermod/@itermod)) elseif(@colorby==3) ; angle @ min t=atan2(zmin) t=t/pi if(t<0.0) t=t+2.0 endif tmp=0.5*real(@colorfn((t-@cp)^@colorparam)) elseif (@colorby==4); min magnitude tmp=0.5*cabs(@colorfn((zmin-@cp)^@colorparam)) elseif (@colorby==5); min real tmp=0.5*real(@colorfn((zmin-@cp)^@colorparam)) elseif (@colorby==6); min imag tmp=0.5*imag(@colorfn((zmin-@cp)^@colorparam)) elseif(@colorby==7) ; maximum distance tmp=real(@colorfn((rmax-@cp)^@colorparam)) elseif(@colorby==8) ; iteration @ max tmp=0.01*real(@colorfn((itermax-@cp)^@colorparam)) elseif (@colorby==9) ; modulated iteration max tmp=real(@colorfn((itermax-@cp)^@colorparam2%@itermod/@itermod)) elseif(@colorby==10) ; angle @ max t=atan2(zmax) t=t/pi if(t<0.0) t=t+2.0 endif tmp=0.5*real(@colorfn((t-@cp)^@colorparam)) elseif (@colorby==11); max magnitude tmp=0.5*cabs(@colorfn((zmax-@cp)^@colorparam)) elseif (@colorby==12); max real tmp=0.5*real(@colorfn((zmax-@cp)^@colorparam)) elseif (@colorby==13); max imag tmp=0.5*imag(@colorfn((zmax-@cp)^@colorparam)) elseif(@colorby==14) ; average distance tmp=real(@colorfn((rave-@cp)^@colorparam)) elseif(@colorby==15) ; min/mean/max angle zmax=(rave-rmin)+flip(rmax-rave) t=atan2(zmax) t=t/pi if(t<0.0) t=t+2.0 endif tmp=0.5*real(@colorfn((t-@cp)^@colorparam)) elseif(@colorby==16) ; max/min ratio tmp=real(@colorfn((rmax/(rmin+1.e-12)-@cp)^@colorparam)) else ; minimum distance tmp=real(@colorfn(rmin)) endif if @colorby == 7 || @colorby == 8 || @colorby == 9 ||\ @colorby == 10 || @colorby == 11 || @colorby == 12 || @colorby == 13 if @invt == false if 1/@msk < rmax && !(@msk == 0) #solid = true endif elseif @invt == true if 1/@msk > rmax && !(@msk == 0) #solid = true endif endif else if @invt == false if 1/@msk < rmin && !(@msk == 0) #solid = true endif elseif @invt == true if 1/@msk > rmin && !(@msk == 0) #solid = true endif endif endif #index = real(@indfn(tmp^@shad+(texture)))+(tx*@txamt/10)/100 + t2*\ (tx*@txamt/10)/100+ rn*@r*(tx*@txamt/10)/100 else #solid = true endif default: title="Gaussian Integer +" float param version caption = "Version" default = 1.1 visible = false endparam int param type caption = "Trapping" enum = "Closest""First""Last" default = 0 endparam float param th caption = "Threshold" default = .2 visible = @type != 0 endparam float param rp caption = "Edge Definition" default = 0 min = 0 endparam float param shad caption = "Shading" default = 1 hint = "If you have extraneous bands at the outside of your figure \ try adjusting this value to less than 1" endparam func indfn caption = "Final Index Function" default = ident() hint = "Changes the 'shading' of the elements." endfunc param inttype caption="Integer Type" default=0 enum="round(z)" "trunc(z)" "floor(z)" "ceil(z)" "recip(z)" hint="Selects between four ways of reducing the orbit value z to an \ integer. Each will produce different effects." endparam func intfunc caption = "Integer Function" default = ident() endfunc func intfunc2 caption = "Integer Function 2" default = ident() endfunc func intfunc3 caption = "Integer Function 3" default = ident() endfunc param colorby caption="Color By" default=0 enum="minimum distance" "iteration @ min" "modulated iteration @ min" \ "angle @ min" "magnitude @ min" "real @ min" "imag @ min" \ "maximum distance" "iteration @ max" "modulated iteration @ max" \ "angle @ max" "magnitude @ max" "real @ max" "imag @ max" \ "average distance" "min/mean/max angle" "max/min ratio" hint="Selects what information from the fractal calculation is used to \ calculate the color of each point." endparam float param itermod caption="Mod Iter Ranges" default=4.0 visible=@colorby == 2 || @colorby == 8 endparam float param cp caption = "Color Offset" default = 0 visible = @colorby != 0 endparam complex param colorparam caption="Color Power" default=(1,0) visible = @colorby != 0 && @colorby != 2 && @colorby != 8 endparam float param colorparam2 caption="Mod Iter Color Power" default=1.0 visible = @colorby == 2 || @colorby == 8 endparam func colorfn caption="Color Function" default=ident() visible=@colorby != 0 endfunc param norm caption="Normalization" default=0 enum="none" "pixel" "factor" "f(z)" hint="Selects an optional normalization algorithm that is applied to the \ integer values." endparam param fac caption=" Factor" default=(2.0,1.0) visible = @norm == "factor" hint="Specifies the normalization factor that is used if Normalization is \ set to 'factor'." endparam func normfunc caption=" Function" default=ident() hint="Selects the normalization function that is used if Normalization is \ set to 'f(z)'." visible = @norm == "f(z)" endfunc param randomize caption="Randomize" default=false hint="If checked, a random factor is applied to z at every iteration \ before finding the Gaussian integer." endparam param randomsize caption="Random Size" default=(0.1,0) hint="Specifies the size of the random factor to use if Randomize is \ checked. Larger values give more randomization." visible = @randomize endparam param logseed caption="Random Seed" default=0.1 min=0.0 max=1.0 hint="Specifies the randomization seed, between 0 and 1, to use if \ Randomize is checked. Every seed gives a different image." visible = @randomize endparam int param skip1 caption = "Start Iteration" default = 0 hint = "Indicates the number of the iteration where trapping \ will start. Can be used in conjunction with the next \ param to display any number of consecutive iters at any position." endparam int param skip2 caption = "Max Iterations" default = 100000 hint = "Indicates the maximum number of iterations that \ can be displayed, starting from the outermost. \ Can be used in conjuction with the last param to \ display any number of consecutive iters at any position." endparam bool param trapalliterations caption = "Limited Iterations" default = false hint = "Allows selectable blocks of iterations \ to be trapped and others skipped in a repeating pattern." endparam int param trapskip caption = "Iters to Trap [*skip]" default = 3 min = 1 hint = "This is the number of iterations to show for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to hide." visible = @trapalliterations == true endparam int param trapiter caption = "Iters to Skip [*trap]" default = 3 min = 1 hint = "This is the number of iterations to hide for traps \ in a single block. When the 'Reverse Trapped/Skipped \ Iters' param is unchecked this becomes the number \ of iterations to show." visible = @trapalliterations == true endparam int param pattern caption = "Pattern Repeat" default = 0 min = 0 hint = "This determines the number of times the \ blocks of trapped/skipped iters repeat, after which all \ further iters are skipped. If the 'Reverse Shown/Hidden \ Iters' param is checked, all further iters are instead \ shown after this number of repeats. A value of 0 creates \ infinite repeats" visible = @trapalliterations == true endparam bool param reverse caption = "*[Reverse Trapped/Skipped Iters]" default = false visible = @trapalliterations == true endparam $ifdef VER40 heading text = "*Checking this box reverses the function of \ the 'Iters to Trap' and 'Iters to Skip' \ params, as indicated in brackets in \ those params above." visible = @trapalliterations == true endheading $endif bool param follow caption = "Pattern Follows Start Iter" default = true hint = "If checked, the blocks of trapped/skipped \ iters start from the chosen start iter. \ If unchecked, the blocks start from iter 0, \ whether or not it is skipped." visible = @trapalliterations == true endparam heading caption = "Masking" visible = @msk == 0 $ifdef VER40 expanded = false $endif endheading heading caption = "Masking [active]" visible = @msk != 0 endheading float param msk caption = "Distance Masking" default = 0.0 endparam param invt caption = "Invert Mask" default = false endparam ; Morph Parameters-------------------------------------------------- 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) $ifdef VER40 expanded = false $endif 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 tha2 caption = "Morph -> Morph II" default = false endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 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 = @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 = @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 = @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 = @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 = @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 = @tha2 && @change > 5 endparam complex param exp1 caption = "Bias 1" default = (1,0) endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @change > 5 endparam complex param exp4 caption = "Bias Z1" default = (1,0) visible = @tha2 endparam complex param exp5 caption = "Bias Z2" default = (1,0) visible = @tha2 && @change > 0 endparam complex param exp6 caption = "Bias Z3" default = (1,0) visible = @tha2 && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @change > 5 endparam complex param tw4 caption = "Twist Z1" default = (0,0) visible = @tha2 endparam complex param tw5 caption = "Twist Z2" default = (0,0) visible = @tha2 && @change > 0 endparam complex param tw6 caption = "Twist Z3" default = (0,0) visible = @tha2 && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @change > 5 endfunc func nufunc4 caption = "Morph function Z1" default = ident () visible = @tha2 endfunc func nufunc5 caption = "Morph function Z2" default = zero () visible = @tha2 && @change > 0 endfunc func nufunc6 caption = "Morph function Z3" default = zero () visible = @tha2 && @change > 5 endfunc heading caption = "New Shaping Parameters" $ifdef VER40 expanded = false $endif endheading int param varType caption = "X/Y Species" enum = "Normal""Modulus""Atan2""Real""Imag" default = 0 endparam func varFn caption = "X/Y Function" default = ident() endfunc complex param xb1 caption = "X/Y Offset" default = (0,0) endparam complex param xb2 caption = "X/Y Strength" default = (1,0) endparam complex param xb3 caption = "X/Y Power" default = (1,0) endparam func fn8 caption = "Shaping Function" default = ident() endfunc func nufnx caption = "X Function" default = ident () endfunc func nufny caption = "Y Function" default = ident () endfunc bool param nuflav2 caption = "Change Y Fn Flavor" default = false endparam complex param pwr caption = "Overall Power" default = (1,0) endparam complex param px1 caption = "X Offset" default = (0,0) endparam complex param py1 caption = "Y Offset" default = (0,0) endparam complex param px2 caption = "X Strength" default = (1,0) endparam complex param py2 caption = "Y Strength" default = (1,0) endparam complex param px3 caption = "X Power" default = (1,0) endparam complex param py3 caption = "Y Power" default = (1,0) endparam int param opxy caption = "X/Y Operator" enum = "X+Y""X-Y""Y-X" default = 0 hint = "Changes the way X and Y combine to form Z" visible = @varType != "Modulus" endparam int param opadd caption = "Extra X/Y" enum = "None""+(X+Y)""-(X+Y)""+(X-Y)""-(X-Y)""+(Y-X)""-(Y-X)""+(X*Y)"\ "-(X*Y)""+(X/Y)""-(X/Y)""+(Y/X)""-(Y/X)""+(X^Y)""-(X^Y)""+(Y^X)""-(Y^X)" default = 0 hint = "These an extra set of X and Y values to the definition of Z whose \ strength and associated functions can be varied according to the \ parameters below" endparam func nufuncxtx caption = "Extra X Fn" default = sin() hint = "Varies the function associated with the X variable in the \ extra X/Y set." visible = @opadd > 0 endfunc func nufuncxty caption = "Extra Y Fn" default = sin() hint = "Varies the function associated with the Y variable in the \ extra X/Y set." visible = @opadd > 0 endfunc complex param xtra1x caption = "Extra X Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 endparam complex param xtra1y caption = "Extra Y Offset" default = (0,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 endparam complex param xtra2x caption = "Extra X Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 endparam complex param xtra2y caption = "Extra Y Strength" default = (1,0) hint = "Varies the strength in the extra X/Y set" visible = @opadd > 0 endparam complex param xtra3x caption = "Extra X Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 endparam complex param xtra3y caption = "Extra Y Power" default = (1,0) hint = "Varies the offset in the extra X/Y set" visible = @opadd > 0 endparam heading caption = "Texture Parameters" visible = (@rnd2 == 0 && @fbmtxt == 0 && @decamt == 0 && @tp == 0 && \ @gnarl_amt == 0) $ifdef VER40 expanded = true $endif endheading heading caption = "Texture Parameters [active]" visible = (@rnd2 != 0 || @fbmtxt != 0 || @decamt != 0 || @tp != 0 || \ @gnarl_amt != 0) endheading param advt caption = "Show 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 $ifdef VER40 expanded = false $endif endheading heading caption = "fBm [active]" visible = @advt && @fbmtxt != 0 endheading float param fbmtxt caption = "fBm Tx Amount" default = 0.0 visible = @advt 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 endparam param ztyp4 caption = "Choose z type" enum = "#z""Morph z""Trap Min z""Trap Max z""Distance" 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 && (@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 endfunc func fntx9 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'fBm Initialization'" visible = @advt endfunc func fbmrfn1 caption = "fBm Function 1" default = ident() hint = "Try changing this to achieve different fBm \ 'cloud' distribution and look" visible = @advt endfunc func fbmifn1 caption = "fBm Function 2" default = ident() hint = "Try changing this to achieve different fBm \ 'cloud' distribution and look" visible = @advt 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 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 endfunc float param ha caption = "Distribution 1" default = 1 visible = @advt endparam float param hb caption = "Distribution 2" default = 1 visible = @advt endparam float param hc caption = "Distribution 3" default = 1 visible = @advt endparam float param hd caption = "Distribution 4" default = 1 visible = @advt endparam complex param txia4 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txib4 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && (@fbminit < 5 || @fbminit > 14 && @fbminit < 21) endparam complex param txic4 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && (@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 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 && !(@fbminit == 0 ||@fbminit == 5 || @fbminit == 6 ||\ @fbminit == 21) endparam float param fbmscale caption = "fBm Scale" default = 1.0 visible = @advt endparam complex param fbmoffset caption = "fBm Offset" default = (0,0) visible = @advt endparam float param fbmangle caption = "fBm Rotation" default = 0.0 visible = @advt endparam float param fbmstep caption = "fBm Scale Step" default = 0.5 visible = @advt endparam float param fbmastep caption = "fBm Rotation Step" default = 37.0 visible = @advt endparam param fbmoct caption = "fBm Octaves" default = 7 min = 1 visible = @advt endparam float param fbmpower caption = "fBm Exponent" default = 2.0 visible = @advt endparam float param fbm_limit caption = "fBm Limit" default = 0.0 visible = @advt endparam bool param fbm_sgn caption = "Soften Texture" default = true visible = @advt endparam heading caption = "Decimal" visible = @advt && @decamt == 0 $ifdef VER40 expanded = false $endif endheading heading caption = "Decimal [active]" visible = @advt && @decamt != 0 endheading float param decamt caption = "Decimal Tx Amount" default = 0.0 visible = @advt 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 endparam param ztyp2 caption = "Init z type" enum = "#z""Morph z""Trap Min z""Trap Max z""Distance" 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 && (@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 endfunc func fntx5 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Decimal Initialization'" visible = @advt 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 endparam func fndec caption = "Type Function" default = atanh () hint = "Active when 'Decimal Type' = 'All Functions'" visible = @advt && @dec_type == 4 endfunc complex param txia2 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && (@dec_init < 5 || @dec_init > 14) endparam complex param txib2 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && (@dec_init < 5 || @dec_init > 14) endparam complex param txic2 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && (@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 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 && @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 endparam float param dec_limit caption = "Decimal Limit" default = 2.0 hint = "Limits the texture depth" min = 0.0 visible = @advt 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 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 && !(@dec_init == 0 ||@dec_init == 5 || @dec_init == 6) endparam float param dec_size caption = "Decimal Size" default = 1.0 visible = @advt endparam param dec_sgn caption = "Apply Decimal Sign?" default = true visible = @advt endparam heading caption = "Popgnarl" visible = @advt && @gnarl_amt == 0 $ifdef VER40 expanded = false $endif endheading heading caption = "Popgnarl [active]" visible = @advt && @gnarl_amt != 0 endheading float param gnarl_amt caption = "Popgnarl Amount" default = 0.0 min = 0.0 visible = @advt 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 endparam param ztyp3 caption = "Choose z type" enum = "#z""Morph z""Trap Min z""Trap Max z""Distance" 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 && (@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 endfunc func fntx7 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Popgnarl Initialization'" visible = @advt endfunc complex param txia3 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txib3 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && (@gnarl_init < 5 || @gnarl_init > 14 && \ @gnarl_init < 21) endparam complex param txic3 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && (@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 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 && !(@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 endparam func fng caption = "Mode Function" default = abs() hint = "Acts on the variables in 'Popgnarl Mode'" visible = @advt && @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 endparam func fngnarl caption = "Scaling Function" default = atanh () visible = @advt && @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 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 && @gnarl_scaling > 4 endparam param gnarl_form caption = "Popgnarl Formula" enum = "gnarl" "popcorn" "popsicle" "tannous" "narlog" visible = @advt endparam float param gnarl_limit caption = "Popgnarl Limit" default = 1.0 hint = "Limits the texture depth" min = 0.0 visible = @advt endparam float param gnarl_size caption = "Popgnarl Size" default = 1.0 visible = @advt endparam int param gnarl_octaves caption = "Popgnarl Octaves" default = 5 min = 1 visible = @advt endparam heading caption = "Geometrix" visible = @advt && @trtxt == 0 $ifdef VER40 expanded = false $endif endheading heading caption = "Geometrix [active]" visible = @advt && @trtxt != 0 endheading float param trtxt caption = "Geometrix Tx Amt" default = 0.0 visible = @advt 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 endparam param ztyp5 caption = "Choose z type" enum = "#z""Morph z""Trap Min z""Trap Max z""Distance" 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 && (@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 endfunc func fntx11 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in \ 'Geometrix Initialization'" visible = @advt endfunc complex param trxia caption = "Pattern 1" default = (0.0,0.0) visible = @advt && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxib caption = "Pattern 2" default = (1.0,0.0) visible = @advt && (@trinit < 5 || @trinit > 14 && @trinit < 21) endparam complex param trxic caption = "Pattern 3" default = (1.0,0.0) visible = @advt && (@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 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 && !(@trinit == 0 ||@trinit == 5 || @trinit == 6 ||\ @trinit == 21) endparam float param exp caption = "Contrast" default = 0.6 visible = @advt 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 endparam float param trp1 caption = "Scale" default = 1 visible = @advt 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 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 endparam float param trp3 caption = "Definition 3" default = .7 hint = "Works interactively with other 'Definition' params. Higher values \ yield more texture definition" visible = @advt endparam float param shad1 caption = "Shading 1" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt endparam float param shad2 caption = "Shading 2" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt endparam float param shad3 caption = "Shading 3" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt endparam float param shad4 caption = "Shading 4" default = 1 hint = "Affects the shading of certain areas of texture" visible = @advt endparam func fnzr caption = "Z function 1" default = ident() visible = @advt endfunc func fnzi caption = "Z function 2" default = ident() visible = @advt endfunc func fn1tx caption = "Real function" default = sqrt() visible = @advt endfunc func fn2tx caption = "Imag function" default = ident() visible = @advt endfunc func fn3tx caption = "Overall function" default = asin() visible = @advt endfunc float param geo_limit caption = "Geometrix Limit" default = 0.0 hint = "Low values limit texture contrast. Zero is 'off'" visible = @advt endparam bool param geo_sgn caption = "Soften Texture" default = false visible = @advt endparam heading caption = "Additional Texture" visible = @advt && @tp == 0 $ifdef VER40 expanded = false $endif endheading heading caption = "Additional Texture [active]" visible = @advt && @tp != 0 endheading float param tp caption = "Add'l Tx Amount" hint = "'Blends' in texture" default = 0.0 visible = @advt 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 endparam param ztyp caption = "Choose z type" enum = "#z""Morph z""Trap Min z""Trap Max z""Distance" 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 && (@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 endfunc func fntx2 caption = "Init Function 2" default = ident() hint = "Modifies the 2nd variable defined in\ 'Add'l Tx Initialization'" visible = @advt endfunc func fntx3 caption = "Add'l Tx Function" default = trunc() visible = @advt endfunc complex param txia1 caption = "Tx Pattern 1" default = (0.0,0.0) visible = @advt && (@tt < 5 || @tt > 14) endparam complex param txib1 caption = "Tx Pattern 2" default = (1.0,0.0) visible = @advt && (@tt < 5 || @tt > 14) endparam complex param txic1 caption = "Tx Pattern 3" default = (1.0,0.0) visible = @advt && (@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 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 && !(@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 endparam float param ts caption = "Scale 2" default = 2.0 visible = @advt 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 endparam float param r caption = "Randomness" default = 0.0 visible = @advt endparam bool param add_sgn caption = "Soften Texture" default = true visible = @advt endparam }