mmf
Class MMF_MultiLayer

Object
  extended by common:Generic
      extended by common:Coloring
          extended by common:DirectColoring
              extended by mmf:MMF_MultiLayerBase
                  extended by mmf:MMF_MultiLayer

class 
MMF_MultiLayerBase:MMF_MultiLayer

PLEASE NOTE This class is obsolete/deprecated.
Instead of using this class and its derived classes you should use
the MMF Layered class and its derived classes.


Ultra Fractal Source

Toggle UF Source Code Display

 class MMF_MultiLayer(MMF_MultiLayerBase) {
 ; PLEASE NOTE This class is obsolete/deprecated.<br>
 ; Instead of using this class and its derived classes you should use<br>
 ; the MMF Layered class and its derived classes.<br>
 public:
   import "common.ulb"
   import "Standard.ulb"
   ; <p>
   ; @param pparent typically 'this' from the parent or zero
   func MMF_MultiLayer(Generic pparent)
     DirectColoring.DirectColoring(pparent)
     int i = 0
     repeat
       m_Use[i] = false
       m_QuickGradient[i] = 0
     until (i=i+1)>=10
     m_Use[10] = false
     if @colour0>0 && @colour0<11
       m_Use[@colour0-1] = true
     endif
     if @colour1>0 && @colour1<11
       m_Use[@colour1-1] = true
     endif
     if @colour2>0 && @colour2<11
       m_Use[@colour2-1] = true
     endif
     if @colour3>0 && @colour3<11
       m_Use[@colour3-1] = true
     endif
     if @colour4>0 && @colour4<11
       m_Use[@colour4-1] = true
     endif
     if @colour5>0 && @colour5<11
       m_Use[@colour5-1] = true
     endif
     if @colour6>0 && @colour6<11
       m_Use[@colour6-1] = true
     endif
     if @colour7>0 && @colour7<11
       m_Use[@colour7-1] = true
     endif
     if @colour8>0 && @colour8<11
       m_Use[@colour8-1] = true
     endif
     if @colour9>0 && @colour9<11
       m_Use[@colour9-1] = true
     endif
     if m_Use[0]
       m_Colouring[0] = new @f_colouring0(this)
     endif
     if m_Use[1]
       m_Colouring[1] = new @f_colouring1(this)
     endif
     if m_Use[2]
       m_Colouring[2] = new @f_colouring2(this)
     endif
     if m_Use[3]
       m_Colouring[3] = new @f_colouring3(this)
     endif
     if m_Use[4]
       m_Colouring[4] = new @f_colouring4(this)
     endif
     if m_Use[5]
       m_Colouring[5] = new @f_colouring5(this)
     endif
     if m_Use[6]
       m_Colouring[6] = new @f_colouring6(this)
     endif
     if m_Use[7]
       m_Colouring[7] = new @f_colouring7(this)
     endif
     if m_Use[8]
       m_Colouring[8] = new @f_colouring8(this)
     endif
     if m_Use[9]
       m_Colouring[9] = new @f_colouring9(this)
     endif
     if @f_colouring10!=MMF_MultiLayerNone
       m_Use[10] = true
       m_LayerColouring = MMF_MultiLayerBase(m_Colouring[10] = new @f_colouring10(this))
     endif
     if @colour0>0
       if @colour0==11
         m_Merge0 = new @f_merge0(this)
       elseif @colour0==12
         m_QuickGradient[0] = new @f_quickgradient0(this)
         m_Merge0 = new @f_gradientmerge0(this)
       elseif GradientColoring(m_Colouring[@colour0-1])
         m_Merge0 = new @f_gradientmerge0(this)
       else
         m_Merge0 = new @f_merge0(this)
       endif
     endif
     if @colour1>0
       if @colour1==11
         m_Merge1 = new @f_merge1(this)
       elseif @colour1==12
         m_QuickGradient[1] = new @f_quickgradient1(this)
         m_Merge1 = new @f_gradientmerge1(this)
       elseif GradientColoring(m_Colouring[@colour1-1])
         m_Merge1 = new @f_gradientmerge1(this)
       else
         m_Merge1 = new @f_merge1(this)
       endif
     endif
     if @colour2>0
       if @colour2==11
         m_Merge2 = new @f_merge2(this)
       elseif @colour2==12
         m_QuickGradient[2] = new @f_quickgradient2(this)
         m_Merge2 = new @f_gradientmerge2(this)
       elseif GradientColoring(m_Colouring[@colour2-1])
         m_Merge2 = new @f_gradientmerge2(this)
       else
         m_Merge2 = new @f_merge2(this)
       endif
     endif
     if @colour3>0
       if @colour3==11
         m_Merge3 = new @f_merge3(this)
       elseif @colour3==12
         m_QuickGradient[3] = new @f_quickgradient3(this)
         m_Merge3 = new @f_gradientmerge3(this)
       elseif GradientColoring(m_Colouring[@colour3-1])
         m_Merge3 = new @f_gradientmerge3(this)
       else
         m_Merge3 = new @f_merge3(this)
       endif
     endif
     if @colour4>0
       if @colour4==11
         m_Merge4 = new @f_merge4(this)
       elseif @colour4==12
         m_QuickGradient[4] = new @f_quickgradient4(this)
         m_Merge4 = new @f_gradientmerge4(this)
       elseif GradientColoring(m_Colouring[@colour4-1])
         m_Merge4 = new @f_gradientmerge4(this)
       else
         m_Merge4 = new @f_merge4(this)
       endif
     endif
     if @colour5>0
       if @colour5==11
         m_Merge5 = new @f_merge5(this)
       elseif @colour5==12
         m_QuickGradient[5] = new @f_quickgradient5(this)
         m_Merge5 = new @f_gradientmerge5(this)
       elseif GradientColoring(m_Colouring[@colour5-1])
         m_Merge5 = new @f_gradientmerge5(this)
       else
         m_Merge5 = new @f_merge5(this)
       endif
     endif
     if @colour6>0
       if @colour6==11
         m_Merge6 = new @f_merge6(this)
       elseif @colour6==12
         m_QuickGradient[6] = new @f_quickgradient6(this)
         m_Merge6 = new @f_gradientmerge6(this)
       elseif GradientColoring(m_Colouring[@colour6-1])
         m_Merge6 = new @f_gradientmerge6(this)
       else
         m_Merge6 = new @f_merge6(this)
       endif
     endif
     if @colour7>0
       if @colour7==11
         m_Merge7 = new @f_merge7(this)
       elseif @colour7==12
         m_QuickGradient[7] = new @f_quickgradient7(this)
         m_Merge7 = new @f_gradientmerge7(this)
       elseif GradientColoring(m_Colouring[@colour7-1])
         m_Merge7 = new @f_gradientmerge7(this)
       else
         m_Merge7 = new @f_merge7(this)
       endif
     endif
     if @colour8>0
       if @colour8==11
         m_Merge8 = new @f_merge8(this)
       elseif @colour8==12
         m_QuickGradient[8] = new @f_quickgradient8(this)
         m_Merge8 = new @f_gradientmerge8(this)
       elseif GradientColoring(m_Colouring[@colour8-1])
         m_Merge8 = new @f_gradientmerge8(this)
       else
         m_Merge8 = new @f_merge8(this)
       endif
     endif
     if @colour9>0
       if @colour9==11
         m_Merge9 = new @f_merge9(this)
       elseif @colour9==12
         m_QuickGradient[9] = new @f_quickgradient9(this)
         m_Merge9 = new @f_gradientmerge9(this)
       elseif GradientColoring(m_Colouring[@colour9-1])
         m_Merge9 = new @f_gradientmerge9(this)
       else
         m_Merge9 = new @f_merge9(this)
       endif
     endif
   endfunc
   ; <p>
   ; Initialisation (per pixel)<br>
   ; @param pz initial z from the formula
   ; @param ppixel the location (normally #pixel)
   func Init(complex pz, complex ppixel)
     int i = 0
     repeat
       if m_Use[i]
         m_Colouring[i].Init(pz, ppixel)
       endif
       if m_QuickGradient[i]
         m_QuickGradient[i].Init(pz, ppixel)
       endif
     until (i=i+1)>=10
     if m_Use[10]
       m_Colouring[10].Init(pz, ppixel)
     endif
   endfunc
   ; <p>
   ; @param pz the z value
   func Iterate(complex pz)
     int i = 0
     repeat
       if m_Use[i]
         m_Colouring[i].Iterate(pz)
       endif
     until (i=i+1)>=11
   endfunc
   ; <p>
   ; @param pz the z value
   ; @param clr the colour to use as the base colour
   ; @return the colour
   color func ResultUsingBaseColor(complex pz, color clr)
     bool m_Solid[10]
     int i = 0
     repeat
       if m_Use[i]
         if GradientColoring(m_Colouring[i])
           GradientColoring tmpGC = GradientColoring(m_Colouring[i])
           m_Index[i] = tmpGC.ResultIndex(pz)
         else
           m_Colour[i] = m_Colouring[i].Result(pz)
         endif
         if @v_mmfmultilayer>0
           m_Solid[i] = m_Colouring[i].IsSolid()
         endif
       endif
     until (i=i+1)>=10
     if @colour0>0
       if @colour0==11
         clr = m_Merge0.FullMerge(clr, @clr0)
       elseif @colour0==12
         clr = m_Merge0.GradientMerge(clr, m_QuickGradient[0].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour0-1]
         clr = m_Merge0.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour0-1])
         clr = m_Merge0.GradientMerge(clr, m_Index[@colour0-1])
       else
         clr = m_Merge0.FullMerge(clr, m_Colour[@colour0-1])
       endif
     endif
     if @colour1>0
       if @colour1==11
         clr = m_Merge1.FullMerge(clr, @clr1)
       elseif @colour1==12
         clr = m_Merge1.GradientMerge(clr, m_QuickGradient[1].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour1-1]
         clr = m_Merge1.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour1-1])
         clr = m_Merge1.GradientMerge(clr, m_Index[@colour1-1])
       else
         clr = m_Merge1.FullMerge(clr, m_Colour[@colour1-1])
       endif
     endif
     if @colour2>0
       if @colour2==11
         clr = m_Merge2.FullMerge(clr, @clr2)
       elseif @colour2==12
         clr = m_Merge2.GradientMerge(clr, m_QuickGradient[2].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour2-1]
         clr = m_Merge2.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour2-1])
         clr = m_Merge2.GradientMerge(clr, m_Index[@colour2-1])
       else
         clr = m_Merge2.FullMerge(clr, m_Colour[@colour2-1])
       endif
     endif
     if @colour3>0
       if @colour3==11
         clr = m_Merge3.FullMerge(clr, @clr3)
       elseif @colour3==12
         clr = m_Merge3.GradientMerge(clr, m_QuickGradient[3].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour3-1]
         clr = m_Merge3.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour3-1])
         clr = m_Merge3.GradientMerge(clr, m_Index[@colour3-1])
       else
         clr = m_Merge3.FullMerge(clr, m_Colour[@colour3-1])
       endif
     endif
     if @colour4>0
       if @colour4==11
         clr = m_Merge4.FullMerge(clr, @clr4)
       elseif @colour4==12
         clr = m_Merge4.GradientMerge(clr, m_QuickGradient[4].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour4-1]
         clr = m_Merge4.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour4-1])
         clr = m_Merge4.GradientMerge(clr, m_Index[@colour4-1])
       else
         clr = m_Merge4.FullMerge(clr, m_Colour[@colour4-1])
       endif
     endif
     if @colour5>0
       if @colour5==11
         clr = m_Merge5.FullMerge(clr, @clr5)
       elseif @colour5==12
         clr = m_Merge5.GradientMerge(clr, m_QuickGradient[5].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour5-1]
         clr = m_Merge5.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour5-1])
         clr = m_Merge5.GradientMerge(clr, m_Index[@colour5-1])
       else
         clr = m_Merge5.FullMerge(clr, m_Colour[@colour5-1])
       endif
     endif
     if @colour6>0
       if @colour6==11
         clr = m_Merge6.FullMerge(clr, @clr6)
       elseif @colour6==12
         clr = m_Merge6.GradientMerge(clr, m_QuickGradient[6].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour6-1]
         clr = m_Merge6.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour6-1])
         clr = m_Merge6.GradientMerge(clr, m_Index[@colour6-1])
       else
         clr = m_Merge6.FullMerge(clr, m_Colour[@colour6-1])
       endif
     endif
     if @colour7>0
       if @colour7==11
         clr = m_Merge7.FullMerge(clr, @clr7)
       elseif @colour7==12
         clr = m_Merge7.GradientMerge(clr, m_QuickGradient[7].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour7-1]
         clr = m_Merge7.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour7-1])
         clr = m_Merge7.GradientMerge(clr, m_Index[@colour7-1])
       else
         clr = m_Merge7.FullMerge(clr, m_Colour[@colour7-1])
       endif
     endif
     if @colour8>0
       if @colour8==11
         clr = m_Merge8.FullMerge(clr, @clr8)
       elseif @colour8==12
         clr = m_Merge8.GradientMerge(clr, m_QuickGradient[8].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour8-1]
         clr = m_Merge8.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour8-1])
         clr = m_Merge8.GradientMerge(clr, m_Index[@colour8-1])
       else
         clr = m_Merge8.FullMerge(clr, m_Colour[@colour8-1])
       endif
     endif
     if @colour9>0
       if @colour9==11
         clr = m_Merge9.FullMerge(clr, @clr9)
       elseif @colour9==12
         clr = m_Merge9.GradientMerge(clr, m_QuickGradient[9].ResultIndex(pz))
       elseif @v_mmfmultilayer>0 && m_Solid[@colour9-1]
         clr = m_Merge9.SolidMerge(clr)
       elseif GradientColoring(m_Colouring[@colour9-1])
         clr = m_Merge9.GradientMerge(clr, m_Index[@colour9-1])
       else
         clr = m_Merge9.FullMerge(clr, m_Colour[@colour9-1])
       endif
     endif
     if m_Use[10]
       clr = m_LayerColouring.ResultUsingBaseColor(pz, clr)
     endif
     return clr
   endfunc
   ; <p>
   ; @param pz the z value
   ; @return the colour
   color func Result(complex pz)
     return ResultUsingBaseColor(pz, @basecolour)
   endfunc
 
 private:
   Coloring m_Colouring[11]
   GradientColoring m_QuickGradient[10]
   MMF_MultiLayerBase m_LayerColouring
   MMF_LayerMerge m_Merge0
   MMF_LayerMerge m_Merge1
   MMF_LayerMerge m_Merge2
   MMF_LayerMerge m_Merge3
   MMF_LayerMerge m_Merge4
   MMF_LayerMerge m_Merge5
   MMF_LayerMerge m_Merge6
   MMF_LayerMerge m_Merge7
   MMF_LayerMerge m_Merge8
   MMF_LayerMerge m_Merge9
   color m_Colour[10]
   float m_Index[10]
   bool m_Use[11]
 
 default:
   title = "MMF Multi Layer"
   heading
     text = "PLEASE NOTE that this colouring is obsolete/deprecated. If \
             creating a new UPR then you should use colourings such as \
             'MMF Layered' instead."
   endheading
   int param v_mmfmultilayer
     caption = "Version (MMF Multi Layer)"
     enum = "1.0" "1.1"
     default = 1
     hint = "This field is to absolutely ensure backward compatibility, \
             the default will always be set to the latest version, but \
             there may be some cases where an older effect that you like \
             is lost in an update and you could still use it by selecting \
             the older version number."
     visible = @v_mmfmultilayer<1
   endparam
   MMF_MultiLayerBase param f_colouring10
     caption = "More Layers"
     default = MMF_MultiLayerNone
     hint = "Use to add more layers."
   endparam
   heading
     enabled = false
   endheading
   int param colour9
     caption = "Layer 9 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 9"
     visible = @colour9>0
   endheading
   color param clr9
     caption = "Layer 9 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour9==11
   endparam
   MMF_QuickGradient param f_quickgradient9
     caption = "Layer 9 Gradient Colouring"
     visible = @colour9==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour9==1 && @f_colouring0!=GradientColoring) \
               || (@colour9==2 && @f_colouring1!=GradientColoring) \
               || (@colour9==3 && @f_colouring2!=GradientColoring) \
               || (@colour9==4 && @f_colouring3!=GradientColoring) \
               || (@colour9==5 && @f_colouring4!=GradientColoring) \
               || (@colour9==6 && @f_colouring5!=GradientColoring) \
               || (@colour9==7 && @f_colouring6!=GradientColoring) \
               || (@colour9==8 && @f_colouring7!=GradientColoring) \
               || (@colour9==9 && @f_colouring8!=GradientColoring) \
               || (@colour9==10 && @f_colouring9!=GradientColoring) \
               || @colour9==11) && @f_merge9==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge9
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour9==1 && @f_colouring0==DirectColoring) \
               || (@colour9==2 && @f_colouring1==DirectColoring) \
               || (@colour9==3 && @f_colouring2==DirectColoring) \
               || (@colour9==4 && @f_colouring3==DirectColoring) \
               || (@colour9==5 && @f_colouring4==DirectColoring) \
               || (@colour9==6 && @f_colouring5==DirectColoring) \
               || (@colour9==7 && @f_colouring6==DirectColoring) \
               || (@colour9==8 && @f_colouring7==DirectColoring) \
               || (@colour9==9 && @f_colouring8==DirectColoring) \
               || (@colour9==10 && @f_colouring9==DirectColoring) \
               || @colour9==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge9
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour9==1 && @f_colouring0==GradientColoring) \
               || (@colour9==2 && @f_colouring1==GradientColoring) \
               || (@colour9==3 && @f_colouring2==GradientColoring) \
               || (@colour9==4 && @f_colouring3==GradientColoring) \
               || (@colour9==5 && @f_colouring4==GradientColoring) \
               || (@colour9==6 && @f_colouring5==GradientColoring) \
               || (@colour9==7 && @f_colouring6==GradientColoring) \
               || (@colour9==8 && @f_colouring7==GradientColoring) \
               || (@colour9==9 && @f_colouring8==GradientColoring) \
               || (@colour9==10 && @f_colouring9==GradientColoring) \
               || @colour9==12
   endparam
   heading
     enabled = false
     visible = @colour9>0
   endheading
   int param colour8
     caption = "Layer 8 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 8"
     visible = @colour8>0
   endheading
   color param clr8
     caption = "Layer 8 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour8==11
   endparam
   MMF_QuickGradient param f_quickgradient8
     caption = "Layer 8 Gradient Colouring"
     visible = @colour8==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour8==1 && @f_colouring0!=GradientColoring) \
               || (@colour8==2 && @f_colouring1!=GradientColoring) \
               || (@colour8==3 && @f_colouring2!=GradientColoring) \
               || (@colour8==4 && @f_colouring3!=GradientColoring) \
               || (@colour8==5 && @f_colouring4!=GradientColoring) \
               || (@colour8==6 && @f_colouring5!=GradientColoring) \
               || (@colour7==7 && @f_colouring6!=GradientColoring) \
               || (@colour8==8 && @f_colouring7!=GradientColoring) \
               || (@colour8==9 && @f_colouring8!=GradientColoring) \
               || (@colour8==10 && @f_colouring9!=GradientColoring) \
               || @colour8==11) && @f_merge8==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge8
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour8==1 && @f_colouring0==DirectColoring) \
               || (@colour8==2 && @f_colouring1==DirectColoring) \
               || (@colour8==3 && @f_colouring2==DirectColoring) \
               || (@colour8==4 && @f_colouring3==DirectColoring) \
               || (@colour8==5 && @f_colouring4==DirectColoring) \
               || (@colour8==6 && @f_colouring5==DirectColoring) \
               || (@colour8==7 && @f_colouring6==DirectColoring) \
               || (@colour8==8 && @f_colouring7==DirectColoring) \
               || (@colour8==9 && @f_colouring8==DirectColoring) \
               || (@colour8==10 && @f_colouring9==DirectColoring) \
               || @colour8==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge8
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour8==1 && @f_colouring0==GradientColoring) \
               || (@colour8==2 && @f_colouring1==GradientColoring) \
               || (@colour8==3 && @f_colouring2==GradientColoring) \
               || (@colour8==4 && @f_colouring3==GradientColoring) \
               || (@colour8==5 && @f_colouring4==GradientColoring) \
               || (@colour8==6 && @f_colouring5==GradientColoring) \
               || (@colour8==7 && @f_colouring6==GradientColoring) \
               || (@colour8==8 && @f_colouring7==GradientColoring) \
               || (@colour8==9 && @f_colouring8==GradientColoring) \
               || (@colour8==10 && @f_colouring9==GradientColoring) \
               || @colour8==12
   endparam
   heading
     enabled = false
     visible = @colour8>0
   endheading
   int param colour7
     caption = "Layer 7 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 7"
     visible = @colour7>0
   endheading
   color param clr7
     caption = "Layer 7 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour7==11
   endparam
   MMF_QuickGradient param f_quickgradient7
     caption = "Layer 7 Gradient Colouring"
     visible = @colour7==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour7==1 && @f_colouring0!=GradientColoring) \
               || (@colour7==2 && @f_colouring1!=GradientColoring) \
               || (@colour7==3 && @f_colouring2!=GradientColoring) \
               || (@colour7==4 && @f_colouring3!=GradientColoring) \
               || (@colour7==5 && @f_colouring4!=GradientColoring) \
               || (@colour7==6 && @f_colouring5!=GradientColoring) \
               || (@colour7==7 && @f_colouring6!=GradientColoring) \
               || (@colour7==8 && @f_colouring7!=GradientColoring) \
               || (@colour7==9 && @f_colouring8!=GradientColoring) \
               || (@colour7==10 && @f_colouring9!=GradientColoring) \
               || @colour7==11) && @f_merge7==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge7
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour7==1 && @f_colouring0==DirectColoring) \
               || (@colour7==2 && @f_colouring1==DirectColoring) \
               || (@colour7==3 && @f_colouring2==DirectColoring) \
               || (@colour7==4 && @f_colouring3==DirectColoring) \
               || (@colour7==5 && @f_colouring4==DirectColoring) \
               || (@colour7==6 && @f_colouring5==DirectColoring) \
               || (@colour7==7 && @f_colouring6==DirectColoring) \
               || (@colour7==8 && @f_colouring7==DirectColoring) \
               || (@colour7==9 && @f_colouring8==DirectColoring) \
               || (@colour7==10 && @f_colouring9==DirectColoring) \
               || @colour7==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge7
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour7==1 && @f_colouring0==GradientColoring) \
               || (@colour7==2 && @f_colouring1==GradientColoring) \
               || (@colour7==3 && @f_colouring2==GradientColoring) \
               || (@colour7==4 && @f_colouring3==GradientColoring) \
               || (@colour7==5 && @f_colouring4==GradientColoring) \
               || (@colour7==6 && @f_colouring5==GradientColoring) \
               || (@colour7==7 && @f_colouring6==GradientColoring) \
               || (@colour7==8 && @f_colouring7==GradientColoring) \
               || (@colour7==9 && @f_colouring8==GradientColoring) \
               || (@colour7==10 && @f_colouring9==GradientColoring) \
               || @colour7==12
   endparam
   heading
     enabled = false
     visible = @colour7>0
   endheading
   int param colour6
     caption = "Layer 6 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 6"
     visible = @colour6>0
   endheading
   color param clr6
     caption = "Layer 6 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour6==11
   endparam
   MMF_QuickGradient param f_quickgradient6
     caption = "Layer 6 Gradient Colouring"
     visible = @colour6==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour6==1 && @f_colouring0!=GradientColoring) \
               || (@colour6==2 && @f_colouring1!=GradientColoring) \
               || (@colour6==3 && @f_colouring2!=GradientColoring) \
               || (@colour6==4 && @f_colouring3!=GradientColoring) \
               || (@colour6==5 && @f_colouring4!=GradientColoring) \
               || (@colour6==6 && @f_colouring5!=GradientColoring) \
               || (@colour6==7 && @f_colouring6!=GradientColoring) \
               || (@colour6==8 && @f_colouring7!=GradientColoring) \
               || (@colour6==9 && @f_colouring8!=GradientColoring) \
               || (@colour6==10 && @f_colouring9!=GradientColoring) \
               || @colour6==11) && @f_merge6==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge6
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour6==1 && @f_colouring0==DirectColoring) \
               || (@colour6==2 && @f_colouring1==DirectColoring) \
               || (@colour6==3 && @f_colouring2==DirectColoring) \
               || (@colour6==4 && @f_colouring3==DirectColoring) \
               || (@colour6==5 && @f_colouring4==DirectColoring) \
               || (@colour6==6 && @f_colouring5==DirectColoring) \
               || (@colour6==7 && @f_colouring6==DirectColoring) \
               || (@colour6==8 && @f_colouring7==DirectColoring) \
               || (@colour6==9 && @f_colouring8==DirectColoring) \
               || (@colour6==10 && @f_colouring9==DirectColoring) \
               || @colour6==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge6
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour6==1 && @f_colouring0==GradientColoring) \
               || (@colour6==2 && @f_colouring1==GradientColoring) \
               || (@colour6==3 && @f_colouring2==GradientColoring) \
               || (@colour6==4 && @f_colouring3==GradientColoring) \
               || (@colour6==5 && @f_colouring4==GradientColoring) \
               || (@colour6==6 && @f_colouring5==GradientColoring) \
               || (@colour6==7 && @f_colouring6==GradientColoring) \
               || (@colour6==8 && @f_colouring7==GradientColoring) \
               || (@colour6==9 && @f_colouring8==GradientColoring) \
               || (@colour6==10 && @f_colouring9==GradientColoring) \
               || @colour6==12
   endparam
   heading
     enabled = false
     visible = @colour6>0
   endheading
   int param colour5
     caption = "Layer 5 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 5"
     visible = @colour5>0
   endheading
   color param clr5
     caption = "Layer 5 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour5==11
   endparam
   MMF_QuickGradient param f_quickgradient5
     caption = "Layer 5 Gradient Colouring"
     visible = @colour5==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour5==1 && @f_colouring0!=GradientColoring) \
               || (@colour5==2 && @f_colouring1!=GradientColoring) \
               || (@colour5==3 && @f_colouring2!=GradientColoring) \
               || (@colour5==4 && @f_colouring3!=GradientColoring) \
               || (@colour5==5 && @f_colouring4!=GradientColoring) \
               || (@colour5==6 && @f_colouring5!=GradientColoring) \
               || (@colour5==7 && @f_colouring6!=GradientColoring) \
               || (@colour5==8 && @f_colouring7!=GradientColoring) \
               || (@colour5==9 && @f_colouring8!=GradientColoring) \
               || (@colour5==10 && @f_colouring9!=GradientColoring) \
               || @colour5==11) && @f_merge5==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge5
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour5==1 && @f_colouring0==DirectColoring) \
               || (@colour5==2 && @f_colouring1==DirectColoring) \
               || (@colour5==3 && @f_colouring2==DirectColoring) \
               || (@colour5==4 && @f_colouring3==DirectColoring) \
               || (@colour5==5 && @f_colouring4==DirectColoring) \
               || (@colour5==6 && @f_colouring5==DirectColoring) \
               || (@colour5==7 && @f_colouring6==DirectColoring) \
               || (@colour5==8 && @f_colouring7==DirectColoring) \
               || (@colour5==9 && @f_colouring8==DirectColoring) \
               || (@colour5==10 && @f_colouring9==DirectColoring) \
               || @colour5==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge5
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour5==1 && @f_colouring0==GradientColoring) \
               || (@colour5==2 && @f_colouring1==GradientColoring) \
               || (@colour5==3 && @f_colouring2==GradientColoring) \
               || (@colour5==4 && @f_colouring3==GradientColoring) \
               || (@colour5==5 && @f_colouring4==GradientColoring) \
               || (@colour5==6 && @f_colouring5==GradientColoring) \
               || (@colour5==7 && @f_colouring6==GradientColoring) \
               || (@colour5==8 && @f_colouring7==GradientColoring) \
               || (@colour5==9 && @f_colouring8==GradientColoring) \
               || (@colour5==10 && @f_colouring9==GradientColoring) \
               || @colour5==12
   endparam
   heading
     enabled = false
     visible = @colour5>0
   endheading
   int param colour4
     caption = "Layer 4 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 4"
     visible = @colour4>0
   endheading
   color param clr4
     caption = "Layer 4 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour4==11
   endparam
   MMF_QuickGradient param f_quickgradient4
     caption = "Layer 4 Gradient Colouring"
     visible = @colour4==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour4==1 && @f_colouring0!=GradientColoring) \
               || (@colour4==2 && @f_colouring1!=GradientColoring) \
               || (@colour4==3 && @f_colouring2!=GradientColoring) \
               || (@colour4==4 && @f_colouring3!=GradientColoring) \
               || (@colour4==5 && @f_colouring4!=GradientColoring) \
               || (@colour4==6 && @f_colouring5!=GradientColoring) \
               || (@colour4==7 && @f_colouring6!=GradientColoring) \
               || (@colour4==8 && @f_colouring7!=GradientColoring) \
               || (@colour4==9 && @f_colouring8!=GradientColoring) \
               || (@colour4==10 && @f_colouring9!=GradientColoring) \
               || @colour4==11) && @f_merge4==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge4
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour4==1 && @f_colouring0==DirectColoring) \
               || (@colour4==2 && @f_colouring1==DirectColoring) \
               || (@colour4==3 && @f_colouring2==DirectColoring) \
               || (@colour4==4 && @f_colouring3==DirectColoring) \
               || (@colour4==5 && @f_colouring4==DirectColoring) \
               || (@colour4==6 && @f_colouring5==DirectColoring) \
               || (@colour4==7 && @f_colouring6==DirectColoring) \
               || (@colour4==8 && @f_colouring7==DirectColoring) \
               || (@colour4==9 && @f_colouring8==DirectColoring) \
               || (@colour4==10 && @f_colouring9==DirectColoring) \
               || @colour4==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge4
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour4==1 && @f_colouring0==GradientColoring) \
               || (@colour4==2 && @f_colouring1==GradientColoring) \
               || (@colour4==3 && @f_colouring2==GradientColoring) \
               || (@colour4==4 && @f_colouring3==GradientColoring) \
               || (@colour4==5 && @f_colouring4==GradientColoring) \
               || (@colour4==6 && @f_colouring5==GradientColoring) \
               || (@colour4==7 && @f_colouring6==GradientColoring) \
               || (@colour4==8 && @f_colouring7==GradientColoring) \
               || (@colour4==9 && @f_colouring8==GradientColoring) \
               || (@colour4==10 && @f_colouring9==GradientColoring) \
               || @colour4==12
   endparam
   heading
     enabled = false
     visible = @colour4>0
   endheading
   int param colour3
     caption = "Layer 3 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 3"
     visible = @colour3>0
   endheading
   color param clr3
     caption = "Layer 3 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour3==11
   endparam
   MMF_QuickGradient param f_quickgradient3
     caption = "Layer 3 Gradient Colouring"
     visible = @colour3==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour3==1 && @f_colouring0!=GradientColoring) \
               || (@colour3==2 && @f_colouring1!=GradientColoring) \
               || (@colour3==3 && @f_colouring2!=GradientColoring) \
               || (@colour3==4 && @f_colouring3!=GradientColoring) \
               || (@colour3==5 && @f_colouring4!=GradientColoring) \
               || (@colour3==6 && @f_colouring5!=GradientColoring) \
               || (@colour3==7 && @f_colouring6!=GradientColoring) \
               || (@colour3==8 && @f_colouring7!=GradientColoring) \
               || (@colour3==9 && @f_colouring8!=GradientColoring) \
               || (@colour3==10 && @f_colouring9!=GradientColoring) \
               || @colour3==11) && @f_merge3==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge3
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour3==1 && @f_colouring0==DirectColoring) \
               || (@colour3==2 && @f_colouring1==DirectColoring) \
               || (@colour3==3 && @f_colouring2==DirectColoring) \
               || (@colour3==4 && @f_colouring3==DirectColoring) \
               || (@colour3==5 && @f_colouring4==DirectColoring) \
               || (@colour3==6 && @f_colouring5==DirectColoring) \
               || (@colour3==7 && @f_colouring6==DirectColoring) \
               || (@colour3==8 && @f_colouring7==DirectColoring) \
               || (@colour3==9 && @f_colouring8==DirectColoring) \
               || (@colour3==10 && @f_colouring9==DirectColoring) \
               || @colour3==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge3
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour3==1 && @f_colouring0==GradientColoring) \
               || (@colour3==2 && @f_colouring1==GradientColoring) \
               || (@colour3==3 && @f_colouring2==GradientColoring) \
               || (@colour3==4 && @f_colouring3==GradientColoring) \
               || (@colour3==5 && @f_colouring4==GradientColoring) \
               || (@colour3==6 && @f_colouring5==GradientColoring) \
               || (@colour3==7 && @f_colouring6==GradientColoring) \
               || (@colour3==8 && @f_colouring7==GradientColoring) \
               || (@colour3==9 && @f_colouring8==GradientColoring) \
               || (@colour3==10 && @f_colouring9==GradientColoring) \
               || @colour3==12
   endparam
   heading
     enabled = false
     visible = @colour3>0
   endheading
   int param colour2
     caption = "Layer 2 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 0
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 2"
     visible = @colour2>0
   endheading
   color param clr2
     caption = "Layer 2 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour2==11
   endparam
   MMF_QuickGradient param f_quickgradient2
     caption = "Layer 2 Gradient Colouring"
     visible = @colour2==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour2==1 && @f_colouring0!=GradientColoring) \
               || (@colour2==2 && @f_colouring1!=GradientColoring) \
               || (@colour2==3 && @f_colouring2!=GradientColoring) \
               || (@colour2==4 && @f_colouring3!=GradientColoring) \
               || (@colour2==5 && @f_colouring4!=GradientColoring) \
               || (@colour2==6 && @f_colouring5!=GradientColoring) \
               || (@colour2==7 && @f_colouring6!=GradientColoring) \
               || (@colour2==8 && @f_colouring7!=GradientColoring) \
               || (@colour2==9 && @f_colouring8!=GradientColoring) \
               || (@colour2==10 && @f_colouring9!=GradientColoring) \
               || @colour2==11) && @f_merge2==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge2
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour2==1 && @f_colouring0==DirectColoring) \
               || (@colour2==2 && @f_colouring1==DirectColoring) \
               || (@colour2==3 && @f_colouring2==DirectColoring) \
               || (@colour2==4 && @f_colouring3==DirectColoring) \
               || (@colour2==5 && @f_colouring4==DirectColoring) \
               || (@colour2==6 && @f_colouring5==DirectColoring) \
               || (@colour2==7 && @f_colouring6==DirectColoring) \
               || (@colour2==8 && @f_colouring7==DirectColoring) \
               || (@colour2==9 && @f_colouring8==DirectColoring) \
               || (@colour2==10 && @f_colouring9==DirectColoring) \
               || @colour2==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge2
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour2==1 && @f_colouring0==GradientColoring) \
               || (@colour2==2 && @f_colouring1==GradientColoring) \
               || (@colour2==3 && @f_colouring2==GradientColoring) \
               || (@colour2==4 && @f_colouring3==GradientColoring) \
               || (@colour2==5 && @f_colouring4==GradientColoring) \
               || (@colour2==6 && @f_colouring5==GradientColoring) \
               || (@colour2==7 && @f_colouring6==GradientColoring) \
               || (@colour2==8 && @f_colouring7==GradientColoring) \
               || (@colour2==9 && @f_colouring8==GradientColoring) \
               || (@colour2==10 && @f_colouring9==GradientColoring) \
               || @colour2==12
   endparam
   heading
     enabled = false
     visible = @colour2>0
   endheading
   int param colour1
     caption = "Layer 1 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 2
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 1"
     visible = @colour1>0
   endheading
   color param clr1
     caption = "Layer 1 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour1==11
   endparam
   MMF_QuickGradient param f_quickgradient1
     caption = "Layer 1 Gradient Colouring"
     visible = @colour1==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour1==1 && @f_colouring0!=GradientColoring) \
               || (@colour1==2 && @f_colouring1!=GradientColoring) \
               || (@colour1==3 && @f_colouring2!=GradientColoring) \
               || (@colour1==4 && @f_colouring3!=GradientColoring) \
               || (@colour1==5 && @f_colouring4!=GradientColoring) \
               || (@colour1==6 && @f_colouring5!=GradientColoring) \
               || (@colour1==7 && @f_colouring6!=GradientColoring) \
               || (@colour1==8 && @f_colouring7!=GradientColoring) \
               || (@colour1==9 && @f_colouring8!=GradientColoring) \
               || (@colour1==10 && @f_colouring9!=GradientColoring) \
               || @colour1==11) && @f_merge1==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge1
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour1==1 && @f_colouring0==DirectColoring) \
               || (@colour1==2 && @f_colouring1==DirectColoring) \
               || (@colour1==3 && @f_colouring2==DirectColoring) \
               || (@colour1==4 && @f_colouring3==DirectColoring) \
               || (@colour1==5 && @f_colouring4==DirectColoring) \
               || (@colour1==6 && @f_colouring5==DirectColoring) \
               || (@colour1==7 && @f_colouring6==DirectColoring) \
               || (@colour1==8 && @f_colouring7==DirectColoring) \
               || (@colour1==9 && @f_colouring8==DirectColoring) \
               || (@colour1==10 && @f_colouring9==DirectColoring) \
               || @colour1==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge1
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour1==1 && @f_colouring0==GradientColoring) \
               || (@colour1==2 && @f_colouring1==GradientColoring) \
               || (@colour1==3 && @f_colouring2==GradientColoring) \
               || (@colour1==4 && @f_colouring3==GradientColoring) \
               || (@colour1==5 && @f_colouring4==GradientColoring) \
               || (@colour1==6 && @f_colouring5==GradientColoring) \
               || (@colour1==7 && @f_colouring6==GradientColoring) \
               || (@colour1==8 && @f_colouring7==GradientColoring) \
               || (@colour1==9 && @f_colouring8==GradientColoring) \
               || (@colour1==10 && @f_colouring9==GradientColoring) \
               || @colour1==12
   endparam
   heading
     enabled = false
     visible = @colour1>0
   endheading
   int param colour0
     caption = "Layer 0 Colouring"
     enum = "None" "Colouring 0" "Colouring 1" "Colouring 2" "Colouring 3" \
            "Colouring 4" "Colouring 5" "Colouring 6" "Colouring 7" \
            "Colouring 8" "Colouring 9" "Single Colour" "Gradient Colouring"
     default = 1
     hint = "To enable this layer just select one of the 10 colourings to \
             use on the layer."
   endparam
   heading
     caption = "Layer 0"
     visible = @colour0>0
   endheading
   color param clr0
     caption = "Layer 0 Colour"
     default = RGBA(1,1,1,1)
     visible = @colour0==11
   endparam
   MMF_QuickGradient param f_quickgradient0
     caption = "Layer 0 Gradient Colouring"
     visible = @colour0==12
   endparam
   heading
     text = "Please note that you have chosen a Layer Merge that includes \
             gradient options on a layer that is using a Direct mode \
             colouring. The gradient parameters in the Layer Merge will be \
             ignored - it's better to use a Layer Merge that is not \
             'with Gradient'."
     visible = ((@colour0==1 && @f_colouring0!=GradientColoring) \
               || (@colour0==2 && @f_colouring1!=GradientColoring) \
               || (@colour0==3 && @f_colouring2!=GradientColoring) \
               || (@colour0==4 && @f_colouring3!=GradientColoring) \
               || (@colour0==5 && @f_colouring4!=GradientColoring) \
               || (@colour0==6 && @f_colouring5!=GradientColoring) \
               || (@colour0==7 && @f_colouring6!=GradientColoring) \
               || (@colour0==8 && @f_colouring7!=GradientColoring) \
               || (@colour0==9 && @f_colouring8!=GradientColoring) \
               || (@colour0==10 && @f_colouring9!=GradientColoring) \
               || @colour0==11) && @f_merge0==MMF_GradientLayerMerge
   endheading
   MMF_LayerMerge param f_merge0
     caption = "Layer Merge"
     default = MMF_LayerMerge
     visible = (@colour0==1 && @f_colouring0!=GradientColoring) \
               || (@colour0==2 && @f_colouring1!=GradientColoring) \
               || (@colour0==3 && @f_colouring2!=GradientColoring) \
               || (@colour0==4 && @f_colouring3!=GradientColoring) \
               || (@colour0==5 && @f_colouring4!=GradientColoring) \
               || (@colour0==6 && @f_colouring5!=GradientColoring) \
               || (@colour0==7 && @f_colouring6!=GradientColoring) \
               || (@colour0==8 && @f_colouring7!=GradientColoring) \
               || (@colour0==9 && @f_colouring8!=GradientColoring) \
               || (@colour0==10 && @f_colouring9!=GradientColoring) \
               || @colour0==11
   endparam
   MMF_GradientLayerMerge param f_gradientmerge0
     caption = "Gradient Layer Merge"
     default = MMF_GradientLayerMerge
     visible = (@colour0==1 && @f_colouring0==GradientColoring) \
               || (@colour0==2 && @f_colouring1==GradientColoring) \
               || (@colour0==3 && @f_colouring2==GradientColoring) \
               || (@colour0==4 && @f_colouring3==GradientColoring) \
               || (@colour0==5 && @f_colouring4==GradientColoring) \
               || (@colour0==6 && @f_colouring5==GradientColoring) \
               || (@colour0==7 && @f_colouring6==GradientColoring) \
               || (@colour0==8 && @f_colouring7==GradientColoring) \
               || (@colour0==9 && @f_colouring8==GradientColoring) \
               || (@colour0==10 && @f_colouring9==GradientColoring) \
               || @colour0==12
   endparam
   heading
     caption = "Base Colour"
     text = "Only used if below the lowest layer."
   endheading
   color param basecolour
     caption = "Base Colour"
     default = RGBA(0,0,0,0)
     hint = "Note that if there are 'Layer' parameters below this parameter in \
             the parameter list then this colour is unused i.e. this colour \
             is only used if it is part of the lowest 10 layers."
   endparam
   heading
     caption = "Colouring 9"
     visible = @colour0==10 || @colour1==10 || @colour2==10 || @colour3==10 \
               || @colour4==10 || @colour5==10 || @colour6==10 || @colour7==10 \
               || @colour8==10 || @colour9==10
   endheading
   Coloring param f_Colouring9
     caption = "Colouring 9"
     default = Standard_Gradient
     visible = @colour0==10 || @colour1==10 || @colour2==10 || @colour3==10 \
               || @colour4==10 || @colour5==10 || @colour6==10 || @colour7==10 \
               || @colour8==10 || @colour9==10
   endparam
   heading
     caption = "Colouring 8"
     visible = @colour0==9 || @colour1==9 || @colour2==9 || @colour3==9 \
               || @colour4==9 || @colour5==9 || @colour6==9 || @colour7==9 \
               || @colour8==9 || @colour9==9
   endheading
   Coloring param f_Colouring8
     caption = "Colouring 8"
     default = Standard_Gradient
     visible = @colour0==9 || @colour1==9 || @colour2==9 || @colour3==9 \
               || @colour4==9 || @colour5==9 || @colour6==9 || @colour7==9 \
               || @colour8==9 || @colour9==9
   endparam
   heading
     caption = "Colouring 7"
     visible = @colour0==8 || @colour1==8 || @colour2==8 || @colour3==8 \
               || @colour4==8 || @colour5==8 || @colour6==8 || @colour7==8 \
               || @colour8==8 || @colour9==8
   endheading
   Coloring param f_Colouring7
     caption = "Colouring 7"
     default = Standard_Gradient
     visible = @colour0==8 || @colour1==8 || @colour2==8 || @colour3==8 \
               || @colour4==8 || @colour5==8 || @colour6==8 || @colour7==8 \
               || @colour8==8 || @colour9==8
   endparam
   heading
     caption = "Colouring 6"
     visible = @colour0==7 || @colour1==7 || @colour2==7 || @colour3==7 \
               || @colour4==7 || @colour5==7 || @colour6==7 || @colour7==7 \
               || @colour8==7 || @colour9==7
   endheading
   Coloring param f_Colouring6
     caption = "Colouring 6"
     default = Standard_Gradient
     visible = @colour0==7 || @colour1==7 || @colour2==7 || @colour3==7 \
               || @colour4==7 || @colour5==7 || @colour6==7 || @colour7==7 \
               || @colour8==7 || @colour9==7
   endparam
   heading
     caption = "Colouring 5"
     visible = @colour0==6 || @colour1==6 || @colour2==6 || @colour3==6 \
               || @colour4==6 || @colour5==6 || @colour6==6 || @colour7==6 \
               || @colour8==6 || @colour9==6
   endheading
   Coloring param f_Colouring5
     caption = "Colouring 5"
     default = Standard_Gradient
     visible = @colour0==6 || @colour1==6 || @colour2==6 || @colour3==6 \
               || @colour4==6 || @colour5==6 || @colour6==6 || @colour7==6 \
               || @colour8==6 || @colour9==6
   endparam
   heading
     caption = "Colouring 4"
     visible = @colour0==5 || @colour1==5 || @colour2==5 || @colour3==5 \
               || @colour4==5 || @colour5==5 || @colour6==5 || @colour7==5 \
               || @colour8==5 || @colour9==5
   endheading
   Coloring param f_Colouring4
     caption = "Colouring 4"
     default = Standard_Gradient
     visible = @colour0==5 || @colour1==5 || @colour2==5 || @colour3==5 \
               || @colour4==5 || @colour5==5 || @colour6==5 || @colour7==5 \
               || @colour8==5 || @colour9==5
   endparam
   heading
     caption = "Colouring 3"
     visible = @colour0==4 || @colour1==4 || @colour2==4 || @colour3==4 \
               || @colour4==4 || @colour5==4 || @colour6==4 || @colour7==4 \
               || @colour8==4 || @colour9==4
   endheading
   Coloring param f_Colouring3
     caption = "Colouring 3"
     default = Standard_Gradient
     visible = @colour0==4 || @colour1==4 || @colour2==4 || @colour3==4 \
               || @colour4==4 || @colour5==4 || @colour6==4 || @colour7==4 \
               || @colour8==4 || @colour9==4
   endparam
   heading
     caption = "Colouring 2"
     visible = @colour0==3 || @colour1==3 || @colour2==3 || @colour3==3 \
               || @colour4==3 || @colour5==3 || @colour6==3 || @colour7==3 \
               || @colour8==3 || @colour9==3
   endheading
   Coloring param f_Colouring2
     caption = "Colouring 2"
     default = Standard_Gradient
     visible = @colour0==3 || @colour1==3 || @colour2==3 || @colour3==3 \
               || @colour4==3 || @colour5==3 || @colour6==3 || @colour7==3 \
               || @colour8==3 || @colour9==3
   endparam
   heading
     caption = "Colouring 1"
     visible = @colour0==2 || @colour1==2 || @colour2==2 || @colour3==2 \
               || @colour4==2 || @colour5==2 || @colour6==2 || @colour7==2 \
               || @colour8==2 || @colour9==2
   endheading
   Coloring param f_Colouring1
     caption = "Colouring 1"
     default = Standard_OrbitTraps
     visible = @colour0==2 || @colour1==2 || @colour2==2 || @colour3==2 \
               || @colour4==2 || @colour5==2 || @colour6==2 || @colour7==2 \
               || @colour8==2 || @colour9==2
   endparam
   heading
     caption = "Colouring 0"
     visible = @colour0==1 || @colour1==1 || @colour2==1 || @colour3==1 \
               || @colour4==1 || @colour5==1 || @colour6==1 || @colour7==1 \
               || @colour8==1 || @colour9==1
   endheading
   Coloring param f_Colouring0
     caption = "Colouring 0"
     default = Standard_Smooth
     visible = @colour0==1 || @colour1==1 || @colour2==1 || @colour3==1 \
               || @colour4==1 || @colour5==1 || @colour6==1 || @colour7==1 \
               || @colour8==1 || @colour9==1
   endparam
 }
 


