Tulip3(BOTH) { init: int i = 0 trap_z = 0 int iter = 0 int trap_iter = 0 float a = 0 float r = 1 float c = 0.2 float min_dist = 1e20 float dist = 0 loop: complex z1 = #z if @change == "1" z1 = @nufunc(z1-@tw)^@exp1 elseif @change == "2" z1 = @nufunc(z1-@tw)^@exp3+@nufunc2((z1-@tw2)^@exp1) elseif @change == "3" z1 = @nufunc(z1-@tw)^@exp3-@nufunc2((z1-@tw2)^@exp1) elseif @change == "4" z1 = @nufunc(z1-@tw)^@exp3*@nufunc2((z1-@tw2)^@exp1) elseif @change == "5" z1 = @nufunc(z1-@tw)^@exp3/@nufunc2((z1-@tw2)^@exp1) elseif @change == "6" z1 = @nufunc(z1-@tw)^@exp3^@nufunc2((z1-@tw2)^@exp1) elseif @change == "7" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "8" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "9" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "10" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "11" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif endif i = 0 while i < @bailout a = ceil(cabs(@fn1(z1*r*c))) - ceil(imag(@fn2(@fn3(z1+@b)))) i = i + 1 endwhile dist = cabs (z1) if a < r r = a trap_z = z1 min_dist = dist trap_iter = iter endif iter = iter + 1 final: if @cmode == 0 ;distance #index = min_dist elseif @cmode == 1;iteration #index = 0.01 * trap_iter elseif @cmode == 2;magnitude #index = cabs (trap_z) elseif @cmode == 3;real #index = abs(real(trap_z)) elseif @cmode == 4;imag #index = abs(imag(trap_z)) elseif @cmode == 5;angle float angle = atan2(trap_z) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle #index = angle elseif @cmode == 6;mod iter #index = ((trap_iter)%8) / 8 endif default: title = "Tulip3" func fn1 caption = "Grandfather" default = cos() endfunc func fn2 caption = "Father" default = exp() endfunc func fn3 caption = "Son" default = atan() endfunc param b caption = "Power" default = 2.0 endparam param bailout caption = "Bailout" default = 4 endparam param @cmode caption = "Coloring Mode" enum = "Distance" "Iteration" "Magnitude" "Real" "Imaginary" "Angle" \ "Mod. Iteration" endparam param trp caption = "More Parameters" hint = "Additional parameters and functions." default = true endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @trp == true endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @trp == true endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @trp == true && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @trp == true && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @trp == true endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @trp == true && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @trp == true && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @trp == true && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @trp == true endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @trp == true && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @trp == true && @change > 5 endfunc } Tulip2(BOTH) { init: int i = 0 trap_z = 0 int iter = 0 int trap_iter = 0 float a = 0 float r = 1 float min_dist = 1e20 float dist = 0 loop: complex z1 = #z if @change == "1" z1 = @nufunc(z1-@tw)^@exp1 elseif @change == "2" z1 = @nufunc(z1-@tw)^@exp3+@nufunc2((z1-@tw2)^@exp1) elseif @change == "3" z1 = @nufunc(z1-@tw)^@exp3-@nufunc2((z1-@tw2)^@exp1) elseif @change == "4" z1 = @nufunc(z1-@tw)^@exp3*@nufunc2((z1-@tw2)^@exp1) elseif @change == "5" z1 = @nufunc(z1-@tw)^@exp3/@nufunc2((z1-@tw2)^@exp1) elseif @change == "6" z1 = @nufunc(z1-@tw)^@exp3^@nufunc2((z1-@tw2)^@exp1) elseif @change == "7" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "8" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "9" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "10" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "11" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif endif i = 0 while i < @bailout a = exp(@b*r-cabs(log(z1*r))) - ceil(imag(@fn1(@fn2(@fn3(z1+@b))))) i = i + 1 endwhile dist = cabs (z1) if a < r r = a trap_z = z1 min_dist = dist trap_iter = iter endif iter = iter + 1 final: if @cmode == 0 ;distance #index = min_dist elseif @cmode == 1;iteration #index = 0.01 * trap_iter elseif @cmode == 2;magnitude #index = cabs (trap_z) elseif @cmode == 3;real #index = abs(real(trap_z)) elseif @cmode == 4;imag #index = abs(imag(trap_z)) elseif @cmode == 5;angle float angle = atan2(trap_z) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle #index = angle elseif @cmode == 6;mod iter #index = ((trap_iter)%8) / 8 endif default: title = "Tulip2" func fn1 caption = "Grandfather" default = cos() endfunc func fn2 caption = "Father" default = exp() endfunc func fn3 caption = "Son" default = atan() endfunc param b caption = "Power" default = 2.0 endparam param bailout caption = "Bailout" default = 4 endparam param @cmode caption = "Coloring Mode" enum = "Distance" "Iteration" "Magnitude" "Real" "Imaginary" "Angle" \ "Mod. Iteration" endparam param trp caption = "More Parameters" hint = "Additional parameters and functions." default = true endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @trp == true endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @trp == true endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @trp == true && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @trp == true && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @trp == true endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @trp == true && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @trp == true && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @trp == true && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @trp == true endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @trp == true && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @trp == true && @change > 5 endfunc } Tulip(BOTH) { init: int i = 0 trap_z = 0 int iter = 0 int trap_iter = 0 float a = 0 float r = 1 float min_dist = 1e20 float dist = 0 c = 1000 loop: complex z1 = #z if @change == "1" z1 = @nufunc(z1-@tw)^@exp1 elseif @change == "2" z1 = @nufunc(z1-@tw)^@exp3+@nufunc2((z1-@tw2)^@exp1) elseif @change == "3" z1 = @nufunc(z1-@tw)^@exp3-@nufunc2((z1-@tw2)^@exp1) elseif @change == "4" z1 = @nufunc(z1-@tw)^@exp3*@nufunc2((z1-@tw2)^@exp1) elseif @change == "5" z1 = @nufunc(z1-@tw)^@exp3/@nufunc2((z1-@tw2)^@exp1) elseif @change == "6" z1 = @nufunc(z1-@tw)^@exp3^@nufunc2((z1-@tw2)^@exp1) elseif @change == "7" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3+(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "8" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3-(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "9" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3*(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "10" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3/(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif elseif @change == "11" if @op == "+" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ +@nufunc3((z1-@tw3)^@exp2)) elseif @op == "-" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ -@nufunc3((z1-@tw3)^@exp2)) elseif @op == "*" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ *@nufunc3((z1-@tw3)^@exp2)) elseif @op == "/" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ /@nufunc3((z1-@tw3)^@exp2)) elseif @op == "^" z1 = @nufunc(z1-@tw)^@exp3^(@nufunc2((z1-@tw2)^@exp1)\ ^@nufunc3((z1-@tw3)^@exp2)) endif endif i = 0 while i < @bailout a = |cabs(@fn2(@con2*z1))|/|z1| r = |@fn1(@con1*r^2+(@fn3(@fn2(c))))| i = i + 1 endwhile dist = cabs (z1) if a < r r = a trap_z = z1 min_dist = dist trap_iter = iter endif iter = iter + 1 final: if @cmode == 0 ;distance #index = min_dist elseif @cmode == 1;iteration #index = 0.01 * trap_iter elseif @cmode == 2;magnitude #index = cabs (trap_z) elseif @cmode == 3;real #index = abs(real(trap_z)) elseif @cmode == 4;imag #index = abs(imag(trap_z)) elseif @cmode == 5;angle float angle = atan2(trap_z) if angle < 0 angle = angle + 2 * #pi endif angle = 1 / (2 * #pi) * angle #index = angle elseif @cmode == 6;mod iter #index = ((trap_iter)%8) / 8 endif default: title = "Tulip" func fn1 caption = "A Function" default = sin () endfunc func fn2 caption = "Another Function" default = tanh () endfunc func fn3 caption = "Final Function" default = cosh () endfunc param con1 caption = "First Constant" default = 1.0 endparam param con2 caption = "Second Constant" default = 1.0 endparam param bailout caption = "Bailout" default = 4 endparam param @cmode caption = "Coloring Mode" enum = "Distance" "Iteration" "Magnitude" "Real" "Imaginary" "Angle" \ "Mod. Iteration" endparam param trp caption = "More Parameters" hint = "Additional parameters and functions." default = true endparam param change caption = "Morph" enum = "1""2""3""4""5""6""7""8""9""10""11" default = 0 visible = @trp == true endparam complex param exp1 caption = "Bias 1" default = (1,0) visible = @trp == true endparam complex param exp3 caption = "Bias 2" default = (1,0) visible = @trp == true && @change > 0 endparam complex param exp2 caption = "Bias 3" default = (1,0) visible = @trp == true && @change > 5 endparam complex param tw caption = "Twist 1" default = (0,0) visible = @trp == true endparam complex param tw2 caption = "Twist 2" default = (0,0) visible = @trp == true && @change > 0 endparam complex param tw3 caption = "Twist 3" default = (0,0) visible = @trp == true && @change > 5 endparam param op caption = "Operator" enum = "+""-""*""/""^" default = 0 visible = @trp == true && @change > 5 endparam func nufunc caption = "Morph function 1" default = ident() visible = @trp == true endfunc func nufunc2 caption = "Morph function 2" default = ident () visible = @trp == true && @change > 0 endfunc func nufunc3 caption = "Morph function 3" default = ident () visible = @trp == true && @change > 5 endfunc }