comment {
rkb.ulb - Classes written by Robert K. Bunney
History
7/8/08 - TrapShapeFlower Added
7/8/08 - DeformShape Added
8/31/08 - SSG Added
}
;============================================================
;
; SSG
;
;============================================================
class RKB_SSG(common.ulb:TrapShape) {
public:
; Constructor
func RKB_SSG(Generic pparent)
TrapShape.TrapShape(pparent)
fMaxDist = 2
; Default setting for values
a=0, b=0, m=0, n1=0, n2=0, n3=0
fTw = 0 ; Twist
fRA = 0 ; Ridges Amp
fRF = 0 ; Ridges Freq
fWA = 0 ; Waves Amp
fWF = 0 ; Waves Freq
fDP = 1 ; Vary wave by distance (Distance Power)
s = 1 ; Sweeps
if (@enShape == "Shape #0")
a=1, b=1.1, m=24, n1=1.7, n2=0.7, n3=6
elseif (@enShape == "Shape #1: Null")
;Default params
elseif (@enShape == "Shape #2")
a=-2.6, b=1.1, m=8, n1=1.7, n2=0.7, n3=9.6
elseif (@enShape == "Shape #3")
a=24, b=1.1, m=16, n1=0.5, n2=0.7, n3=0
elseif (@enShape == "Shape #4")
a=24, b=1.1, m=8, n1=0.5, n2=0.7, n3=0
elseif (@enShape == "Shape #5")
a=1, b=1, m=7, n1=3, n2=6, n3=6
elseif (@enShape == "Shape #6")
a=6.5, b=1.1, m=8, n1=0.5, n2=0.7, n3=0.0
elseif (@enShape == "Shape #7")
a=5, b=1.1, m=8, n1=0.5, n2=1.9, n3=0
elseif (@enShape == "Shape #8")
a=-1.3, b=1.1, m=8, n1=1.7, n2=4, n3=0
elseif (@enShape == "Shape #9")
a=-5, b=1.1, m=10, n1=0.54, n2=1, n3=0
elseif (@enShape == "Shape #10")
a=-5, b=1, m=10, n1=0.5, n2=2, n3=0
elseif (@enShape == "Shape #11")
a=1, b=1, m=3, n1=5, n2=18, n3=18
elseif (@enShape == "Shape #12")
a=1, b=1, m=6, n1=20, n2=7, n3=18
elseif (@enShape == "Shape #13")
a=1, b=1, m=4, n1=2, n2=1, n3=3
elseif (@enShape == "Shape #14")
a=1, b=1, m=8, n1=3, n2=4, n3=17
elseif (@enShape == "Shape #15")
a=1, b=0.6, m=12, n1=32, n2=1, n3=-11
elseif (@enShape == "Shape #16")
a=0.3, b=1.01, m=-8.1, n1=1, n2=1, n3=150, s=6
elseif (@enShape == "Shape #17")
a=1, b=1, m=19, n1=9, n2=14, n3=13
elseif (@enShape == "Shape #18")
a=1.5, b=2, m=8, n1=0.9, n2=1.8, n3=0.8
elseif (@enShape == "Shape #19")
a=1.6, b=1, m=12, n1=1.5, n2=2, n3=7.5
elseif (@enShape == "Shape #20")
a=2.7, b=2.6, m=6, n1=12, n2=8.3, n3=5.3
elseif (@enShape == "Shape #21")
a=1.5, b=2, m=2, n1=1.7, n2=0.7, n3=2
elseif (@enShape == "Shape #22")
a=1.19, b=2.8, m=32, n1=3, n2=0.9, n3=6
elseif (@enShape == "Shape #23")
a=0.9, b=10, m=4, n1=4.2, n2=17, n3=1.5
elseif (@enShape == "Shape #24")
a=1, b=1, m=3, n1=4.5, n2=10, n3=10
elseif (@enShape == "Shape #25")
a=1, b=1, m=4, n1=12, n2=15, n3=15
elseif (@enShape == "Shape #26")
a=1, b=1, m=7, n1=10, n2=6, n3=6
elseif (@enShape == "Shape #27")
a=0.3, b=1, m=-8.5, n1=1, n2=1, n3=140, s=4
elseif (@enShape == "Shape #28")
a=10, b=10, m=5, n1=1, n2=7, n3=7
elseif (@enShape == "Shape #29")
a=1, b=1, m=12, n1=15, n2=20, n3=3
elseif (@enShape == "Shape #30")
a=1, b=1, m=8, n1=1, n2=1, n3=8
elseif (@enShape == "Shape #31")
a=0.3, b=1.01, m=-8.5, n1=1, n2=1, n3=160, s=4
elseif (@enShape == "Shape #32")
a=1, b=1, m=5, n1=2, n2=6, n3=6
elseif (@enShape == "Shape #33")
a=1, b=1, m=6, n1=1, n2=1, n3=6
elseif (@enShape == "Shape #34")
a=1, b=1, m=3, n1=6, n2=6, n3=6
elseif (@enShape == "Shape #35")
a=1, b=1, m=2, n1=1, n2=1, n3=1
elseif (@enShape == "Shape #36")
a=1, b=1, m=2, n1=1, n2=4, n3=8
elseif (@enShape == "Shape #37")
a=1, b=1, m=8, n1=7, n2=8, n3=2
elseif (@enShape == "Shape #38")
a=1, b=1, m=1, n1=1, n2=1, n3=1
elseif (@enShape == "Shape #39")
a=1, b=1, m=2, n1=1, n2=1, n3=-1.27
elseif (@enShape == "Shape #40")
a=1, b=1, m=3, n1=1, n2=1, n3=1
elseif (@enShape == "Shape #41")
a=1, b=1, m=4, n1=1, n2=1, n3=1
elseif (@enShape == "Shape #42")
a=17, b=1, m=27.6, n1=24, n2=2, n3=6, s=4
elseif (@enShape == "Shape #43")
a=1, b=1, m=6, n1=1, n2=1, n3=1
elseif (@enShape == "Shape #44")
a=1, b=1, m=1, n1=0.3, n2=0.3, n3=0.3
elseif (@enShape == "Shape #45")
a=1, b=1, m=2, n1=0.3, n2=0.3, n3=0.3
elseif (@enShape == "Shape #46")
a=1, b=1, m=3, n1=0.3, n2=0.3, n3=0.3
elseif (@enShape == "Shape #47")
a=1, b=1, m=4, n1=0.3, n2=0.3, n3=0.3
elseif (@enShape == "Shape #48")
a=1.9, b=2.8, m=32, n1=3, n2=0.9, n3=0.6
elseif (@enShape == "Shape #49")
a=1, b=0.85, m=2, n1=-3, n2=1, n3=20
elseif (@enShape == "Shape #50")
a=1, b=0.85, m=22, n1=-0.11, n2=0.9, n3=4
elseif (@enShape == "Shape #51")
a=0.4, b=0.85, m=22, n1=-0.11, n2=0.9, n3=4
elseif (@enShape == "Shape #52")
a=1, b=1.2, m=24, n1=2, n2=1, n3=4
elseif (@enShape == "Shape #53")
a=1, b=1.21, m=4, n1=-0.11, n2=3.77, n3=0.77
elseif (@enShape == "Shape #54")
a=-1.15, b=1.21, m=4, n1=-0.11, n2=3.77, n3=0.77
elseif (@enShape == "Shape #55")
a=1.2, b=1.1, m=16, n1=0.5, n2=3.4, n3=0.9
elseif (@enShape == "Shape #56")
a=1.2, b=1.2, m=4, n1=0.5, n2=3.5, n3=1
elseif (@enShape == "Shape #57")
a=1, b=1, m=22, n1=1, n2=1, n3=40
elseif (@enShape == "Shape #58")
a=1.2, b=-2, m=8, n1=0.5, n2=9, n3=1
elseif (@enShape == "Shape #59")
a=0.3, b=0.3, m=8, n1=0.3, n2=0.3, n3=0.6
elseif (@enShape == "Shape #60")
a=1, b=1, m=1, n1=1, n2=1, n3=40
elseif (@enShape == "Shape #61")
a=1.2, b=-2, m=4, n1=0.5, n2=9, n3=1
elseif (@enShape == "Shape #62")
a=1, b=-0.67, m=22, n1=1, n2=1, n3=40
elseif (@enShape == "Shape #63")
a=1, b=0.6, m=12, n1=32, n2=1, n3=40
elseif (@enShape == "Shape #64")
a=1, b=0.6, m=12, n1=32, n2=400, n3=40
elseif (@enShape == "Shape #65")
a=1, b=0.6, m=12, n1=32, n2=8, n3=-11
elseif (@enShape == "Shape #66")
a=17, b=1, m=27.6, n1=3, n2=2, n3=6, s=3
elseif (@enShape == "Shape #67")
a=1, b=0.6, m=12, n1=-400, n2=1, n3=270
elseif (@enShape == "Shape #68")
a=1.05, b=1.1, m=24, n1=0.4, n2=3.5, n3=0.87
elseif (@enShape == "Shape #69")
a=1.2, b=2, m=2, n1=2, n2=1.7, n3=6
elseif (@enShape == "Shape #70")
a=1.11, b=1.1, m=24, n1=0.4, n2=5, n3=1.12
elseif (@enShape == "Shape #71")
a=1.11, b=1.1, m=44, n1=1.1, n2=0.9, n3=0.3
elseif (@enShape == "Shape #72")
a=1, b=1.1, m=24, n1=0.4, n2=3.5, n3=0.87
elseif (@enShape == "Shape #73")
a=1, b=1.3, m=27.6, n1=3, n2=1, n3=6, s=3
elseif (@enShape == "Shape #74")
a=1, b=1.4, m=24.5, n1=3, n2=1, n3=6, s=4
elseif (@enShape == "Shape #75")
a=0.5, b=1.3, m=5.7, n1=1, n2=6, n3=2, s=4
elseif (@enShape == "Shape #76")
a=1.5, b=2, m=9.9, n1=1.8, n2=0.8, n3=4, s=4
elseif (@enShape == "Shape #77")
a=1, b=-0.67, m=22.3, n1=1, n2=1, n3=40, s=3
elseif (@enShape == "Shape #78")
a=-0.8, b=1.1, m=8, n1=1.7, n2=4, n3=0
elseif (@enShape == "Shape #79")
a=1, b=1, m=3, n1=5, n2=18, n3=18, fTw=0.85, fRF=4, fRA=4
elseif (@enShape == "Shape #80")
a=0.3, b=1.01, m=-8.5, n1=1, n2=1, n3=160, s=4, fWA=2, fWF=2
elseif (@enShape == "Shape #81")
a=24, b=1.1, m=16, n1=0.5, n2=0.7, n3=0, fRF=9.696, fRA=3
elseif (@enShape == "Shape #82")
a=-4.22, b=1.1, m=10, n1=0.54, n2=.46, n3=7.6, fRF=22, fRA=1
elseif (@enShape == "Shape #83")
a=1, b=1, m=22, n1=2, n2=1, n3=40, fWF=2, fWA=2, fDP=-2
elseif (@enShape == "Shape #84")
a=0.3, b=1.01, m=-5.85, n1=1, n2=1, n3=150, s=6, fWF=2, fWA=2
elseif (@enShape == "Shape #85")
a=0.03, b=2, m=2, n1=1.7, n2=0.7, n3=2, fWF=2, fWA=4
elseif (@enShape == "Shape #86")
a=1.6, b=10, m=4, n1=4.2, n2=17, n3=1.5, fTw=1.7
elseif (@enShape == "Shape #87")
a=1, b=1.1, m=8, n1=0.4, n2=0.7, n3=6
elseif (@enShape == "Shape #88")
a=17, b=0.64, m=27.6, n1=24, n2=2, n3=6, s=4
elseif (@enShape == "Shape #89")
a=1.2, b=-2, m=8, n1=0.5, n2=9, n3=1, fRF=5.25, fRA=6
elseif (@enShape == "Shape #90")
a=1, b=1.21, m=4, n1=-0.11, n2=3.77, n3=2, fTw=1.6
elseif (@enShape == "Shape #91")
a=1, b=1, m=20, n1=1, n2=1, n3=40, fWF=4.0, fWA=4.0, fDP=-1.5
elseif (@enShape == "Shape #92")
a=1, b=0.6, m=10, n1=32, n2=1, n3=40, fTw=1
elseif (@enShape == "Shape #93")
a=1, b=0.6, m=12, n1=32, n2=8, n3=-11, fRF=11, fRA=2
elseif (@enShape == "Shape #94")
a=1, b=0.6, m=12, n1=-400, n2=1, n3=270, fRF=11, fRA=1, fWF=4, fWA=1, fDP=-2
elseif (@enShape == "Shape #95")
a=0.5, b=1.3, m=5.7, n1=-1.4, n2=6, n3=2, s=4, fWF=-4, fWA=3, fDP=-2
elseif (@enShape == "Shape #96")
a=1, b=0.6, m=10, n1=32, n2=1, n3=-11, fRF=11, fRA=0.5
elseif (@enShape == "Shape #97")
a=2.1, b=2, m=8, n1=0.9, n2=1.8, n3=0.8, fRF=2.58, fRA=6
elseif (@enShape == "Shape #98")
a=1, b=1, m=3, n1=4.5, n2=10, n3=10, fTw=1.6, fRF=2.55, fRA=1
elseif (@enShape == "Shape #99")
a=1, b=1.07, m=22, n1=-0.11, n2=0.9, n3=4, fTw=-0.65, fWF=2.0, fWA=6.0
endif
a=a+@a, b=b+@b, m=m+@m, n1=n1+@n1, n2=n2+@n2, n3=n3+@n3
s = s+@iSweeps
fTw = fTw + @fTwist
fRA = fRA + @fRidgesAmp
fRF = fRF + @fRidgesFreq
fWA = fWA + @fWaveAmp
fWF = fWF + @fWaveFreq
fDP = fDP + @fDistPower
fInc = #pi/180 ; 360 tests
fRMin = 999999999
fRMax = -999999999
; Figure out maximum size (with some certainty)
float fEnd = #pi*2
while (fEnd > 0)
float rr
rr = (abs((cos(m * fEnd/4)/a)^n2) + ((abs(sin(m * fEnd/4)/b))^n3))^(-1.0/n1)
if (rr > fRMax), fRMax = rr, endif
if (rr < fRMin), fRMin = rr, endif
fEnd = fEnd - fInc
endwhile
endfunc
float func Iterate(complex pz)
float x = real(pz)
float y = (imag(pz))*@fStretchXY
float fTheta = atan(y/x)+@fRotation
if (x < 0.0), fTheta = fTheta + #pi, endif
if (fTheta == 0), fTheta = .001, endif
fTheta = real(@funcShapeMod1(fTheta))
float fPointDist = sqrt(x^2 + y^2)
;Twist
fTheta = fTheta + real(@funcTwist(fPointDist)) * fTw
;Waves
float fDistMult = fPointDist^fDP
fTheta = fTheta + fWA/100*fDistMult*real(sin(fPointDist*fWF*2*#pi))
float rT
float r = -999999999
int i = 1
while (i <= s)
i = i+1
rT = (abs((cos(m * real(@funcShapeMod2(fTheta))/4)/a)^n2) + ((abs(sin(m * real(@funcShapeMod2(fTheta))/4)/b))^n3))^(-1/n1)
if (rT > r), r = rT, endif
fTheta = fTheta + 2*#pi
endwhile
float fIndex = (fPointDist/((r)*(fMaxDist/fRMax)))/@fScale
; Ridges
fIndex = fIndex - fRA/100*real(sin(fTheta*fRF*2*#pi))
return fIndex
endfunc
private:
float a
float b
float m
float n1
float n2
float n3
float fTw ; Twist
float fRA ; Ridges Amp
float fRF ; Ridges Freq
float fWA ; Waves Amp
float fWF ; Waves Freq
float fDP ; Vary wave by distance (Distance Power)
int s ; Sweeps
float fMaxDist
float fInc
float fRMin
float fRMax
default:
title = "SSG"
int param iVersion
default = 1
visible = false
endparam
heading
Caption="Shape Parameters"
endheading
param enShape
caption = "Base Shape"
enum="Shape #0" "Shape #1: Null" "Shape #2" "Shape #3" "Shape #4" \
"Shape #5" "Shape #6" "Shape #7" "Shape #8" "Shape #9" \
"Shape #10" "Shape #11" "Shape #12" "Shape #13" "Shape #14" \
"Shape #15" "Shape #16" "Shape #17" "Shape #18" "Shape #19" \
"Shape #20" "Shape #21" "Shape #22" "Shape #23" "Shape #24" \
"Shape #25" "Shape #26" "Shape #27" "Shape #28" "Shape #29" \
"Shape #30" "Shape #31" "Shape #32" "Shape #33" "Shape #34" \
"Shape #35" "Shape #36" "Shape #37" "Shape #38" "Shape #39" \
"Shape #40" "Shape #41" "Shape #42" "Shape #43" "Shape #44" \
"Shape #45" "Shape #46" "Shape #47" "Shape #48" "Shape #49" \
"Shape #50" "Shape #51" "Shape #52" "Shape #53" "Shape #54" \
"Shape #55" "Shape #56" "Shape #57" "Shape #58" "Shape #59" \
"Shape #60" "Shape #61" "Shape #62" "Shape #63" "Shape #64" \
"Shape #65" "Shape #66" "Shape #67" "Shape #68" "Shape #69" \
"Shape #70" "Shape #71" "Shape #72" "Shape #73" "Shape #74" \
"Shape #75" "Shape #76" "Shape #77" "Shape #78" "Shape #79" \
"Shape #80" "Shape #81" "Shape #82" "Shape #83" "Shape #84" \
"Shape #85" "Shape #86" "Shape #87" "Shape #88" "Shape #89" \
"Shape #90" "Shape #91" "Shape #92" "Shape #93" "Shape #94" \
"Shape #95" "Shape #96" "Shape #97" "Shape #98" "Shape #99"
default = 0
endparam
float param a
caption="a +/-"
default = 0
endparam
float param b
caption="b +/-"
default = 0
endparam
float param m
caption="m +/-"
default = 0
hint="Increasing value tends to increase the number of 'arms' or 'lobes' in the shape."
endparam
float param n1
caption="n1 +/-"
default = 0
endparam
float param n2
caption="n2 +/-"
default = 0
endparam
float param n3
caption="n3 +/-"
default = 0
endparam
int param iSweeps
Caption="Sweeps"
default = 0
min=0
max=100
endparam
heading
Caption="Shape Modifiers"
endheading
float param fStretchXY
Caption = "Stretch (X/Y)"
default = 1.0
hint="Changes the aspect ratio of the shape."
endparam
float param fRotation
Caption = "Rotation (Radians)"
default = 0
hint="Rotates the shape from -2*pi to 2*pi degrees"
max = 6.283
min = -6.283
endparam
float param fScale
Caption = "Scale"
default = 1.0
hint="Scales the shape"
min = .00001
endparam
float param fTwist
Caption = "Twist +/-"
default = 0.0
hint="Twists the shape"
endparam
func funcTwist
caption = "Twist Function"
default = ident()
hint="Varies the amount of twist by the function applied to the distance"
endfunc
float param fRidgesFreq
Caption = "Ridges Frequency +/-"
default = 0.0
endparam
float param fRidgesAmp
Caption = "Ridges Amplitude +/-"
default = 0
endparam
float param fWaveFreq
Caption = "Waves Frequency +/-"
default = 0
endparam
float param fWaveAmp
Caption = "Waves Amplitude +/-"
default = 0
endparam
float param fDistPower
Caption = "Vary Wave by Distance +/-"
default = 0.0
hint="The higher the value, the less waviness in the center of the flower. \
Negative values push the waviness to the center"
endparam
func funcShapeMod1
caption = "Shape Modify 1"
default = ident()
endfunc
func funcShapeMod2
caption = "Shape Modify 2"
default = ident()
endfunc
}
;============================================================
;
; F L O W E R
;
;============================================================
class RKB_TrapShapeFlower(common.ulb:TrapShape) {
; An extended version of an n-leaved rose (pinch) shape - There are
; 60+ base shapes hard coded with the parameters being delta values
; from the base shapes.
public:
func RKB_TrapShapeFlower(Generic pparent)
TrapShape.TrapShape(pparent)
; True if function list is set to 'ident'
bTwstF = (@funcTwist (1.5) == 1.5)
bMF1 = (@funcShapeMod1(1.5) == 1.5)
bMF2 = (@funcShapeMod2(1.5) == 1.5)
endfunc
float func Iterate(complex pz)
float fTheta = atan2(pz)
float fPointDist = cabs(pz)
if fTheta < 0
fTheta = fTheta + 2*#pi
endif
; This is a chunk of old-style, precedural code in a
; class wrapper. I'm keeping it this way so that I
; only have one body of code to maintain.
;------ Code shared with ucl ------
; --- Initialize default values ---
float fLbs = 0.0 ; Lobes
float fTwst = 0.0 ; Twist
float fTwstF = fPointDist ; Twist Function
float fBlg = 1.0 ; Buldge
float fThk = 1.0 ; Lobe Thickness
float fBlm = 1.0 ; Bloom
float fWF = 0.0 ; Wave Frequency
float fWA = 0.0 ; Wave Amplitude
float fWS = 0.0 ; Wave Skew
float fRF = 0.0 ; Ridges Frequency
float fRA = 0.0 ; Ridges Amplitude
float fOsc = 0.0 ; Oscillator Frequency
int iMF1 = 0 ; Index for Mod Function 1
float fO = sin(fTheta*(@fOscFreq))
float fMF1 = 1111.1 ; Mod Function 1 [HACK Alert]
float fMF2 = fTheta ; Mod Function 2
;--- Setup values for Predefined shapes.
if (@enShape == "Shape #0")
fLbs = 4
elseif (@enShape == "Shape #1: Null")
if (@fLobes == 0), fLbs = 1.0, endif ; Force at leaset one lobe
elseif (@enShape == "Shape #2")
fLbs = 3, fRF = 8, fRA = 1
elseif (@enShape == "Shape #3")
fLbs = 5, fThk = .2
elseif (@enShape == "Shape #4")
fLbs = 16, fThk = 5
elseif (@enShape == "Shape #5")
fLbs = 16, fThk = 5, iMF1 = 1
elseif (@enShape == "Shape #6")
fLbs = 16, fThk = 5, iMF1 = 2
elseif (@enShape == "Shape #7")
fLbs = 12, fThk = 5, iMF1 = 3
elseif (@enShape == "Shape #8")
fLbs = 6, fThk = 10, fRF = 12, fRA = 1
elseif (@enShape == "Shape #9")
fLbs = 5, fRF = 5, fRA = 3
elseif (@enShape == "Shape #10")
fLbs = 3, fThk = 4, fRF = 8, fRA = 2, fTwst = 1.8, iMF1 = 4
elseif (@enShape == "Shape #11")
fLbs = 3, fRF = 4, fRA = 15, fWF = 2, fWA = 4
elseif (@enShape == "Shape #12")
fLbs = 3, fBlm = .4, fRF = 4, fRA = 15, fWF = 2, fWA = 4, fTwst = .2, fOsc = 44, iMF1 = 3
elseif (@enShape == "Shape #13")
fLbs = 2, fBlm = 1.6, fBlg = .5, fTwst = 2, fTwstF = exp(fPointDist)
elseif (@enShape == "Shape #14")
fLbs = 24, fTwst = 1.5
elseif (@enShape == "Shape #15")
fLbs = 5, fThk = 3, fBlg = .8, iMF1 = 6
elseif (@enShape == "Shape #16")
fLbs = 3, fBlm = 3, fBlg = 2.4, fTwst = -2.3, fOsc = 3
elseif (@enShape == "Shape #17")
fLbs = 4, fThk = .1, fBlg=.5, iMF1 = 5
elseif (@enShape == "Shape #18")
fLbs = 2, fThk = 5, fBlg = .6, fTwst = 2.5, fTwstF = log(fPointDist), fRF = 12, fRA=4
elseif (@enShape == "Shape #19")
fLbs = 6, fMF2 = sqr(fTheta)
elseif (@enShape == "Shape #20")
fLbs = 20, fBlm = 2, fThk = 3.7, fBlg = 1.7, fRF = 12, fRA = 2
elseif (@enShape == "Shape #21")
fLbs = 16, fWF = 4, fWA = 4
elseif (@enShape == "Shape #22")
fLbs = 3, fBlg=-1, fTwst = 1.8, fRF=8, fRA=2, iMF1 = 1
elseif (@enShape == "Shape #23")
fLbs = 16, fBlg = .5, fTwst = 3
elseif (@enShape == "Shape #24")
fLbs = 32, fTwst = 1.5, fWF = 12, fWA=4, fOsc = 64
elseif (@enShape == "Shape #25")
fLbs = 3, fBlm = 3, fTwst = -2.3, fTwstF = sqr(fPointDist), fOsc = 3, fRF=12, fRA=4
elseif (@enShape == "Shape #26")
fLbs = 32, fBlg=.5
elseif (@enShape == "Shape #27")
fLbs = 3, fBlg=-1, fTwst = 1.8, fRF=8, fRA=2, iMF1 = 1, fMF2 = log(fTheta)
elseif (@enShape == "Shape #28")
fLbs = 16, fBlg = .5, fTwst = 3, fWF = 8, fWA = 12
elseif (@enShape == "Shape #29")
fLbs = 4, fTwst = 1.5, fWF = 12, fWA=4, fOsc = 64
elseif (@enShape == "Shape #30")
fLbs = 1, fTwst = 10, fBlg = .5, fBlm = 1.2
elseif (@enShape == "Shape #31")
fLbs = 16, fWF = 4, fWA = 4, fBlg = .47, iMF1 = 6
elseif (@enShape == "Shape #32")
fLbs = 5, fRF = 12, fRA = 2, fOsc = 5, iMF1 = 3
elseif (@enShape == "Shape #33")
fLbs = 32, fThk = 3, fBlg = 2, fTwst = .5, fTwstF = sqr(fPointDist), fWF = 4, fWA = 2, fOsc = 32, iMF1 = 8
elseif (@enShape == "Shape #34")
fLbs = 5, fTwst = .5, fTwstF = exp(fPointDist), fRF = 12, fRA = 2, fOsc = 5, iMF1 = 3, fWF = 2, fWA= 2
elseif (@enShape == "Shape #35")
fLbs = 2, fBlm = .6, fThk = .1, fBlg = 1.2, fTwst = 2.0, fTwstF = cotanh(fPointDist), fWF=3, fWA = 12, iMF1 = 1
elseif (@enShape == "Shape #36")
fLbs = 2, fThk = 5, fBlg = .6, fBlm = 1.5, fTwst = 2.5, fTwstF = log(fPointDist), fRF = 12, fRA=4, fWF = 22, fWA = 8
elseif (@enShape == "Shape #37")
fLbs = 5, fThk = 11, fBlg = .7, fRF = 4, fRA = 12
elseif (@enShape == "Shape #38")
fLbs = 32, fThk = 3, fBlg = 2, fTwst = 1, fTwstF = sqr(fPointDist), fRF = 8, fRA = 24, fOsc = 32, iMF1 = 8
elseif (@enShape == "Shape #39")
fLbs = 5, fRF = 12, fRA = 2, fOsc = 5, iMF1 = 7, fWF = 2, fWA= 2
elseif (@enShape == "Shape #40")
fLbs = 3, fBlm = 1.75, fTwst = 1, fTwstF = real(asin(fPointDist + flip(0))), fOsc = 44, iMF1 = 9
elseif (@enShape == "Shape #41")
fLbs = 5, fThk = 3, fBlm = 1.4, fBlg = .4, fTwst = -1, fMF2 = sin(fTheta), iMF1 = 10
elseif (@enShape == "Shape #42")
fLbs = 5, fThk = -2.5, fBlg = 0.5, fTwst = 3, fTwstF = sin(fPointDist), fRF = 11, fRA = 4, fWF = 4, fWA = 5
elseif (@enShape == "Shape #43")
fLbs = 32, fTwst = 1.5, fWF = 12, fWA=4
elseif (@enShape == "Shape #44")
fLbs = 6, fWA=4, iMF1 = 6, fMF2 = log(fTheta)
elseif (@enShape == "Shape #45")
fLbs = 3, fThk = -1.4, fTwst = 3, fTwstF = cotanh(fPointDist)
elseif (@enShape == "Shape #46")
fLbs = 2, fBlm = .6, fBlg = 1.8, fThk = -1.4, fTwst = 3, fTwstF = 0, fRF = 12, fRA=12
elseif (@enShape == "Shape #47")
fLbs = 2, fThk = -.01, fTwst = 3, fRF = 12, fRA=12
elseif (@enShape == "Shape #48")
fLbs = 3, fBlm = 10, fBlg = -2, fRF = 4, fRA = 4, fWF = 4, fWA = 4
elseif (@enShape == "Shape #49")
fLbs = 6, fWA=4, iMF1 = 6, fMF2 = log(fTheta), fTwst = 3
elseif (@enShape == "Shape #50")
fLbs = 2, fBlm = .6, fBlg = 1.8, fThk = -1.4, fTwst = 3, fOsc = 2, fRF = 12, fRA=10, fMF2 = cos(fTheta)
elseif (@enShape == "Shape #51")
fLbs = 3, fBlm = 1.5, fBlg = -.85, fTwst = 1, fRF = 4, fRA = 4, fWF = 4, fWA = 4, iMF1 = 1
elseif (@enShape == "Shape #52")
fLbs = 2.5, fRF = 4, fRA = 1, fMF2 = sqr(fTheta)
elseif (@enShape == "Shape #53")
fLbs = 6, fBlm = 24, fThk = .1, fBlg = 2, fTwst = 5, fTwstF = sin(fPointDist), fOsc = 6
elseif (@enShape == "Shape #54")
fLbs = 3, fThk = -1.4, fTwst = 3, fTwstF = atan(fPointDist), fOsc = 3
elseif (@enShape == "Shape #55")
fLbs = 6, fWA=4, iMF1 = 6, fMF2 = log(fTheta), fTwst = 3, fTwstF = cos(fPointDist)
elseif (@enShape == "Shape #56")
fLbs = 2, fBlm = .6, fBlg = 1.8, fThk = -1.4, fTwst = 3, fOsc = 2, fRF = 12, fRA=10, fMF2 = 0
elseif (@enShape == "Shape #57")
fLbs = 3, fBlm = 10, fBlg = -2, fRF = 4, fRA = 4, fWF = 4, fWA = 4, iMF1 = 1
elseif (@enShape == "Shape #58")
fLbs = 3, fBlg = 2, fRF = 4, fRA = 11, fWF = 4, fWA = 22, fWS = -1
elseif (@enShape == "Shape #59")
fLbs = 3, fTwst = 1, fRF = 12, fRA = 4, fWF = 4, fWA = 22, fOsc = 3, iMF1 = 1
elseif (@enShape == "Shape #60")
fLbs = 4, fThk = .2, fBlm = 1.5, fWF = 5, fWA = 5, fWS = -1.5
endif
; Avoid divide by zero
if ((fBlm + @fBloom) == 0)
fBlm = fBlm + .0001
endif
; Shape mod 2
if (bMF2)
fTheta = fMF2
else
fTheta = real(@funcShapeMod2(fTheta))
endif
; Twist function
if (!bTwstF)
fTwstF = real(@funcTwist(fPointDist))
endif
;Twist
fTheta = fTheta + fTwstF * (fTwst + @fTwist)
if (fTheta < 0), fTheta = fTheta+2*#pi, endif
if (fTheta > 2*#pi), fTheta = fTheta-2*#pi, endif
;Bulge
float fPointDist = fPointDist^(@fBulge + fBlg)
;Waves
fTheta = fTheta + (fWA + @fWaveAmp)/100*fPointDist^(fWS + @fWaveSkew)*real(sin(fPointDist*(fWF + @fWaveFreq)*2*#pi))
;Oscillator
float fO = sin(fTheta*(fOsc + @fOscFreq))
; Shape mod 1
if (!bMF1) ; Overriden
if (fO > 0)
fMF1 = real(@funcShapeMod1(abs(cos((fLbs + @fLobes)*fTheta*0.5))))
else
fMF1 = real(@funcShapeMod1(abs(sin((fLbs + @fLobes)*fTheta*0.5))))
endif
else ; Base shape
if (fO > 0)
float fT = abs(cos((fLbs + @fLobes)*fTheta*0.5))
else
float fT = abs(sin((fLbs + @fLobes)*fTheta*0.5))
endif
if (iMF1 == 0) ; ident
fMF1 = fT
elseif (iMF1 == 1) ; exp
fMF1 = exp(fT)
elseif (iMF1 == 2) ; acos
fMF1 = acos(fT)
elseif (iMF1 == 3) ; atanh
fMF1 = atanh(fT)
elseif (iMF1 == 4) ; log
fMF1 = log(fT)
elseif (iMF1 == 5) ; cos
fMF1 = cos(fT)
elseif (iMF1 == 6) ; asin
fMF1 = asin(fT)
elseif (iMF1 == 7) ; cotanh
fMF1 = cotanh(fT)
elseif (iMF1 == 8) ; recip
fMF1 = recip(fT)
elseif (iMF1 == 9) ; tan
fMF1 = tan(fT)
elseif (iMF1 == 10) ; sin
fMF1 = sin(fT)
endif
endif
; Calc shape
float fIndex = real((((fPointDist)))) / fMF1^(1/(fThk + @fThick))/(fBlm + @fBloom)
; Ridges
fIndex = fIndex - (fRA + @fRidgesAmp)/100*real(sin(fTheta*(fRF + @fRidgesFreq)*2*#pi))
;------ end shared ucl ------
return fIndex
endfunc
private:
; True if function list is set to 'ident'
bool bTwstF
bool bMF1
bool bMF2
default:
title = "Flower"
param enShape
caption = "Base Shapes"
enum="Shape #0" "Shape #1: Null" "Shape #2" "Shape #3" "Shape #4" \
"Shape #5" "Shape #6" "Shape #7" "Shape #8" "Shape #9" \
"Shape #10" "Shape #11" "Shape #12" "Shape #13" "Shape #14" \
"Shape #15" "Shape #16" "Shape #17" "Shape #18" "Shape #19" \
"Shape #20" "Shape #21" "Shape #22" "Shape #23" "Shape #24" \
"Shape #25" "Shape #26" "Shape #27" "Shape #28" "Shape #29" \
"Shape #30" "Shape #31" "Shape #32" "Shape #33" "Shape #34" \
"Shape #35" "Shape #36" "Shape #37" "Shape #38" "Shape #39" \
"Shape #40" "Shape #41" "Shape #42" "Shape #43" "Shape #44" \
"Shape #45" "Shape #46" "Shape #47" "Shape #48" "Shape #49" \
"Shape #50" "Shape #51" "Shape #52" "Shape #53" "Shape #54" \
"Shape #55" "Shape #56" "Shape #57" "Shape #58" "Shape #59" \
"Shape #60" ; "Shape #61" "Shape #62" "Shape #63" "Shape #64" \
; "Shape #65" "Shape #66" "Shape #67" "Shape #68" "Shape #69"
default = 0
endparam
float param fLobes
caption = "Lobes +/-"
default = 0
hint = "The number of 'petals' in the 'flower.'"
endparam
float param fThick
Caption = "Lobe thickness +/-"
default = 0.0
hint="Varies the thickness of individual petals."
endparam
float param fBloom
Caption = "Bloom +/-"
default = 0.0
hint="Scales the shape sometimes revealing/expanding details."
endparam
float param fBulge
Caption = "Bulge +/-"
default = 0.0
hint = "Buldge out the shape."
endparam
float param fTwist
caption = "Twist +/-"
default = 0
hint = "Spirals the petals."
endparam
func funcTwist
caption = "Twist function override"
default = ident()
hint="Varies the amount of twist by the function applied to the distance."
endfunc
float param fRidgesFreq
Caption = "Ridges Frequency +/-"
default = 0.0
hint = "Adds ridges/lines to the petals."
endparam
float param fRidgesAmp
Caption = "Ridges Power +/-"
default = 0.0
endparam
float param fWaveFreq
Caption = "Waves Frequency +/-"
default = 0.0
hint = "Adds waves to the petals."
endparam
float param fWaveAmp
Caption = "Waves Power +/-"
default = 0.0
endparam
float param fWaveSkew
Caption = "Wave Dist. Skew +/-"
default = 0.0
hint="Skews waviness to the inside or outside of the flower."
endparam
float param fOscFreq
Caption = "Oscillator Frequency +/-"
default = 0.0
hint="Combines two out-of-phase versions of the flower. Values equal to the \
number of lobes and values in the range 40-200 are often interesting."
endparam
func funcShapeMod1
caption = "Shape Modify 1 override."
default = ident()
endfunc
func funcShapeMod2
caption = "Shape Modify 2 override."
default = ident()
endfunc
int param iVersion
default = 1
visible = false
endparam
}
;============================================================
;
; D E F O R M S H A P E
;
;============================================================
class RKB_TrapShapeDeformShape(common.ulb:TrapShape) {
; A shape plug-in which transforms other shapes including twists, ridges,
; and waves
public:
import "dmj5.ulb"
func RKB_TrapShapeDeformShape(Generic pparent)
TrapShape(pparent)
; True if function list is set to 'ident'
Shape = new @shape(this)
endfunc
float func Iterate(complex pz)
fTheta = atan2(pz)
fR = cabs(pz)
; Twist
fTheta = fTheta + real(@funcTwist(fR)) * @fTwist
;Bulge
fR = fR^@fBulge
;Waves
fTheta = fTheta + @fWaveAmp/100*fR^@fWaveSkew*sin(fR*@fWaveFreq*2*#pi)
;Oscillator
if (sin(fTheta*@fOscFreq) > 0)
fTheta = fTheta + @fOscPhase/180*#pi
endif
fX = fR*cos(fTheta)
fY = fR*sin(fTheta)
tz = fX + flip(fY)
fIndex = Shape.Iterate(tz)
; Scale/Bloom the shape
fIndex = fIndex / @fBloom
; Ridges
fIndex = fIndex - (@fRidgesAmp)/100*real(sin(fTheta*(@fRidgesFreq)*2*#pi))
return fIndex
endfunc
private:
TrapShape Shape
complex tz
float fX
float fY
float fR
float fTheta
float fIndex
default:
title = "Deform Shape"
int param iVersion
default = 1
visible = false
endparam
TrapShape param shape
caption = "Trap Shape"
; default = RKB_TrapShapeFlower
default = DMJ_TrapShapeAstroid
hint = "Selects a shape to be used for the deformations."
endparam
float param fBloom
Caption = "Bloom"
default = 1.0
hint = "Scales the shape often revealing more detail."
endparam
float param fBulge
Caption = "Bulge"
default = 1.0
hint = "Buldge out the shape. Negative values tend to invert the shape."
endparam
float param fTwist
caption = "Twist"
default = 0
hint = "Positive values twist clockwise, negative values counter clockwise."
endparam
func funcTwist
caption = "Twist function override"
default = ident()
hint="Varies the amount of twist by the function applied to the distance."
endfunc
float param fRidgesFreq
Caption = "Ridges Frequency"
default = 0.0
hint = "Adds ridges/lines to the shape."
endparam
float param fRidgesAmp
Caption = "Ridges Power"
default = 0.0
endparam
float param fWaveFreq
Caption = "Waves Frequency"
default = 0.0
hint = "Adds waves to the shape."
endparam
float param fWaveAmp
Caption = "Waves Power"
default = 0.0
endparam
float param fWaveSkew
Caption = "Wave Skew"
default = 0.0
hint="Skews waviness. Positive numbers push the waviness to the outside \
of the shape. Negative numbers push the waviness to the inside."
endparam
float param fOscFreq
Caption = "Oscillator Frequency"
default = 0.0
hint="Combines two out-of-phase versions of the shape."
endparam
float param fOscPhase
Caption = "Oscillator Phase"
default = 45.0
endparam
}
;============================================================
;
; S H A P E C O L L E C T I O N
;
;============================================================
class RKB_TrapShapeCollection(common.ulb:TrapShape) {
; A shape plug-in which combines all shape classes including textures
; into a single list (as of 7/4/08)
public:
import "dmj5.ulb"
import "kcc5.ulb"
import "mmf.ulb"
import "mt.ulb"
import "reb.ulb"
import "standard.ulb"
import "rkb.ulb"
func RKB_TrapShapeCollection(Generic pparent)
TrapShape.TrapShape(pparent)
;dmj
if (@enShape == "dmj5 Astroid")
Shape = new @p_DMJ_TrapShapeAstroid(this)
elseif (@enShape == "dmj5 Cross")
Shape = new @p_DMJ_TrapShapeCross(this)
elseif (@enShape == "dmj5 Egg")
Shape = new @p_DMJ_TrapShapeEgg(this)
elseif (@enShape == "dmj5 fBm")
Shape = new @p_DMJ_TrapShapefBm(this)
elseif (@enShape == "dmj5 Flat Texture")
Shape = new @p_DMJ_TrapShapeFlat(this)
elseif (@enShape == "dmj5 Hyperbola")
Shape = new @p_DMJ_TrapShapeHyperbola(this)
elseif (@enShape == "dmj5 Hypercross")
Shape = new @p_DMJ_TrapShapeHypercross(this)
elseif (@enShape == "dmj5 Lines")
Shape = new @p_DMJ_TrapShapeLines(this)
elseif (@enShape == "dmj5 Pinch")
Shape = new @p_DMJ_TrapShapePinch(this)
elseif (@enShape == "dmj5 Point")
Shape = new @p_DMJ_TrapShapePoint(this)
elseif (@enShape == "dmj5 Rectangle")
Shape = new @p_DMJ_TrapShapeRectangle(this)
; kcc5
elseif (@enShape == "kcc5 Ampersand Trap")
Shape = new @p_KCC_AmpersandTrap(this)
elseif (@enShape == "kcc5 Angle Function 1")
Shape = new @p_KCC_AngleFunction1Trap(this)
elseif (@enShape == "kcc5 Angle Function 2")
Shape = new @p_KCC_AngleFunction2Trap(this)
elseif (@enShape == "kcc5 ArcTangent Trap")
Shape = new @p_KCC_ArcTangentTrap(this)
elseif (@enShape == "kcc5 Atan Trap")
Shape = new @p_KCC_AtanTrap(this)
elseif (@enShape == "kcc5 Balls Trap")
Shape = new @p_KCC_BallsTrap(this)
elseif (@enShape == "kcc5 Bean Curve Trap")
Shape = new @p_KCC_BeanCurveTrap(this)
elseif (@enShape == "kcc5 Bicorn Curve Trap")
Shape = new @p_KCC_BicornCurveTrap(this)
elseif (@enShape == "kcc5 Bicuspid Curve Trap")
Shape = new @p_KCC_BicuspidCurveTrap(this)
elseif (@enShape == "kcc5 Bifoliate Trap")
Shape = new @p_KCC_BifoliateTrap(this)
elseif (@enShape == "kcc5 Bifolium Trap")
Shape = new @p_KCC_BifoliumTrap(this)
elseif (@enShape == "kcc5 Blobs Trap")
Shape = new @p_KCC_BlobsTrap(this)
elseif (@enShape == "kcc5 Bow Trap")
Shape = new @p_KCC_BowTrap(this)
elseif (@enShape == "kcc5 Bubbles Trap")
Shape = new @p_KCC_BubblesTrap(this)
elseif (@enShape == "kcc5 Butterfly Curve Trap")
Shape = new @p_KCC_ButterflyCurveTrap(this)
elseif (@enShape == "kcc5 Cassini Ovals Trap")
Shape = new @p_KCC_CassiniOvalsTrap(this)
elseif (@enShape == "kcc5 Circles Trap")
Shape = new @p_KCC_CirclesTrap(this)
elseif (@enShape == "kcc5 Cissoid of Diocles Trap")
Shape = new @p_KCC_CissoidOfDioclesTrap(this)
elseif (@enShape == "kcc5 Cochleoid Trap")
Shape = new @p_KCC_CochleoidTrap(this)
elseif (@enShape == "kcc5 Cocked Hat Trap")
Shape = new @p_KCC_CockedHatTrap(this)
elseif (@enShape == "kcc5 Conchoid of Nicomedes Trap")
Shape = new @p_KCC_ConchoidOfNicomedesTrap(this)
elseif (@enShape == "kcc5 Cones Trap")
Shape = new @p_KCC_ConesTrap(this)
elseif (@enShape == "kcc5 Cruciform Trap")
Shape = new @p_KCC_CruciformTrap(this)
elseif (@enShape == "kcc5 Curls Trap")
Shape = new @p_KCC_CurlsTrap(this)
elseif (@enShape == "kcc5 Devil's Curve Trap")
Shape = new @p_KCC_DevilsCurveTrap(this)
elseif (@enShape == "kcc5 Diamond Trap")
Shape = new @p_KCC_DiamondTrap(this)
elseif (@enShape == "kcc5 Dimpled Spheroids Trap")
Shape = new @p_KCC_DimpledSpheroidsTrap(this)
elseif (@enShape == "kcc5 Dumbbell Curve Trap")
Shape = new @p_KCC_DumbbellCurveTrap(this)
elseif (@enShape == "kcc5 Dürer's Conchoid Trap")
Shape = new @p_KCC_DurersConchoidTrap(this)
elseif (@enShape == "kcc5 Eight Curve Trap")
Shape = new @p_KCC_EightCurveTrap(this)
elseif (@enShape == "kcc5 Flexballs Trap")
Shape = new @p_KCC_FlexballsTrap(this)
elseif (@enShape == "kcc5 Happy Accident Trap")
Shape = new @p_KCC_HappyAccidentTrap(this)
elseif (@enShape == "kcc5 Harlequin Trap")
Shape = new @p_KCC_HarlequinTrap(this)
elseif (@enShape == "kcc5 Hyperbola Trap")
Shape = new @p_KCC_HyperbolaTrap(this)
elseif (@enShape == "kcc5 Kappa Curve Trap")
Shape = new @p_KCC_KappaCurveTrap(this)
elseif (@enShape == "kcc5 Keppler's Folium Trap")
Shape = new @p_KCC_KepplersFoliumTrap(this)
elseif (@enShape == "kcc5 Keratoid Cusp Trap")
Shape = new @p_KCC_KeratoidCuspTrap(this)
elseif (@enShape == "kcc5 Knot Curve Trap")
Shape = new @p_KCC_KnotCurveTrap(this)
elseif (@enShape == "kcc5 Lemniscate Corrected Trap")
Shape = new @p_KCC_LemniscateCorrectedTrap(this)
elseif (@enShape == "kcc5 Lemniscate Trap")
Shape = new @p_KCC_LemniscateTrap(this)
elseif (@enShape == "kcc5 Limacon Trap")
Shape = new @p_KCC_LimaconTrap(this)
elseif (@enShape == "kcc5 Line Trap")
Shape = new @p_KCC_LineTrap(this)
elseif (@enShape == "kcc5 Links Curve Trap")
Shape = new @p_KCC_LinksCurveTrap(this)
elseif (@enShape == "kcc5 Maltese Cross Curve Trap")
Shape = new @p_KCC_MalteseCrossCurveTrap(this)
elseif (@enShape == "kcc5 Parabola Trap")
Shape = new @p_KCC_ParabolaTrap(this)
elseif (@enShape == "kcc5 Pear-Shaped Curve Trap")
Shape = new @p_KCC_PearShapedCurveTrap(this)
elseif (@enShape == "kcc5 Petals Trap")
Shape = new @p_KCC_PetalsTrap(this)
elseif (@enShape == "kcc5 Piriform Trap")
Shape = new @p_KCC_PiriformTrap(this)
elseif (@enShape == "kcc5 Polygon Trap")
Shape = new @p_KCC_PolygonTrap(this)
elseif (@enShape == "kcc5 Quadrifolium Trap")
Shape = new @p_KCC_QuadrifoliumTrap(this)
elseif (@enShape == "kcc5 Ring Segments Trap")
Shape = new @p_KCC_RingSegmentsTrap(this)
elseif (@enShape == "kcc5 Rings Trap")
Shape = new @p_KCC_RingsTrap(this)
elseif (@enShape == "kcc5 Rose Curve Trap")
Shape = new @p_KCC_RoseCurveTrap(this)
elseif (@enShape == "kcc5 Serpentine Curve Trap")
Shape = new @p_KCC_SerpentineCurveTrap(this)
elseif (@enShape == "kcc5 sin(x)/x Trap")
Shape = new @p_KCC_sinXTrap(this)
elseif (@enShape == "kcc5 Sinus + Cosinus Trap")
Shape = new @p_KCC_SinusCosinusTrap(this)
elseif (@enShape == "kcc5 Spheres Trap")
Shape = new @p_KCC_SpheresTrap(this)
elseif (@enShape == "kcc5 Spheroids Trap")
Shape = new @p_KCC_SpheroidsTrap(this)
elseif (@enShape == "kcc5 Spiral Trap")
Shape = new @p_KCC_SpiralTrap(this)
elseif (@enShape == "kcc5 Square Trap")
Shape = new @p_KCC_SquareTrap(this)
elseif (@enShape == "kcc5 Squares Trap")
Shape = new @p_KCC_SquaresTrap(this)
elseif (@enShape == "kcc5 Stalks Trap")
Shape = new @p_KCC_StalksTrap(this)
elseif (@enShape == "kcc5 Star of David Trap")
Shape = new @p_KCC_StarOfDavidTrap(this)
elseif (@enShape == "kcc5 Stirrup Curve Trap")
Shape = new @p_KCC_StirrupCurveTrap(this)
elseif (@enShape == "kcc5 Strange Shape Trap")
Shape = new @p_KCC_StrangeShapeTrap(this)
elseif (@enShape == "kcc5 Swastika Curve Trap")
Shape = new @p_KCC_SwastikaCurveTrap(this)
elseif (@enShape == "kcc5 Tangent Balls Trap")
Shape = new @p_KCC_TangentBallsTrap(this)
elseif (@enShape == "kcc5 Tangent Trap")
Shape = new @p_KCC_TangentTrap(this)
elseif (@enShape == "kcc5 Trefoil Trap")
Shape = new @p_KCC_TrefoilTrap(this)
elseif (@enShape == "kcc5 Trident of Descartes Trap")
Shape = new @p_KCC_TridentOfDescartesTrap(this)
elseif (@enShape == "kcc5 Trident Trap")
Shape = new @p_KCC_TridentTrap(this)
elseif (@enShape == "kcc5 Trifolium Trap")
Shape = new @p_KCC_TrifoliumTrap(this)
elseif (@enShape == "kcc5 Trisectrix of Maclaurin Trap")
Shape = new @p_KCC_TrisectrixOfMaclaurinTrap(this)
elseif (@enShape == "kcc5 Twisted Cross Trap")
Shape = new @p_KCC_TwistedCrossTrap(this)
elseif (@enShape == "kcc5 Two Ellipses Trap")
Shape = new @p_KCC_TwoEllipsesTrap(this)
elseif (@enShape == "kcc5 Witch of Agnesi Trap")
Shape = new @p_KCC_WitchOfAgnesiTrap(this)
; mmf
elseif (@enShape == "mmf Angles (of z)")
Shape = new @p_MMF_TrapShapeAngle(this)
elseif (@enShape == "mmf Angles (of z-zold or z-older)")
Shape = new @p_MMF_TrapShapeOldAngles(this)
elseif (@enShape == "mmf Centre of Curvature")
Shape = new @p_MMF_TrapShapeCentreOfCurvature(this)
elseif (@enShape == "mmf Curvature")
Shape = new @p_MMF_TrapShapeCurvature(this)
elseif (@enShape == "mmf Functions")
Shape = new @p_MMF_TrapShapeFnz(this)
elseif (@enShape == "mmf Orbitals")
Shape = new @p_MMF_TrapShapeOrbitals(this)
elseif (@enShape == "mmf Simple Vergence")
Shape = new @p_MMF_TrapShapeSimpleVergence(this)
elseif (@enShape == "mmf Triangle Inequality")
Shape = new @p_MMF_TrapShapeTriangleInequality(this)
; mt
elseif (@enShape == "mt Bump Maps Texture")
Shape = new @p_MT_BumpMapsTexture(this)
elseif (@enShape == "mt Butterfly")
Shape = new @p_MT_TrapShapeButterfly(this)
elseif (@enShape == "mt Cardioid")
Shape = new @p_MT_TrapShapeCardioid(this)
elseif (@enShape == "mt Crackle Texture")
Shape = new @p_MT_CrackleTexture(this)
elseif (@enShape == "mt Folium")
Shape = new @p_MT_TrapShapeFolium(this)
elseif (@enShape == "mt Gnarl Texture")
Shape = new @p_MT_GnarlTexture(this)
elseif (@enShape == "mt Gnarl")
Shape = new @p_MT_TrapShapeGnarl(this)
elseif (@enShape == "mt Harlequin")
Shape = new @p_MT_TrapShapeHarlequin(this)
elseif (@enShape == "mt Image Maps Texture")
Shape = new @p_MT_ImageMapsTexture(this)
elseif (@enShape == "mt Marble Texture")
Shape = new @p_MT_MarbleTexture(this)
elseif (@enShape == "mt Martin")
Shape = new @p_MT_TrapShapeMartin(this)
elseif (@enShape == "mt Perlin Noise 3D Texture")
Shape = new @p_MT_PerlinNoise3DTexture(this)
elseif (@enShape == "mt Perlin Noise Texture")
Shape = new @p_MT_PerlinNoiseTexture(this)
elseif (@enShape == "mt Popcorn Texture")
Shape = new @p_MT_PopcornTexture(this)
elseif (@enShape == "mt Popcorn")
Shape = new @p_MT_TrapShapePopcorn(this)
elseif (@enShape == "mt Rhodonea")
Shape = new @p_MT_TrapShapeRhodonea(this)
elseif (@enShape == "mt Rose")
Shape = new @p_MT_TrapShapeRose(this)
elseif (@enShape == "mt Sextic")
Shape = new @p_MT_TrapShapeSextic(this)
elseif (@enShape == "mt Sine")
Shape = new @p_MT_TrapShapeSine(this)
elseif (@enShape == "mt Transform")
Shape = new @p_MT_TrapShape_Transform(this)
elseif (@enShape == "mt Turbulence Texture")
Shape = new @p_MT_TurbulenceTexture(this)
elseif (@enShape == "mt Voronoi Texture")
Shape = new @p_MT_VoronoiTexture(this)
elseif (@enShape == "mt Yorke Texture")
Shape = new @p_MT_YorkeTexture(this)
; reb
elseif (@enShape == "reb 4D Orbit")
Shape = new @p_REB_TrapShape4DOrbit(this)
elseif (@enShape == "reb Ampersand")
Shape = new @p_REB_TrapShapeAmpersand(this)
elseif (@enShape == "reb Arachnida 1")
Shape = new @p_REB_TrapShapeArachnida1(this)
elseif (@enShape == "reb Arachnida 2")
Shape = new @p_REB_TrapShapeArachnida2(this)
elseif (@enShape == "reb Archimedes")
Shape = new @p_REB_TrapShapeArchimedes(this)
elseif (@enShape == "reb Astroid REB")
Shape = new @p_REB_TrapShapeREBAstroid(this)
elseif (@enShape == "reb Atzema Spiral")
Shape = new @p_REB_TrapShapeAtzemaSpiral(this)
elseif (@enShape == "reb Bean")
Shape = new @p_REB_TrapShapeBean(this)
elseif (@enShape == "reb Bicorn")
Shape = new @p_REB_TrapShapeBicorn(this)
elseif (@enShape == "reb Bicuspid")
Shape = new @p_REB_TrapShapeBicuspid(this)
elseif (@enShape == "reb Bifolium")
Shape = new @p_REB_TrapShapeBifolium(this)
elseif (@enShape == "reb Bow")
Shape = new @p_REB_TrapShapeBow(this)
elseif (@enShape == "reb Butterfly")
Shape = new @p_REB_TrapShapeButterfly(this)
elseif (@enShape == "reb Cardiod")
Shape = new @p_REB_TrapShapeCardiod(this)
elseif (@enShape == "reb Cassini Ovals")
Shape = new @p_REB_TrapShapeCassiniOvals(this)
elseif (@enShape == "reb Cayley's Sextic")
Shape = new @p_REB_TrapShapeCayleysSextic(this)
elseif (@enShape == "reb Ceil Floor")
Shape = new @p_REB_TrapShapeCeilFloor(this)
elseif (@enShape == "reb Cf Plus")
Shape = new @p_REB_TrapShapeCfPlus(this)
elseif (@enShape == "reb Chip 2")
Shape = new @p_REB_TrapShapeChip2(this)
elseif (@enShape == "reb Chip")
Shape = new @p_REB_TrapShapeChip(this)
elseif (@enShape == "reb Circle Catacaustic")
Shape = new @p_REB_TrapShapeCircleCatacaustic(this)
elseif (@enShape == "reb Circle")
Shape = new @p_REB_TrapShapeCircle(this)
elseif (@enShape == "reb Cissoid of Diocles")
Shape = new @p_REB_TrapShapeCissoidofDiocles(this)
elseif (@enShape == "reb Cochleoid")
Shape = new @p_REB_TrapShapeCochleoid(this)
elseif (@enShape == "reb Conchoid")
Shape = new @p_REB_TrapShapeConchoid(this)
elseif (@enShape == "reb CosMartin 2")
Shape = new @p_REB_TrapShapeCosMartin2(this)
elseif (@enShape == "reb CosMartin")
Shape = new @p_REB_TrapShapeCosMartin(this)
elseif (@enShape == "reb Cotes' Spiral")
Shape = new @p_REB_TrapShapeCotesSpiral(this)
elseif (@enShape == "reb Cruciform")
Shape = new @p_REB_TrapShapeCruciform(this)
elseif (@enShape == "reb Curtate Cycloid")
Shape = new @p_REB_TrapShapeCurtateCycloid(this)
elseif (@enShape == "reb Cycloid of Seva")
Shape = new @p_REB_TrapShapeCycloidofSeva(this)
elseif (@enShape == "reb Cycloid")
Shape = new @p_REB_TrapShapeCycloid(this)
elseif (@enShape == "reb Deltoid Catacaustic")
Shape = new @p_REB_TrapShapeDeltoidCatacaustic(this)
elseif (@enShape == "reb Devils Curve")
Shape = new @p_REB_TrapShapeDevilsCurve(this)
elseif (@enShape == "reb Diamond")
Shape = new @p_REB_TrapShapeDiamond(this)
elseif (@enShape == "reb Dipole Curve")
Shape = new @p_REB_TrapShapeDipoleCurve(this)
elseif (@enShape == "reb Dumbell Curve")
Shape = new @p_REB_TrapShapeDumbellCurve(this)
elseif (@enShape == "reb Eight Curve")
Shape = new @p_REB_TrapShapeEightCurve(this)
elseif (@enShape == "reb Ellipse Catacaustic")
Shape = new @p_REB_TrapShapeEllipseCatacaustic(this)
elseif (@enShape == "reb Ellipse Evolute")
Shape = new @p_REB_TrapShapeEllipseEvolute(this)
elseif (@enShape == "reb Epicycloid")
Shape = new @p_REB_TrapShapeEpicycloid(this)
elseif (@enShape == "reb Epispiral")
Shape = new @p_REB_TrapShapeEpispiral(this)
elseif (@enShape == "reb Fibonacci")
Shape = new @p_REB_TrapShapeFibonacci(this)
elseif (@enShape == "reb Folium Of Descartes")
Shape = new @p_REB_TrapShapeFoliumOfDescartes(this)
elseif (@enShape == "reb Gear Curve")
Shape = new @p_REB_TrapShapeGearCurve(this)
elseif (@enShape == "reb General Textures")
Shape = new @p_REB_TrapShapeGenTexture(this)
elseif (@enShape == "reb Gingerbread")
Shape = new @p_REB_TrapShapeGingerbread(this)
elseif (@enShape == "reb Gnarl Textures")
Shape = new @p_REB_TrapShapeGnarlTexture(this)
elseif (@enShape == "reb Henon 2")
Shape = new @p_REB_TrapShapeHenon2(this)
elseif (@enShape == "reb Henon")
Shape = new @p_REB_TrapShapeHenon(this)
elseif (@enShape == "reb Hipopede")
Shape = new @p_REB_TrapShapeHipopede(this)
elseif (@enShape == "reb Hopalong 2")
Shape = new @p_REB_TrapShapeHopalong2(this)
elseif (@enShape == "reb Hopalong")
Shape = new @p_REB_TrapShapeHopalong(this)
elseif (@enShape == "reb Hyperbola REB")
Shape = new @p_REB_TrapShapeHyperbola(this)
elseif (@enShape == "reb Image Tile Texture")
Shape = new @p_REB_ImageTileTexture(this)
elseif (@enShape == "reb Kampyle of Eudoxus")
Shape = new @p_REB_TrapShapeKampyleofEudoxus(this)
elseif (@enShape == "reb Kappa Curve")
Shape = new @p_REB_TrapShapeKappaCurve(this)
elseif (@enShape == "reb Keratoid Cusp")
Shape = new REB_TrapShapeKeratoidCusp(this)
elseif (@enShape == "reb KnotCurve")
Shape = new @p_REB_TrapShapeKnotCurve(this)
elseif (@enShape == "reb Latoocarfian")
Shape = new @p_REB_TrapShapeLatoocarfian(this)
elseif (@enShape == "reb Lattice Textures")
Shape = new @p_REB_TrapShapeLatticeTexture(this)
elseif (@enShape == "reb Lemniscate")
Shape = new @p_REB_TrapShapeLemniscate(this)
elseif (@enShape == "reb Liar")
Shape = new @p_REB_TrapShapeLiar(this)
elseif (@enShape == "reb Limacon Of Pascal")
Shape = new @p_REB_TrapShapeLimaconOfPascal(this)
elseif (@enShape == "reb Line")
Shape = new @p_REB_TrapShapeLine(this)
elseif (@enShape == "reb Links Curve")
Shape = new @p_REB_TrapShapeLinksCurve(this)
elseif (@enShape == "reb Lituus")
Shape = new @p_REB_TrapShapeLituus(this)
elseif (@enShape == "reb Log Spiral Catacaustic")
Shape = new @p_REB_TrapShapeLogSpiralCatacaustic(this)
elseif (@enShape == "reb Log Spiral")
Shape = new @p_REB_TrapShapeLogSpiral(this)
elseif (@enShape == "reb Maltese Cross")
Shape = new @p_REB_TrapShapeMalteseCross(this)
elseif (@enShape == "reb Modified Perlin Textures")
Shape = new @p_REB_TrapShapeModPerlinTexture(this)
elseif (@enShape == "reb Nephroid")
Shape = new @p_REB_TrapShapeNephroid(this)
elseif (@enShape == "reb Ophiuride")
Shape = new @p_REB_TrapShapeOphiuride(this)
elseif (@enShape == "reb Parabola")
Shape = new @p_REB_TrapShapeParabola(this)
elseif (@enShape == "reb Pickover")
Shape = new @p_REB_TrapShapePickover(this)
elseif (@enShape == "reb Piriform")
Shape = new @p_REB_TrapShapePiriform(this)
elseif (@enShape == "reb Poinsot Spiral 1")
Shape = new @p_REB_TrapShapePoinsotSpiral1(this)
elseif (@enShape == "reb Poinsot Spiral 2")
Shape = new @p_REB_TrapShapePoinsotSpiral2(this)
elseif (@enShape == "reb Polytrope")
Shape = new @p_REB_TrapShapePolytrope(this)
elseif (@enShape == "reb Product 2")
Shape = new @p_REB_TrapShapeProduct2(this)
elseif (@enShape == "reb Product")
Shape = new @p_REB_TrapShapeProduct(this)
elseif (@enShape == "reb Quadratrix of Hippias")
Shape = new @p_REB_TrapShapeQuadratrixofHippias(this)
elseif (@enShape == "reb Quadrifolium")
Shape = new @p_REB_TrapShapeQuadrifolium(this)
elseif (@enShape == "reb Quadruptwo")
Shape = new @p_REB_TrapShapeQuadruptwo(this)
elseif (@enShape == "reb Quotient 1")
Shape = new @p_REB_TrapShapeQuotient1(this)
elseif (@enShape == "reb Quotient 2")
Shape = new @p_REB_TrapShapeQuotient2(this)
elseif (@enShape == "reb Quotient 3")
Shape = new @p_REB_TrapShapeQuotient3(this)
elseif (@enShape == "reb Quotient 4")
Shape = new @p_REB_TrapShapeQuotient4(this)
elseif (@enShape == "reb Rose of Troy")
Shape = new @p_REB_TrapShapeRoseofTroy(this)
elseif (@enShape == "reb Rose")
Shape = new @p_REB_TrapShapeRose(this)
elseif (@enShape == "reb Scarabaeus")
Shape = new @p_REB_TrapShapeScarabaeus(this)
elseif (@enShape == "reb Semicubical")
Shape = new @p_REB_TrapShapeSemicubicalParabola(this)
elseif (@enShape == "reb Serpentine Curve")
Shape = new @p_REB_TrapShapeSerpentineCurve(this)
elseif (@enShape == "reb Sierpinski")
Shape = new @p_REB_TrapShapeSierpinski(this)
elseif (@enShape == "reb Sprott3D")
Shape = new @p_REB_TrapShapeSprott3D(this)
elseif (@enShape == "reb Sprott3D_ODE")
Shape = new @p_REB_TrapShapeSprott3D_ODE(this)
elseif (@enShape == "reb SprottQuad")
Shape = new @p_REB_TrapShapeSprottQuad(this)
elseif (@enShape == "reb Stirrup Curve")
Shape = new @p_REB_TrapShapeStirrupCurve(this)
elseif (@enShape == "reb Strophoid")
Shape = new @p_REB_TrapShapeStrophoid(this)
elseif (@enShape == "reb Sum 2")
Shape = new @p_REB_TrapShapeSum2(this)
elseif (@enShape == "reb Sum")
Shape = new @p_REB_TrapShapeSum(this)
elseif (@enShape == "reb Swastika Curve")
Shape = new @p_REB_TrapShapeSwastikaCurve(this)
elseif (@enShape == "reb Teardrop Curve")
Shape = new @p_REB_TrapShapeTeardropCurve(this)
elseif (@enShape == "reb Threeply")
Shape = new @p_REB_TrapShapeThreeply(this)
elseif (@enShape == "reb Toby's Geometrix Texture")
Shape = new @p_REB_TrapShapeTobyGeometrixTexture(this)
elseif (@enShape == "reb Tr Plus")
Shape = new @p_REB_TrapShapeTrPlus(this)
elseif (@enShape == "reb Tractrix")
Shape = new @p_REB_TrapShapeTractrix(this)
elseif (@enShape == "reb Trefoil")
Shape = new @p_REB_TrapShapeTrefoil(this)
elseif (@enShape == "reb Trident of Descartes")
Shape = new @p_REB_TrapShapeTridentofDescartes(this)
elseif (@enShape == "reb Trident")
Shape = new @p_REB_TrapShapeTrident(this)
elseif (@enShape == "reb Trifolium")
Shape = new @p_REB_TrapShapeTrifolium(this)
elseif (@enShape == "reb Trisectrix of Mclaurin")
Shape = new @p_REB_TrapShapeTrisectrixofMclaurin(this)
elseif (@enShape == "reb Trunc Round")
Shape = new @p_REB_TrapShapeTruncRound(this)
elseif (@enShape == "reb Tschirnhausen Cubic")
Shape = new @p_REB_TrapShapeTschirnhausenCubic(this)
elseif (@enShape == "reb Witch of Agnesi")
Shape = new @p_REB_TrapShapeWitchofAgnesi(this)
elseif (@enShape == "reb Worley Textures")
Shape = new @p_REB_TrapShapeWorleyTextures(this)
elseif (@enShape == "reb Zito")
Shape = new @p_REB_TrapShapeZito(this)
; rkb
elseif (@enShape == "rkb Deform Shape")
Shape = new @p_RKB_TrapShapeDeformShape(this)
elseif (@enShape == "rkb Flower")
Shape = new @p_RKB_TrapShapeFlower(this)
; standard
elseif (@enShape == "Standard Astroid")
Shape = new @p_Standard_TrapShapeAstroid(this)
elseif (@enShape == "Standard Box")
Shape = new @p_Standard_TrapShapeBox(this)
elseif (@enShape == "Standard Cross")
Shape = new @p_Standard_TrapShapeCross(this)
elseif (@enShape == "Standard Diamond")
Shape = new @p_Standard_TrapShapeDiamond(this)
elseif (@enShape == "Standard Egg")
Shape = new @p_Standard_TrapShapeEgg(this)
elseif (@enShape == "Standard Gaussian Integer")
Shape = new @p_Standard_TrapShapeGaussianInteger(this)
elseif (@enShape == "Standard Heart")
Shape = new @p_Standard_TrapShapeHeart(this)
elseif (@enShape == "Standard Hyperbola")
Shape = new @p_Standard_TrapShapeHyperbola(this)
elseif (@enShape == "Standard Hypercross")
Shape = new @p_Standard_TrapShapeHypercross(this)
elseif (@enShape == "Standard Lines")
Shape = new @p_Standard_TrapShapeLines(this)
elseif (@enShape == "Standard Pinch")
Shape = new @p_Standard_TrapShapePinch(this)
elseif (@enShape == "Standard Point")
Shape = new @p_Standard_TrapShapePoint(this)
elseif (@enShape == "Standard Rectangle")
Shape = new @p_Standard_TrapShapeRectangle(this)
elseif (@enShape == "Standard Ring")
Shape = new @p_Standard_TrapShapeRing(this)
elseif (@enShape == "Standard Ring 2")
Shape = new @p_Standard_TrapShapeRing2(this)
elseif (@enShape == "Standard Ripples")
Shape = new @p_Standard_TrapShapeRipples(this)
elseif (@enShape == "Standard Spiral")
Shape = new @p_Standard_TrapShapeSpiral(this)
elseif (@enShape == "Standard Waves")
Shape = new @p_Standard_TrapShapeWaves(this)
endif
endfunc
float func Iterate(complex pz)
return Shape.Iterate(pz)*@fScale
endfunc
private:
TrapShape Shape
default:
title = "Shape Collection"
int param iVersion
visible = false
endparam
param enShape
caption = "Shapes List"
enum = "dmj5 Astroid" \
"dmj5 Cross" \
"dmj5 Egg" \
"dmj5 fBm" \
"dmj5 Flat Texture" \
"dmj5 Hyperbola" \
"dmj5 Hypercross" \
"dmj5 Lines" \
"dmj5 Pinch" \
"dmj5 Point" \
"dmj5 Rectangle" \
"kcc5 Ampersand Trap" \
"kcc5 Angle Function 1" \
"kcc5 Angle Function 2" \
"kcc5 ArcTangent Trap" \
"kcc5 Atan Trap" \
"kcc5 Balls Trap" \
"kcc5 Bean Curve Trap" \
"kcc5 Bicorn Curve Trap" \
"kcc5 Bicuspid Curve Trap" \
"kcc5 Bifoliate Trap" \
"kcc5 Bifolium Trap" \
"kcc5 Blobs Trap" \
"kcc5 Bow Trap" \
"kcc5 Bubbles Trap" \
"kcc5 Butterfly Curve Trap" \
"kcc5 Cassini Ovals Trap" \
"kcc5 Circles Trap" \
"kcc5 Cissoid of Diocles Trap" \
"kcc5 Cochleoid Trap" \
"kcc5 Cocked Hat Trap" \
"kcc5 Conchoid of Nicomedes Trap" \
"kcc5 Cones Trap" \
"kcc5 Cruciform Trap" \
"kcc5 Curls Trap" \
"kcc5 Devil's Curve Trap" \
"kcc5 Diamond Trap" \
"kcc5 Dimpled Spheroids Trap" \
"kcc5 Dumbbell Curve Trap" \
"kcc5 Dürer's Conchoid Trap" \
"kcc5 Eight Curve Trap" \
"kcc5 Flexballs Trap" \
"kcc5 Happy Accident Trap" \
"kcc5 Harlequin Trap" \
"kcc5 Hyperbola Trap" \
"kcc5 Kappa Curve Trap" \
"kcc5 Keppler's Folium Trap" \
"kcc5 Keratoid Cusp Trap" \
"kcc5 Knot Curve Trap" \
"kcc5 Lemniscate Corrected Trap" \
"kcc5 Lemniscate Trap" \
"kcc5 Limacon Trap" \
"kcc5 Line Trap" \
"kcc5 Links Curve Trap" \
"kcc5 Maltese Cross Curve Trap" \
"kcc5 Parabola Trap" \
"kcc5 Pear-Shaped Curve Trap" \
"kcc5 Petals Trap" \
"kcc5 Piriform Trap" \
"kcc5 Polygon Trap" \
"kcc5 Quadrifolium Trap" \
"kcc5 Ring Segments Trap" \
"kcc5 Rings Trap" \
"kcc5 Rose Curve Trap" \
"kcc5 Serpentine Curve Trap" \
"kcc5 sin(x)/x Trap" \
"kcc5 Sinus + Cosinus Trap" \
"kcc5 Spheres Trap" \
"kcc5 Spheroids Trap" \
"kcc5 Spiral Trap" \
"kcc5 Square Trap" \
"kcc5 Squares Trap" \
"kcc5 Stalks Trap" \
"kcc5 Star of David Trap" \
"kcc5 Stirrup Curve Trap" \
"kcc5 Strange Shape Trap" \
"kcc5 Swastika Curve Trap" \
"kcc5 Tangent Balls Trap" \
"kcc5 Tangent Trap" \
"kcc5 Trefoil Trap" \
"kcc5 Trident of Descartes Trap" \
"kcc5 Trident Trap" \
"kcc5 Trifolium Trap" \
"kcc5 Trisectrix of Maclaurin Trap" \
"kcc5 Twisted Cross Trap" \
"kcc5 Two Ellipses Trap" \
"kcc5 Witch of Agnesi Trap" \
"mmf Angles (of z)" \
"mmf Angles (of z-zold or z-older)" \
"mmf Centre of Curvature" \
"mmf Curvature" \
"mmf Functions" \
"mmf Orbitals" \
"mmf Simple Vergence" \
"mmf Triangle Inequality" \
"mt Bump Maps Texture" \
"mt Butterfly" \
"mt Cardioid" \
"mt Crackle Texture" \
"mt Folium" \
"mt Gnarl Texture" \
"mt Gnarl" \
"mt Harlequin" \
"mt Image Maps Texture" \
"mt Marble Texture" \
"mt Martin" \
"mt Perlin Noise 3D Texture" \
"mt Perlin Noise Texture" \
"mt Popcorn Texture" \
"mt Popcorn" \
"mt Rhodonea" \
"mt Rose" \
"mt Sextic" \
"mt Sine" \
"mt Transform" \
"mt Turbulence Texture" \
"mt Voronoi Texture" \
"mt Yorke Texture" \
"reb 4D Orbit" \
"reb Ampersand" \
"reb Arachnida 1" \
"reb Arachnida 2" \
"reb Archimedes" \
"reb Astroid REB" \
"reb Atzema Spiral" \
"reb Bean" \
"reb Bicorn" \
"reb Bicuspid" \
"reb Bifolium" \
"reb Bow" \
"reb Butterfly" \
"reb Cardiod" \
"reb Cassini Ovals" \
"reb Cayley's Sextic" \
"reb Ceil Floor" \
"reb Cf Plus" \
"reb Chip 2" \
"reb Chip" \
"reb Circle Catacaustic" \
"reb Circle" \
"reb Cissoid of Diocles" \
"reb Cochleoid" \
"reb Conchoid" \
"reb CosMartin 2" \
"reb CosMartin" \
"reb Cotes' Spiral" \
"reb Cruciform" \
"reb Curtate Cycloid" \
"reb Cycloid of Seva" \
"reb Cycloid" \
"reb Deltoid Catacaustic" \
"reb Devils Curve" \
"reb Diamond" \
"reb Dipole Curve" \
"reb Dumbell Curve" \
"reb Eight Curve" \
"reb Ellipse Catacaustic" \
"reb Ellipse Evolute" \
"reb Epicycloid" \
"reb Epispiral" \
"reb Fibonacci" \
"reb Folium Of Descartes" \
"reb Gear Curve" \
"reb General Textures" \
"reb Gingerbread" \
"reb Gnarl Textures" \
"reb Henon 2" \
"reb Henon" \
"reb Hipopede" \
"reb Hopalong 2" \
"reb Hopalong" \
"reb Hyperbola REB" \
"reb Ikenaga" \
"reb Image Tile Texture" \
"reb Kampyle of Eudoxus" \
"reb Kappa Curve" \
"reb Keratoid Cusp" \
"reb KnotCurve" \
"reb Latoocarfian" \
"reb Lattice Textures" \
"reb Lemniscate" \
"reb Liar" \
"reb Limacon Of Pascal" \
"reb Line" \
"reb Links Curve" \
"reb Lituus" \
"reb Log Spiral Catacaustic" \
"reb Log Spiral" \
"reb Maltese Cross" \
"reb Modified Perlin Textures" \
"reb Nephroid" \
"reb Ophiuride" \
"reb Parabola" \
"reb Pickover" \
"reb Piriform" \
"reb Poinsot Spiral 1" \
"reb Poinsot Spiral 2" \
"reb Polytrope" \
"reb Product 2" \
"reb Product" \
"reb Quadratrix of Hippias" \
"reb Quadrifolium" \
"reb Quadruptwo" \
"reb Quotient 1" \
"reb Quotient 2" \
"reb Quotient 3" \
"reb Quotient 4" \
"reb Rose of Troy" \
"reb Rose" \
"reb Scarabaeus" \
"reb Semicubical" \
"reb Serpentine Curve" \
"reb Sierpinski" \
"reb Sprott3D" \
"reb Sprott3D_ODE" \
"reb SprottQuad" \
"reb Stirrup Curve" \
"reb Strophoid" \
"reb Sum 2" \
"reb Sum" \
"reb Swastika Curve" \
"reb Teardrop Curve" \
"reb Threeply" \
"reb Toby's Geometrix Texture" \
"reb Tr Plus" \
"reb Tractrix" \
"reb Trefoil" \
"reb Trident of Descartes" \
"reb Trident" \
"reb Trifolium" \
"reb Trisectrix of Mclaurin" \
"reb Trunc Round" \
"reb Tschirnhausen Cubic" \
"reb Witch of Agnesi" \
"reb Worley Textures" \
"reb Zito" \
"rkb Deform Shape" \
"rkb Flower" \
"Standard Astroid" \
"Standard Box" \
"Standard Cross" \
"Standard Diamond" \
"Standard Egg" \
"Standard Gaussian Integer" \
"Standard Heart" \
"Standard Hyperbola" \
"Standard Hypercross" \
"Standard Lines" \
"Standard Pinch" \
"Standard Point" \
"Standard Rectangle" \
"Standard Ring" \
"Standard Ring 2" \
"Standard Ripples" \
"Standard Spiral" \
"Standard Waves"
default = 0
endparam
float param fScale
caption = "Scale"
default = 1.0
endparam
TrapShape param p_DMJ_TrapShapeAstroid, caption = "Trap Shape", default = DMJ_TrapShapeAstroid, visible = (@enShape == "dmj5 Astroid"), endparam
TrapShape param p_DMJ_TrapShapeCross, caption = "Trap Shape", default = DMJ_TrapShapeCross, visible = (@enShape == "dmj5 Cross"), endparam
TrapShape param p_DMJ_TrapShapeEgg, caption = "Trap Shape", default = DMJ_TrapShapeEgg, visible = (@enShape == "dmj5 Egg"), endparam
TrapShape param p_DMJ_TrapShapefBm, caption = "Trap Shape", default = DMJ_TrapShapefBm, visible = (@enShape == "dmj5 fBm"), endparam
TrapShape param p_DMJ_TrapShapeFlat, caption = "Trap Shape", default = DMJ_TrapShapeFlat, visible = (@enShape == "dmj5 Flat Texture"), endparam
TrapShape param p_DMJ_TrapShapeHyperbola, caption = "Trap Shape", default = DMJ_TrapShapeHyperbola, visible = (@enShape == "dmj5 Hyperbola"), endparam
TrapShape param p_DMJ_TrapShapeHypercross, caption = "Trap Shape", default = DMJ_TrapShapeHypercross, visible = (@enShape == "dmj5 Hypercross"), endparam
TrapShape param p_DMJ_TrapShapeLines, caption = "Trap Shape", default = DMJ_TrapShapeLines, visible = (@enShape == "dmj5 Lines"), endparam
TrapShape param p_DMJ_TrapShapePinch, caption = "Trap Shape", default = DMJ_TrapShapePinch, visible = (@enShape == "dmj5 Pinch"), endparam
TrapShape param p_DMJ_TrapShapePoint, caption = "Trap Shape", default = DMJ_TrapShapePoint, visible = (@enShape == "dmj5 Point"), endparam
TrapShape param p_DMJ_TrapShapeRectangle, caption = "Trap Shape", default = DMJ_TrapShapeRectangle, visible = (@enShape == "dmj5 Rectangle"), endparam
TrapShape param p_KCC_AmpersandTrap, caption = "Trap Shape", default = KCC_AmpersandTrap, visible = (@enShape == "kcc5 Ampersand Trap"), endparam
TrapShape param p_KCC_AngleFunction1Trap, caption = "Trap Shape", default = KCC_AngleFunction1Trap, visible = (@enShape == "kcc5 Angle Function 1"), endparam
TrapShape param p_KCC_AngleFunction2Trap, caption = "Trap Shape", default = KCC_AngleFunction2Trap, visible = (@enShape == "kcc5 Angle Function 2"), endparam
TrapShape param p_KCC_ArcTangentTrap, caption = "Trap Shape", default = KCC_ArcTangentTrap, visible = (@enShape == "kcc5 ArcTangent Trap"), endparam
TrapShape param p_KCC_AtanTrap, caption = "Trap Shape", default = KCC_AtanTrap, visible = (@enShape == "kcc5 Atan Trap"), endparam
TrapShape param p_KCC_BallsTrap, caption = "Trap Shape", default = KCC_BallsTrap, visible = (@enShape == "kcc5 Balls Trap"), endparam
TrapShape param p_KCC_BeanCurveTrap, caption = "Trap Shape", default = KCC_BeanCurveTrap, visible = (@enShape == "kcc5 Bean Curve Trap"), endparam
TrapShape param p_KCC_BicornCurveTrap, caption = "Trap Shape", default = KCC_BicornCurveTrap, visible = (@enShape == "kcc5 Bicorn Curve Trap"), endparam
TrapShape param p_KCC_BicuspidCurveTrap, caption = "Trap Shape", default = KCC_BicuspidCurveTrap, visible = (@enShape == "kcc5 Bicuspid Curve Trap"), endparam
TrapShape param p_KCC_BifoliateTrap, caption = "Trap Shape", default = KCC_BifoliateTrap, visible = (@enShape == "kcc5 Bifoliate Trap"), endparam
TrapShape param p_KCC_BifoliumTrap, caption = "Trap Shape", default = KCC_BifoliumTrap, visible = (@enShape == "kcc5 Bifolium Trap"), endparam
TrapShape param p_KCC_BlobsTrap, caption = "Trap Shape", default = KCC_BlobsTrap, visible = (@enShape == "kcc5 Blobs Trap"), endparam
TrapShape param p_KCC_BowTrap, caption = "Trap Shape", default = KCC_BowTrap, visible = (@enShape == "kcc5 Bow Trap"), endparam
TrapShape param p_KCC_BubblesTrap, caption = "Trap Shape", default = KCC_BubblesTrap, visible = (@enShape == "kcc5 Bubbles Trap"), endparam
TrapShape param p_KCC_ButterflyCurveTrap, caption = "Trap Shape", default = KCC_ButterflyCurveTrap, visible = (@enShape == "kcc5 Butterfly Curve Trap"), endparam
TrapShape param p_KCC_CassiniOvalsTrap, caption = "Trap Shape", default = KCC_CassiniOvalsTrap, visible = (@enShape == "kcc5 Cassini Ovals Trap"), endparam
TrapShape param p_KCC_CirclesTrap, caption = "Trap Shape", default = KCC_CirclesTrap, visible = (@enShape == "kcc5 Circles Trap"), endparam
TrapShape param p_KCC_CissoidOfDioclesTrap, caption = "Trap Shape", default = KCC_CissoidOfDioclesTrap, visible = (@enShape == "kcc5 Cissoid of Diocles Trap"), endparam
TrapShape param p_KCC_CochleoidTrap, caption = "Trap Shape", default = KCC_CochleoidTrap, visible = (@enShape == "kcc5 Cochleoid Trap"), endparam
TrapShape param p_KCC_CockedHatTrap, caption = "Trap Shape", default = KCC_CockedHatTrap, visible = (@enShape == "kcc5 Cocked Hat Trap"), endparam
TrapShape param p_KCC_ConchoidOfNicomedesTrap, caption = "Trap Shape", default = KCC_ConchoidOfNicomedesTrap, visible = (@enShape == "kcc5 Conchoid of Nicomedes Trap"), endparam
TrapShape param p_KCC_ConesTrap, caption = "Trap Shape", default = KCC_ConesTrap, visible = (@enShape == "kcc5 Cones Trap"), endparam
TrapShape param p_KCC_CruciformTrap, caption = "Trap Shape", default = KCC_CruciformTrap, visible = (@enShape == "kcc5 Cruciform Trap"), endparam
TrapShape param p_KCC_CurlsTrap, caption = "Trap Shape", default = KCC_CurlsTrap, visible = (@enShape == "kcc5 Curls Trap"), endparam
TrapShape param p_KCC_DevilsCurveTrap, caption = "Trap Shape", default = KCC_DevilsCurveTrap, visible = (@enShape == "kcc5 Devil's Curve Trap"), endparam
TrapShape param p_KCC_DiamondTrap, caption = "Trap Shape", default = KCC_DiamondTrap, visible = (@enShape == "kcc5 Diamond Trap"), endparam
TrapShape param p_KCC_DimpledSpheroidsTrap, caption = "Trap Shape", default = KCC_DimpledSpheroidsTrap, visible = (@enShape == "kcc5 Dimpled Spheroids Trap"), endparam
TrapShape param p_KCC_DumbbellCurveTrap, caption = "Trap Shape", default = KCC_DumbbellCurveTrap, visible = (@enShape == "kcc5 Dumbbell Curve Trap"), endparam
TrapShape param p_KCC_DurersConchoidTrap, caption = "Trap Shape", default = KCC_DurersConchoidTrap, visible = (@enShape == "kcc5 Dürer's Conchoid Trap"), endparam
TrapShape param p_KCC_EightCurveTrap, caption = "Trap Shape", default = KCC_EightCurveTrap, visible = (@enShape == "kcc5 Eight Curve Trap"), endparam
TrapShape param p_KCC_FlexballsTrap, caption = "Trap Shape", default = KCC_FlexballsTrap, visible = (@enShape == "kcc5 Flexballs Trap"), endparam
TrapShape param p_KCC_HappyAccidentTrap, caption = "Trap Shape", default = KCC_HappyAccidentTrap, visible = (@enShape == "kcc5 Happy Accident Trap"), endparam
TrapShape param p_KCC_HarlequinTrap, caption = "Trap Shape", default = KCC_HarlequinTrap, visible = (@enShape == "kcc5 Harlequin Trap"), endparam
TrapShape param p_KCC_HyperbolaTrap, caption = "Trap Shape", default = KCC_HyperbolaTrap, visible = (@enShape == "kcc5 Hyperbola Trap"), endparam
TrapShape param p_KCC_KappaCurveTrap, caption = "Trap Shape", default = KCC_KappaCurveTrap, visible = (@enShape == "kcc5 Kappa Curve Trap"), endparam
TrapShape param p_KCC_KepplersFoliumTrap, caption = "Trap Shape", default = KCC_KepplersFoliumTrap, visible = (@enShape == "kcc5 Keppler's Folium Trap"), endparam
TrapShape param p_KCC_KeratoidCuspTrap, caption = "Trap Shape", default = KCC_KeratoidCuspTrap, visible = (@enShape == "kcc5 Keratoid Cusp Trap"), endparam
TrapShape param p_KCC_KnotCurveTrap, caption = "Trap Shape", default = KCC_KnotCurveTrap, visible = (@enShape == "kcc5 Knot Curve Trap"), endparam
TrapShape param p_KCC_LemniscateCorrectedTrap, caption = "Trap Shape", default = KCC_LemniscateCorrectedTrap, visible = (@enShape == "kcc5 Lemniscate Corrected Trap"), endparam
TrapShape param p_KCC_LemniscateTrap, caption = "Trap Shape", default = KCC_LemniscateTrap, visible = (@enShape == "kcc5 Lemniscate Trap"), endparam
TrapShape param p_KCC_LimaconTrap, caption = "Trap Shape", default = KCC_LimaconTrap, visible = (@enShape == "kcc5 Limacon Trap"), endparam
TrapShape param p_KCC_LineTrap, caption = "Trap Shape", default = KCC_LineTrap, visible = (@enShape == "kcc5 Line Trap"), endparam
TrapShape param p_KCC_LinksCurveTrap, caption = "Trap Shape", default = KCC_LinksCurveTrap, visible = (@enShape == "kcc5 Links Curve Trap"), endparam
TrapShape param p_KCC_MalteseCrossCurveTrap, caption = "Trap Shape", default = KCC_MalteseCrossCurveTrap, visible = (@enShape == "kcc5 Maltese Cross Curve Trap"), endparam
TrapShape param p_KCC_ParabolaTrap, caption = "Trap Shape", default = KCC_ParabolaTrap, visible = (@enShape == "kcc5 Parabola Trap"), endparam
TrapShape param p_KCC_PearShapedCurveTrap, caption = "Trap Shape", default = KCC_PearShapedCurveTrap, visible = (@enShape == "kcc5 Pear-Shaped Curve Trap"), endparam
TrapShape param p_KCC_PetalsTrap, caption = "Trap Shape", default = KCC_PetalsTrap, visible = (@enShape == "kcc5 Petals Trap"), endparam
TrapShape param p_KCC_PiriformTrap, caption = "Trap Shape", default = KCC_PiriformTrap, visible = (@enShape == "kcc5 Piriform Trap"), endparam
TrapShape param p_KCC_PolygonTrap, caption = "Trap Shape", default = KCC_PolygonTrap, visible = (@enShape == "kcc5 Polygon Trap"), endparam
TrapShape param p_KCC_QuadrifoliumTrap, caption = "Trap Shape", default = KCC_QuadrifoliumTrap, visible = (@enShape == "kcc5 Quadrifolium Trap"), endparam
TrapShape param p_KCC_RingSegmentsTrap, caption = "Trap Shape", default = KCC_RingSegmentsTrap, visible = (@enShape == "kcc5 Ring Segments Trap"), endparam
TrapShape param p_KCC_RingsTrap, caption = "Trap Shape", default = KCC_RingsTrap, visible = (@enShape == "kcc5 Rings Trap"), endparam
TrapShape param p_KCC_RoseCurveTrap, caption = "Trap Shape", default = KCC_RoseCurveTrap, visible = (@enShape == "kcc5 Rose Curve Trap"), endparam
TrapShape param p_KCC_SerpentineCurveTrap, caption = "Trap Shape", default = KCC_SerpentineCurveTrap, visible = (@enShape == "kcc5 Serpentine Curve Trap"), endparam
TrapShape param p_KCC_sinXTrap, caption = "Trap Shape", default = KCC_sinXTrap, visible = (@enShape == "kcc5 sin(x)/x Trap"), endparam
TrapShape param p_KCC_SinusCosinusTrap, caption = "Trap Shape", default = KCC_SinusCosinusTrap, visible = (@enShape == "kcc5 Sinus + Cosinus Trap"), endparam
TrapShape param p_KCC_SpheresTrap, caption = "Trap Shape", default = KCC_SpheresTrap, visible = (@enShape == "kcc5 Spheres Trap"), endparam
TrapShape param p_KCC_SpheroidsTrap, caption = "Trap Shape", default = KCC_SpheroidsTrap, visible = (@enShape == "kcc5 Spheroids Trap"), endparam
TrapShape param p_KCC_SpiralTrap, caption = "Trap Shape", default = KCC_SpiralTrap, visible = (@enShape == "kcc5 Spiral Trap"), endparam
TrapShape param p_KCC_SquareTrap, caption = "Trap Shape", default = KCC_SquareTrap, visible = (@enShape == "kcc5 Square Trap"), endparam
TrapShape param p_KCC_SquaresTrap, caption = "Trap Shape", default = KCC_SquaresTrap, visible = (@enShape == "kcc5 Squares Trap"), endparam
TrapShape param p_KCC_StalksTrap, caption = "Trap Shape", default = KCC_StalksTrap, visible = (@enShape == "kcc5 Stalks Trap"), endparam
TrapShape param p_KCC_StarOfDavidTrap, caption = "Trap Shape", default = KCC_StarOfDavidTrap, visible = (@enShape == "kcc5 Star of David Trap"), endparam
TrapShape param p_KCC_StirrupCurveTrap, caption = "Trap Shape", default = KCC_StirrupCurveTrap, visible = (@enShape == "kcc5 Stirrup Curve Trap"), endparam
TrapShape param p_KCC_StrangeShapeTrap, caption = "Trap Shape", default = KCC_StrangeShapeTrap, visible = (@enShape == "kcc5 Strange Shape Trap"), endparam
TrapShape param p_KCC_SwastikaCurveTrap, caption = "Trap Shape", default = KCC_SwastikaCurveTrap, visible = (@enShape == "kcc5 Swastika Curve Trap"), endparam
TrapShape param p_KCC_TangentBallsTrap, caption = "Trap Shape", default = KCC_TangentBallsTrap, visible = (@enShape == "kcc5 Tangent Balls Trap"), endparam
TrapShape param p_KCC_TangentTrap, caption = "Trap Shape", default = KCC_TangentTrap, visible = (@enShape == "kcc5 Tangent Trap"), endparam
TrapShape param p_KCC_TrefoilTrap, caption = "Trap Shape", default = KCC_TrefoilTrap, visible = (@enShape == "kcc5 Trefoil Trap"), endparam
TrapShape param p_KCC_TridentOfDescartesTrap, caption = "Trap Shape", default = KCC_TridentOfDescartesTrap, visible = (@enShape == "kcc5 Trident of Descartes Trap"), endparam
TrapShape param p_KCC_TridentTrap, caption = "Trap Shape", default = KCC_TridentTrap, visible = (@enShape == "kcc5 Trident Trap"), endparam
TrapShape param p_KCC_TrifoliumTrap, caption = "Trap Shape", default = KCC_TrifoliumTrap, visible = (@enShape == "kcc5 Trifolium Trap"), endparam
TrapShape param p_KCC_TrisectrixOfMaclaurinTrap, caption = "Trap Shape", default = KCC_TrisectrixOfMaclaurinTrap, visible = (@enShape == "kcc5 Trisectrix of Maclaurin Trap"), endparam
TrapShape param p_KCC_TwistedCrossTrap, caption = "Trap Shape", default = KCC_TwistedCrossTrap, visible = (@enShape == "kcc5 Twisted Cross Trap"), endparam
TrapShape param p_KCC_TwoEllipsesTrap, caption = "Trap Shape", default = KCC_TwoEllipsesTrap, visible = (@enShape == "kcc5 Two Ellipses Trap"), endparam
TrapShape param p_KCC_WitchOfAgnesiTrap, caption = "Trap Shape", default = KCC_WitchOfAgnesiTrap, visible = (@enShape == "kcc5 Witch of Agnesi Trap"), endparam
TrapShape param p_MMF_TrapShapeAngle, caption = "Trap Shape", default = MMF_TrapShapeAngle, visible = (@enShape == "mmf Angles (of z)"), endparam
TrapShape param p_MMF_TrapShapeOldAngles, caption = "Trap Shape", default = MMF_TrapShapeOldAngles, visible = (@enShape == "mmf Angles (of z-zold or z-older)"), endparam
TrapShape param p_MMF_TrapShapeCentreOfCurvature, caption = "Trap Shape", default = MMF_TrapShapeCentreOfCurvature, visible = (@enShape == "mmf Centre of Curvature"), endparam
TrapShape param p_MMF_TrapShapeCurvature, caption = "Trap Shape", default = MMF_TrapShapeCurvature, visible = (@enShape == "mmf Curvature"), endparam
TrapShape param p_MMF_TrapShapeFnz, caption = "Trap Shape", default = MMF_TrapShapeFnz, visible = (@enShape == "mmf Functions"), endparam
TrapShape param p_MMF_TrapShapeOrbitals, caption = "Trap Shape", default = MMF_TrapShapeOrbitals, visible = (@enShape == "mmf Orbitals"), endparam
TrapShape param p_MMF_TrapShapeSimpleVergence, caption = "Trap Shape", default = MMF_TrapShapeSimpleVergence, visible = (@enShape == "mmf Simple Vergence"), endparam
TrapShape param p_MMF_TrapShapeTriangleInequality, caption = "Trap Shape", default = MMF_TrapShapeTriangleInequality, visible = (@enShape == "mmf Triangle Inequality"), endparam
TrapShape param p_MT_BumpMapsTexture, caption = "Trap Shape", default = MT_BumpMapsTexture, visible = (@enShape == "mt Bump Maps Texture"), endparam
TrapShape param p_MT_TrapShapeButterfly, caption = "Trap Shape", default = MT_TrapShapeButterfly, visible = (@enShape == "mt Butterfly"), endparam
TrapShape param p_MT_TrapShapeCardioid, caption = "Trap Shape", default = MT_TrapShapeCardioid, visible = (@enShape == "mt Cardioid"), endparam
TrapShape param p_MT_CrackleTexture, caption = "Trap Shape", default = MT_CrackleTexture, visible = (@enShape == "mt Crackle Texture"), endparam
TrapShape param p_MT_TrapShapeFolium, caption = "Trap Shape", default = MT_TrapShapeFolium, visible = (@enShape == "mt Folium"), endparam
TrapShape param p_MT_GnarlTexture, caption = "Trap Shape", default = MT_GnarlTexture, visible = (@enShape == "mt Gnarl Texture"), endparam
TrapShape param p_MT_TrapShapeGnarl, caption = "Trap Shape", default = MT_TrapShapeGnarl, visible = (@enShape == "mt Gnarl"), endparam
TrapShape param p_MT_TrapShapeHarlequin, caption = "Trap Shape", default = MT_TrapShapeHarlequin, visible = (@enShape == "mt Harlequin"), endparam
TrapShape param p_MT_ImageMapsTexture, caption = "Trap Shape", default = MT_ImageMapsTexture, visible = (@enShape == "mt Image Maps Texture"), endparam
TrapShape param p_MT_MarbleTexture, caption = "Trap Shape", default = MT_MarbleTexture, visible = (@enShape == "mt Marble Texture"), endparam
TrapShape param p_MT_TrapShapeMartin, caption = "Trap Shape", default = MT_TrapShapeMartin, visible = (@enShape == "mt Martin"), endparam
TrapShape param p_MT_PerlinNoise3DTexture, caption = "Trap Shape", default = MT_PerlinNoise3DTexture, visible = (@enShape == "mt Perlin Noise 3D Texture"), endparam
TrapShape param p_MT_PerlinNoiseTexture, caption = "Trap Shape", default = MT_PerlinNoiseTexture, visible = (@enShape == "mt Perlin Noise Texture"), endparam
TrapShape param p_MT_PopcornTexture, caption = "Trap Shape", default = MT_PopcornTexture, visible = (@enShape == "mt Popcorn Texture"), endparam
TrapShape param p_MT_TrapShapePopcorn, caption = "Trap Shape", default = MT_TrapShapePopcorn, visible = (@enShape == "mt Popcorn"), endparam
TrapShape param p_MT_TrapShapeRhodonea, caption = "Trap Shape", default = MT_TrapShapeRhodonea, visible = (@enShape == "mt Rhodonea"), endparam
TrapShape param p_MT_TrapShapeRose, caption = "Trap Shape", default = MT_TrapShapeRose, visible = (@enShape == "mt Rose"), endparam
TrapShape param p_MT_TrapShapeSextic, caption = "Trap Shape", default = MT_TrapShapeSextic, visible = (@enShape == "mt Sextic"), endparam
TrapShape param p_MT_TrapShapeSine, caption = "Trap Shape", default = MT_TrapShapeSine, visible = (@enShape == "mt Sine"), endparam
TrapShape param p_MT_TrapShape_Transform, caption = "Trap Shape", default = MT_TrapShape_Transform, visible = (@enShape == "mt Transform"), endparam
TrapShape param p_MT_TurbulenceTexture, caption = "Trap Shape", default = MT_TurbulenceTexture, visible = (@enShape == "mt Turbulence Texture"), endparam
TrapShape param p_MT_VoronoiTexture, caption = "Trap Shape", default = MT_VoronoiTexture, visible = (@enShape == "mt Voronoi Texture"), endparam
TrapShape param p_MT_YorkeTexture, caption = "Trap Shape", default = MT_YorkeTexture, visible = (@enShape == "mt Yorke Texture"), endparam
TrapShape param p_REB_TrapShape4DOrbit, caption = "Trap Shape", default = REB_TrapShape4DOrbit, visible = (@enShape == "reb 4D Orbit"), endparam
TrapShape param p_REB_TrapShapeAmpersand, caption = "Trap Shape", default = REB_TrapShapeAmpersand, visible = (@enShape == "reb Ampersand"), endparam
TrapShape param p_REB_TrapShapeArachnida1, caption = "Trap Shape", default = REB_TrapShapeArachnida1, visible = (@enShape == "reb Arachnida 1"), endparam
TrapShape param p_REB_TrapShapeArachnida2, caption = "Trap Shape", default = REB_TrapShapeArachnida2, visible = (@enShape == "reb Arachnida 2"), endparam
TrapShape param p_REB_TrapShapeArchimedes, caption = "Trap Shape", default = REB_TrapShapeArchimedes, visible = (@enShape == "reb Archimedes"), endparam
TrapShape param p_REB_TrapShapeREBAstroid, caption = "Trap Shape", default = REB_TrapShapeREBAstroid, visible = (@enShape == "reb Astroid REB"), endparam
TrapShape param p_REB_TrapShapeAtzemaSpiral, caption = "Trap Shape", default = REB_TrapShapeAtzemaSpiral, visible = (@enShape == "reb Atzema Spiral"), endparam
TrapShape param p_REB_TrapShapeBean, caption = "Trap Shape", default = REB_TrapShapeBean, visible = (@enShape == "reb Bean"), endparam
TrapShape param p_REB_TrapShapeBicorn, caption = "Trap Shape", default = REB_TrapShapeBicorn, visible = (@enShape == "reb Bicorn"), endparam
TrapShape param p_REB_TrapShapeBicuspid, caption = "Trap Shape", default = REB_TrapShapeBicuspid, visible = (@enShape == "reb Bicuspid"), endparam
TrapShape param p_REB_TrapShapeBifolium, caption = "Trap Shape", default = REB_TrapShapeBifolium, visible = (@enShape == "reb Bifolium"), endparam
TrapShape param p_REB_TrapShapeBow, caption = "Trap Shape", default = REB_TrapShapeBow, visible = (@enShape == "reb Bow"), endparam
TrapShape param p_REB_TrapShapeButterfly, caption = "Trap Shape", default = REB_TrapShapeButterfly, visible = (@enShape == "reb Butterfly"), endparam
TrapShape param p_REB_TrapShapeCardiod, caption = "Trap Shape", default = REB_TrapShapeCardiod, visible = (@enShape == "reb Cardiod"), endparam
TrapShape param p_REB_TrapShapeCassiniOvals, caption = "Trap Shape", default = REB_TrapShapeCassiniOvals, visible = (@enShape == "reb Cassini Ovals"), endparam
TrapShape param p_REB_TrapShapeCayleysSextic, caption = "Trap Shape", default = REB_TrapShapeCayleysSextic, visible = (@enShape == "reb Cayley's Sextic"), endparam
TrapShape param p_REB_TrapShapeCeilFloor, caption = "Trap Shape", default = REB_TrapShapeCeilFloor, visible = (@enShape == "reb Ceil Floor"), endparam
TrapShape param p_REB_TrapShapeCfPlus, caption = "Trap Shape", default = REB_TrapShapeCfPlus, visible = (@enShape == "reb Cf Plus"), endparam
TrapShape param p_REB_TrapShapeChip2, caption = "Trap Shape", default = REB_TrapShapeChip2, visible = (@enShape == "reb Chip 2"), endparam
TrapShape param p_REB_TrapShapeChip, caption = "Trap Shape", default = REB_TrapShapeChip, visible = (@enShape == "reb Chip"), endparam
TrapShape param p_REB_TrapShapeCircleCatacaustic, caption = "Trap Shape", default = REB_TrapShapeCircleCatacaustic, visible = (@enShape == "reb Circle Catacaustic"), endparam
TrapShape param p_REB_TrapShapeCircle, caption = "Trap Shape", default = REB_TrapShapeCircle, visible = (@enShape == "reb Circle"), endparam
TrapShape param p_REB_TrapShapeCissoidofDiocles, caption = "Trap Shape", default = REB_TrapShapeCissoidofDiocles, visible = (@enShape == "reb Cissoid of Diocles"), endparam
TrapShape param p_REB_TrapShapeCochleoid, caption = "Trap Shape", default = REB_TrapShapeCochleoid, visible = (@enShape == "reb Cochleoid"), endparam
TrapShape param p_REB_TrapShapeConchoid, caption = "Trap Shape", default = REB_TrapShapeConchoid, visible = (@enShape == "reb Conchoid"), endparam
TrapShape param p_REB_TrapShapeCosMartin2, caption = "Trap Shape", default = REB_TrapShapeCosMartin2, visible = (@enShape == "reb CosMartin 2"), endparam
TrapShape param p_REB_TrapShapeCosMartin, caption = "Trap Shape", default = REB_TrapShapeCosMartin, visible = (@enShape == "reb CosMartin"), endparam
TrapShape param p_REB_TrapShapeCotesSpiral, caption = "Trap Shape", default = REB_TrapShapeCotesSpiral, visible = (@enShape == "reb Cotes' Spiral"), endparam
TrapShape param p_REB_TrapShapeCruciform, caption = "Trap Shape", default = REB_TrapShapeCruciform, visible = (@enShape == "reb Cruciform"), endparam
TrapShape param p_REB_TrapShapeCurtateCycloid, caption = "Trap Shape", default = REB_TrapShapeCurtateCycloid, visible = (@enShape == "reb Curtate Cycloid"), endparam
TrapShape param p_REB_TrapShapeCycloidofSeva, caption = "Trap Shape", default = REB_TrapShapeCycloidofSeva, visible = (@enShape == "reb Cycloid of Seva"), endparam
TrapShape param p_REB_TrapShapeCycloid, caption = "Trap Shape", default = REB_TrapShapeCycloid, visible = (@enShape == "reb Cycloid"), endparam
TrapShape param p_REB_TrapShapeDeltoidCatacaustic, caption = "Trap Shape", default = REB_TrapShapeDeltoidCatacaustic, visible = (@enShape == "reb Deltoid Catacaustic"), endparam
TrapShape param p_REB_TrapShapeDevilsCurve, caption = "Trap Shape", default = REB_TrapShapeDevilsCurve, visible = (@enShape == "reb Devils Curve"), endparam
TrapShape param p_REB_TrapShapeDiamond, caption = "Trap Shape", default = REB_TrapShapeDiamond, visible = (@enShape == "reb Diamond"), endparam
TrapShape param p_REB_TrapShapeDipoleCurve, caption = "Trap Shape", default = REB_TrapShapeDipoleCurve, visible = (@enShape == "reb Dipole Curve"), endparam
TrapShape param p_REB_TrapShapeDumbellCurve, caption = "Trap Shape", default = REB_TrapShapeDumbellCurve, visible = (@enShape == "reb Dumbell Curve"), endparam
TrapShape param p_REB_TrapShapeEightCurve, caption = "Trap Shape", default = REB_TrapShapeEightCurve, visible = (@enShape == "reb Eight Curve"), endparam
TrapShape param p_REB_TrapShapeEllipseCatacaustic, caption = "Trap Shape", default = REB_TrapShapeEllipseCatacaustic, visible = (@enShape == "reb Ellipse Catacaustic"), endparam
TrapShape param p_REB_TrapShapeEllipseEvolute, caption = "Trap Shape", default = REB_TrapShapeEllipseEvolute, visible = (@enShape == "reb Ellipse Evolute"), endparam
TrapShape param p_REB_TrapShapeEpicycloid, caption = "Trap Shape", default = REB_TrapShapeEpicycloid, visible = (@enShape == "reb Epicycloid"), endparam
TrapShape param p_REB_TrapShapeEpispiral, caption = "Trap Shape", default = REB_TrapShapeEpispiral, visible = (@enShape == "reb Epispiral"), endparam
TrapShape param p_REB_TrapShapeFibonacci, caption = "Trap Shape", default = REB_TrapShapeFibonacci, visible = (@enShape == "reb Fibonacci"), endparam
TrapShape param p_REB_TrapShapeFoliumOfDescartes, caption = "Trap Shape", default = REB_TrapShapeFoliumOfDescartes, visible = (@enShape == "reb Folium Of Descartes"), endparam
TrapShape param p_REB_TrapShapeGearCurve, caption = "Trap Shape", default = REB_TrapShapeGearCurve, visible = (@enShape == "reb Gear Curve"), endparam
TrapShape param p_REB_TrapShapeGenTexture, caption = "Trap Shape", default = REB_TrapShapeGenTexture, visible = (@enShape == "reb General Textures"), endparam
TrapShape param p_REB_TrapShapeGingerbread, caption = "Trap Shape", default = REB_TrapShapeGingerbread, visible = (@enShape == "reb Gingerbread"), endparam
TrapShape param p_REB_TrapShapeGnarlTexture, caption = "Trap Shape", default = REB_TrapShapeGnarlTexture, visible = (@enShape == "reb Gnarl Textures"), endparam
TrapShape param p_REB_TrapShapeHenon2, caption = "Trap Shape", default = REB_TrapShapeHenon2, visible = (@enShape == "reb Henon 2"), endparam
TrapShape param p_REB_TrapShapeHenon, caption = "Trap Shape", default = REB_TrapShapeHenon, visible = (@enShape == "reb Henon"), endparam
TrapShape param p_REB_TrapShapeHipopede, caption = "Trap Shape", default = REB_TrapShapeHipopede, visible = (@enShape == "reb Hipopede"), endparam
TrapShape param p_REB_TrapShapeHopalong2, caption = "Trap Shape", default = REB_TrapShapeHopalong2, visible = (@enShape == "reb Hopalong 2"), endparam
TrapShape param p_REB_TrapShapeHopalong, caption = "Trap Shape", default = REB_TrapShapeHopalong, visible = (@enShape == "reb Hopalong"), endparam
TrapShape param p_REB_TrapShapeHyperbola, caption = "Trap Shape", default = REB_TrapShapeHyperbola, visible = (@enShape == "reb Hyperbola REB"), endparam
TrapShape param p_REB_ImageTileTexture, caption = "Trap Shape", default = REB_ImageTileTexture, visible = (@enShape == "reb Image Tile Texture"), endparam
TrapShape param p_REB_TrapShapeKampyleofEudoxus, caption = "Trap Shape", default = REB_TrapShapeKampyleofEudoxus, visible = (@enShape == "reb Kampyle of Eudoxus"), endparam
TrapShape param p_REB_TrapShapeKappaCurve, caption = "Trap Shape", default = REB_TrapShapeKappaCurve, visible = (@enShape == "reb Kappa Curve"), endparam
TrapShape param p_REB_TrapShapeKeratoidCusp, caption = "Trap Shape", default = REB_TrapShapeKeratoidCusp, visible = (@enShape == "reb Keratoid Cusp"), endparam
TrapShape param p_REB_TrapShapeKnotCurve, caption = "Trap Shape", default = REB_TrapShapeKnotCurve, visible = (@enShape == "reb KnotCurve"), endparam
TrapShape param p_REB_TrapShapeLatoocarfian, caption = "Trap Shape", default = REB_TrapShapeLatoocarfian, visible = (@enShape == "reb Latoocarfian"), endparam
TrapShape param p_REB_TrapShapeLatticeTexture, caption = "Trap Shape", default = REB_TrapShapeLatticeTexture, visible = (@enShape == "reb Lattice Textures"), endparam
TrapShape param p_REB_TrapShapeLemniscate, caption = "Trap Shape", default = REB_TrapShapeLemniscate, visible = (@enShape == "reb Lemniscate"), endparam
TrapShape param p_REB_TrapShapeLiar, caption = "Trap Shape", default = REB_TrapShapeLiar, visible = (@enShape == "reb Liar"), endparam
TrapShape param p_REB_TrapShapeLimaconOfPascal, caption = "Trap Shape", default = REB_TrapShapeLimaconOfPascal, visible = (@enShape == "reb Limacon Of Pascal"), endparam
TrapShape param p_REB_TrapShapeLine, caption = "Trap Shape", default = REB_TrapShapeLine, visible = (@enShape == "reb Line"), endparam
TrapShape param p_REB_TrapShapeLinksCurve, caption = "Trap Shape", default = REB_TrapShapeLinksCurve, visible = (@enShape == "reb Links Curve"), endparam
TrapShape param p_REB_TrapShapeLituus, caption = "Trap Shape", default = REB_TrapShapeLituus, visible = (@enShape == "reb Lituus"), endparam
TrapShape param p_REB_TrapShapeLogSpiralCatacaustic, caption = "Trap Shape", default = REB_TrapShapeLogSpiralCatacaustic, visible = (@enShape == "reb Log Spiral Catacaustic"), endparam
TrapShape param p_REB_TrapShapeLogSpiral, caption = "Trap Shape", default = REB_TrapShapeLogSpiral, visible = (@enShape == "reb Log Spiral"), endparam
TrapShape param p_REB_TrapShapeMalteseCross, caption = "Trap Shape", default = REB_TrapShapeMalteseCross, visible = (@enShape == "reb Maltese Cross"), endparam
TrapShape param p_REB_TrapShapeModPerlinTexture, caption = "Trap Shape", default = REB_TrapShapeModPerlinTexture, visible = (@enShape == "reb Modified Perlin Textures"), endparam
TrapShape param p_REB_TrapShapeNephroid, caption = "Trap Shape", default = REB_TrapShapeNephroid, visible = (@enShape == "reb Nephroid"), endparam
TrapShape param p_REB_TrapShapeOphiuride, caption = "Trap Shape", default = REB_TrapShapeOphiuride, visible = (@enShape == "reb Ophiuride"), endparam
TrapShape param p_REB_TrapShapeParabola, caption = "Trap Shape", default = REB_TrapShapeParabola, visible = (@enShape == "reb Parabola"), endparam
TrapShape param p_REB_TrapShapePickover, caption = "Trap Shape", default = REB_TrapShapePickover, visible = (@enShape == "reb Pickover"), endparam
TrapShape param p_REB_TrapShapePiriform, caption = "Trap Shape", default = REB_TrapShapePiriform, visible = (@enShape == "reb Piriform"), endparam
TrapShape param p_REB_TrapShapePoinsotSpiral1, caption = "Trap Shape", default = REB_TrapShapePoinsotSpiral1, visible = (@enShape == "reb Poinsot Spiral 1"), endparam
TrapShape param p_REB_TrapShapePoinsotSpiral2, caption = "Trap Shape", default = REB_TrapShapePoinsotSpiral2, visible = (@enShape == "reb Poinsot Spiral 2"), endparam
TrapShape param p_REB_TrapShapePolytrope, caption = "Trap Shape", default = REB_TrapShapePolytrope, visible = (@enShape == "reb Polytrope"), endparam
TrapShape param p_REB_TrapShapeProduct2, caption = "Trap Shape", default = REB_TrapShapeProduct2, visible = (@enShape == "reb Product 2"), endparam
TrapShape param p_REB_TrapShapeProduct, caption = "Trap Shape", default = REB_TrapShapeProduct, visible = (@enShape == "reb Product"), endparam
TrapShape param p_REB_TrapShapeQuadratrixofHippias, caption = "Trap Shape", default = REB_TrapShapeQuadratrixofHippias, visible = (@enShape == "reb Quadratrix of Hippias"), endparam
TrapShape param p_REB_TrapShapeQuadrifolium, caption = "Trap Shape", default = REB_TrapShapeQuadrifolium, visible = (@enShape == "reb Quadrifolium"), endparam
TrapShape param p_REB_TrapShapeQuadruptwo, caption = "Trap Shape", default = REB_TrapShapeQuadruptwo, visible = (@enShape == "reb Quadruptwo"), endparam
TrapShape param p_REB_TrapShapeQuotient1, caption = "Trap Shape", default = REB_TrapShapeQuotient1, visible = (@enShape == "reb Quotient 1"), endparam
TrapShape param p_REB_TrapShapeQuotient2, caption = "Trap Shape", default = REB_TrapShapeQuotient2, visible = (@enShape == "reb Quotient 2"), endparam
TrapShape param p_REB_TrapShapeQuotient3, caption = "Trap Shape", default = REB_TrapShapeQuotient3, visible = (@enShape == "reb Quotient 3"), endparam
TrapShape param p_REB_TrapShapeQuotient4, caption = "Trap Shape", default = REB_TrapShapeQuotient4, visible = (@enShape == "reb Quotient 4"), endparam
TrapShape param p_REB_TrapShapeRoseofTroy, caption = "Trap Shape", default = REB_TrapShapeRoseofTroy, visible = (@enShape == "reb Rose of Troy"), endparam
TrapShape param p_REB_TrapShapeRose, caption = "Trap Shape", default = REB_TrapShapeRose, visible = (@enShape == "reb Rose"), endparam
TrapShape param p_REB_TrapShapeScarabaeus, caption = "Trap Shape", default = REB_TrapShapeScarabaeus, visible = (@enShape == "reb Scarabaeus"), endparam
TrapShape param p_REB_TrapShapeSemicubicalParabola, caption = "Trap Shape", default = REB_TrapShapeSemicubicalParabola, visible = (@enShape == "reb Semicubical"), endparam
TrapShape param p_REB_TrapShapeSerpentineCurve, caption = "Trap Shape", default = REB_TrapShapeSerpentineCurve, visible = (@enShape == "reb Serpentine Curve"), endparam
TrapShape param p_REB_TrapShapeSierpinski, caption = "Trap Shape", default = REB_TrapShapeSierpinski, visible = (@enShape == "reb Sierpinski"), endparam
TrapShape param p_REB_TrapShapeSprott3D, caption = "Trap Shape", default = REB_TrapShapeSprott3D, visible = (@enShape == "reb Sprott3D"), endparam
TrapShape param p_REB_TrapShapeSprott3D_ODE, caption = "Trap Shape", default = REB_TrapShapeSprott3D_ODE, visible = (@enShape == "reb Sprott3D_ODE"), endparam
TrapShape param p_REB_TrapShapeSprottQuad, caption = "Trap Shape", default = REB_TrapShapeSprottQuad, visible = (@enShape == "reb SprottQuad"), endparam
TrapShape param p_REB_TrapShapeStirrupCurve, caption = "Trap Shape", default = REB_TrapShapeStirrupCurve, visible = (@enShape == "reb Stirrup Curve"), endparam
TrapShape param p_REB_TrapShapeStrophoid, caption = "Trap Shape", default = REB_TrapShapeStrophoid, visible = (@enShape == "reb Strophoid"), endparam
TrapShape param p_REB_TrapShapeSum2, caption = "Trap Shape", default = REB_TrapShapeSum2, visible = (@enShape == "reb Sum 2"), endparam
TrapShape param p_REB_TrapShapeSum, caption = "Trap Shape", default = REB_TrapShapeSum, visible = (@enShape == "reb Sum"), endparam
TrapShape param p_REB_TrapShapeSwastikaCurve, caption = "Trap Shape", default = REB_TrapShapeSwastikaCurve, visible = (@enShape == "reb Swastika Curve"), endparam
TrapShape param p_REB_TrapShapeTeardropCurve, caption = "Trap Shape", default = REB_TrapShapeTeardropCurve, visible = (@enShape == "reb Teardrop Curve"), endparam
TrapShape param p_REB_TrapShapeThreeply, caption = "Trap Shape", default = REB_TrapShapeThreeply, visible = (@enShape == "reb Threeply"), endparam
TrapShape param p_REB_TrapShapeTobyGeometrixTexture, caption = "Trap Shape", default = REB_TrapShapeTobyGeometrixTexture, visible = (@enShape == "reb Toby's Geometrix Texture"), endparam
TrapShape param p_REB_TrapShapeTrPlus, caption = "Trap Shape", default = REB_TrapShapeTrPlus, visible = (@enShape == "reb Tr Plus"), endparam
TrapShape param p_REB_TrapShapeTractrix, caption = "Trap Shape", default = REB_TrapShapeTractrix, visible = (@enShape == "reb Tractrix"), endparam
TrapShape param p_REB_TrapShapeTrefoil, caption = "Trap Shape", default = REB_TrapShapeTrefoil, visible = (@enShape == "reb Trefoil"), endparam
TrapShape param p_REB_TrapShapeTridentofDescartes, caption = "Trap Shape", default = REB_TrapShapeTridentofDescartes, visible = (@enShape == "reb Trident of Descartes"), endparam
TrapShape param p_REB_TrapShapeTrident, caption = "Trap Shape", default = REB_TrapShapeTrident, visible = (@enShape == "reb Trident"), endparam
TrapShape param p_REB_TrapShapeTrifolium, caption = "Trap Shape", default = REB_TrapShapeTrifolium, visible = (@enShape == "reb Trifolium"), endparam
TrapShape param p_REB_TrapShapeTrisectrixofMclaurin, caption = "Trap Shape", default = REB_TrapShapeTrisectrixofMclaurin, visible = (@enShape == "reb Trisectrix of Mclaurin"), endparam
TrapShape param p_REB_TrapShapeTruncRound, caption = "Trap Shape", default = REB_TrapShapeTruncRound, visible = (@enShape == "reb Trunc Round"), endparam
TrapShape param p_REB_TrapShapeTschirnhausenCubic, caption = "Trap Shape", default = REB_TrapShapeTschirnhausenCubic, visible = (@enShape == "reb Tschirnhausen Cubic"), endparam
TrapShape param p_REB_TrapShapeWitchofAgnesi, caption = "Trap Shape", default = REB_TrapShapeWitchofAgnesi, visible = (@enShape == "reb Witch of Agnesi"), endparam
TrapShape param p_REB_TrapShapeWorleyTextures, caption = "Trap Shape", default = REB_TrapShapeWorleyTextures, visible = (@enShape == "reb Worley Textures"), endparam
TrapShape param p_REB_TrapShapeZito, caption = "Trap Shape", default = REB_TrapShapeZito, visible = (@enShape == "reb Zito"), endparam
TrapShape param p_RKB_TrapShapeDeformShape, caption = "Trap Shape", default = RKB_TrapShapeDeformShape, visible = (@enShape == "rkb Deform Shape"), endparam
TrapShape param p_RKB_TrapShapeFlower, caption = "Trap Shape", default = RKB_TrapShapeFlower, visible = (@enShape == "rkb Flower"), endparam
TrapShape param p_Standard_TrapShapeAstroid, caption = "Trap Shape", default = Standard_TrapShapeAstroid, visible = (@enShape == "Standard Astroid"), endparam
TrapShape param p_Standard_TrapShapeBox, caption = "Trap Shape", default = Standard_TrapShapeBox, visible = (@enShape == "Standard Box"), endparam
TrapShape param p_Standard_TrapShapeCross, caption = "Trap Shape", default = Standard_TrapShapeCross, visible = (@enShape == "Standard Cross"), endparam
TrapShape param p_Standard_TrapShapeDiamond, caption = "Trap Shape", default = Standard_TrapShapeDiamond, visible = (@enShape == "Standard Diamond"), endparam
TrapShape param p_Standard_TrapShapeEgg, caption = "Trap Shape", default = Standard_TrapShapeEgg, visible = (@enShape == "Standard Egg"), endparam
TrapShape param p_Standard_TrapShapeGaussianInteger, caption = "Trap Shape", default = Standard_TrapShapeGaussianInteger, visible = (@enShape == "Standard Gaussian Integer"), endparam
TrapShape param p_Standard_TrapShapeHeart, caption = "Trap Shape", default = Standard_TrapShapeHeart, visible = (@enShape == "Standard Heart"), endparam
TrapShape param p_Standard_TrapShapeHyperbola, caption = "Trap Shape", default = Standard_TrapShapeHyperbola, visible = (@enShape == "Standard Hyperbola"), endparam
TrapShape param p_Standard_TrapShapeHypercross, caption = "Trap Shape", default = Standard_TrapShapeHypercross, visible = (@enShape == "Standard Hypercross"), endparam
TrapShape param p_Standard_TrapShapeLines, caption = "Trap Shape", default = Standard_TrapShapeLines, visible = (@enShape == "Standard Lines"), endparam
TrapShape param p_Standard_TrapShapePinch, caption = "Trap Shape", default = Standard_TrapShapePinch, visible = (@enShape == "Standard Pinch"), endparam
TrapShape param p_Standard_TrapShapePoint, caption = "Trap Shape", default = Standard_TrapShapePoint, visible = (@enShape == "Standard Point"), endparam
TrapShape param p_Standard_TrapShapeRectangle, caption = "Trap Shape", default = Standard_TrapShapeRectangle, visible = (@enShape == "Standard Rectangle"), endparam
TrapShape param p_Standard_TrapShapeRing, caption = "Trap Shape", default = Standard_TrapShapeRing, visible = (@enShape == "Standard Ring"), endparam
TrapShape param p_Standard_TrapShapeRing2, caption = "Trap Shape", default = Standard_TrapShapeRing2, visible = (@enShape == "Standard Ring 2"), endparam
TrapShape param p_Standard_TrapShapeRipples, caption = "Trap Shape", default = Standard_TrapShapeRipples, visible = (@enShape == "Standard Ripples"), endparam
TrapShape param p_Standard_TrapShapeSpiral, caption = "Trap Shape", default = Standard_TrapShapeSpiral, visible = (@enShape == "Standard Spiral"), endparam
TrapShape param p_Standard_TrapShapeWaves, caption = "Trap Shape", default = Standard_TrapShapeWaves, visible = (@enShape == "Standard Waves"), endparam
}
;###########################
;
; Combine Shapes
;
;###########################
class RKB_TrapShapeCombineShapes(common.ulb:TrapShape) {
; A shape plug-in which combines two shapes
public:
func RKB_TrapShapeCombineShapes(Generic pparent)
TrapShape(pparent)
; True if function list is set to 'ident'
ShapeA = new @shapeA(this)
ShapeB = new @shapeB(this)
endfunc
float func Iterate(complex pz)
; Process Shape A
float fIndexA = ShapeA.Iterate(pz)
if (@fGradientRotateA > 0.0)
if (fIndexA > 1.0), fIndexA = 1.0, endif
fIndexA = ((fIndexA + @fGradientRotateA) % 1.0)
endif
fIndexA = fIndexA * @fScaleA
; Process Shape B
float fIndexB = ShapeB.Iterate(pz)
if (@fGradientRotateB > 0.0)
if (fIndexB > 1.0), fIndexB = 1.0, endif
fIndexB = ((fIndexB + @fGradientRotateB) % 1.0)
endif
fIndexB = fIndexB * @fScaleB
float fIndex = 0.0
; Put them together
if (@enCombineMode == "Ratio")
fIndex = fIndexA * @fRatio + fIndexB * (1.0 - @fRatio)
elseif (@enCombineMode == "A-B")
fIndex = fIndexA - fIndexB
elseif (@enCombineMode == "B-A")
fIndex = fIndexB - fIndexA
elseif (@enCombineMode == "A*B")
fIndex = fIndexA * fIndexB
elseif (@enCombineMode == "A/B")
fIndex = fIndexB / (fIndexA * @fStrength)
elseif (@enCombineMode == "min")
if (fIndexA < fIndexB), fIndex = fIndexA, else, fIndex = fIndexB, endif
elseif (@enCombineMode == "max")
if (fIndexA > fIndexB), fIndex = fIndexA, else, fIndex = fIndexB, endif
elseif (@enCombineMode == "sin/cos")
if (fIndexA > 1.0), fIndexA = 0.0, endif
if (fIndexB > 1.0), fIndexB = 0.0, endif
fIndex = (abs(sin(fIndexA * #pi)) + abs(cos(fIndexB * #pi)))/2
elseif (@enCombineMode == "sin/cos min")
if (fIndexA > 1.0), fIndexA = 0.0, endif
if (fIndexB > 1.0), fIndexB = 0.0, endif
fIndexA = abs(sin(fIndexA * #pi))
fIndexB = abs(cos(fIndexB * #pi))
if (fIndexA < fIndexB), fIndex = fIndexA, else, fIndex = fIndexB, endif
elseif (@enCombineMode == "sin/cos max")
if (fIndexA > 1.0), fIndexA = 0.0, endif
if (fIndexB > 1.0), fIndexB = 0.0, endif
fIndexA = abs(sin(fIndexA * #pi))
fIndexB = abs(cos(fIndexB * #pi))
if (fIndexA > fIndexB), fIndex = fIndexA, else, fIndex = fIndexB, endif
elseif (@enCombineMode == "A only")
fIndex = fIndexA
elseif (@enCombineMode == "B only")
fIndex = fIndexB
endif
return fIndex
endfunc
private:
TrapShape ShapeA
TrapShape ShapeB
default:
title = "Combine Shapes"
int param iVersion
default = 101
visible = false
endparam
param enCombineMode
caption = "Combine Mode"
enum = "Ratio" "A-B" "B-A" "A*B" "A/B" "min" "max" "sin/cos" \
"sin/cos min" "sin/cos max" "A only" "B only"
endparam
float param fRatio
caption = "Combine Ratio"
default = .5
min = 0
max = 1.0
visible = @enCombineMode == "ratio"
endparam
float param fStrength
caption = "Strength"
default = .1
visible = @enCombineMode == "A/B"
endparam
heading
caption="-- Shape A parameters --"
endheading
float param fScaleA
caption = "Scale Shape A"
default = 1.0
endparam
float param fGradientRotateA
caption = "Rotate Graident A"
default = 0.0
min = 0.0
max = 1.0
hint = "Rotates the gradient for Shape A. Values range from 0.0 to 1.0."
endparam
TrapShape param shapeA
caption = "Trap Shape A"
default = RKB_TrapShapeFlower
hint = "Selects first shape for the combination."
endparam
heading
caption="-- Shape B parameters --"
endheading
float param fScaleB
caption = "Scale Shape B"
default = 1.0
endparam
float param fGradientRotateB
caption = "Rotate Graident B"
default = 0.0
min = 0.0
max = 1.0
hint = "Rotates the gradient for Shape B. Values range from 0.0 to 1.0."
endparam
TrapShape param shapeB
caption = "Trap Shape B"
default = RKB_TrapShapeFlower
hint = "Selects second shape for the combination."
endparam
}