Constructor Summary
MMF_MultiLayer()
           
MMF_MultiLayer(Generic pparent)
          
 
Method Summary
 void Init(complex pz, complex ppixel)
           Initialisation (per pixel)
 void Iterate(complex pz)
          
 color Result(complex pz)
          
 color ResultUsingBaseColor(complex pz, color clr)
          
 
Methods inherited from class common:DirectColoring
IsSolid
 
Methods inherited from class common:Coloring
GetPixel, IsGradient
 
Methods inherited from class common:Generic
GetParent
 
Methods inherited from class Object
 

Constructor Detail

MMF_MultiLayer

public MMF_MultiLayer(Generic pparent)

Parameters:
pparent - typically 'this' from the parent or zero

MMF_MultiLayer

public MMF_MultiLayer()
Method Detail

Init

public void Init(complex pz,
                 complex ppixel)

Initialisation (per pixel)

Overrides:
Init in class DirectColoring
Parameters:
pz - initial z from the formula
ppixel - the location (normally #pixel)

Iterate

public void Iterate(complex pz)

Overrides:
Iterate in class DirectColoring
Parameters:
pz - the z value

ResultUsingBaseColor

public color ResultUsingBaseColor(complex pz,
                                  color clr)

Overrides:
ResultUsingBaseColor in class MMF_MultiLayerBase
Parameters:
pz - the z value
clr - the colour to use as the base colour
Returns:
the colour

Result

public color Result(complex pz)

Overrides:
Result in class DirectColoring
Parameters:
pz - the z value
Returns:
the colour