comment { kcc5.ulb 1.0
Classes for Ultra Fractal 5
by Ken Childress
24 June 2008

This is my collection of classes. This collection consists of class versions of the Carlson Orbit Traps types, Plane Curve Trap types, Polygon Traps, and the coloring maps included in those formulas. The older versions of the formulas work perfectly fine in UF5. These classes were written to allow the trap types to work in the new UF 5 class hierarchy. This provides much more flexibility than could be obtained by the previous versions.

The classes contained here are class implementations of the following coloring formulas from kcc3.ucl.

} class KCC_AngleFunction1Trap( common.ulb:TrapShape ) { ; The Angle Function 1 trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_AngleFunction1Trap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) angle = atan( imag( pz ) / real( pz ) ) v = @angleFunc1Multiplier * (@angleFunc1Function1( angle )^2 + \ @angleFunc1Function2( angle )^2) distance = abs( |pz| - |v| ) if( distance < @angleFunc1Size ) m_LastChannel = m_Iterations m_Texture = distance / @angleFunc1Size return distance else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance complex v float angle float m_Texture default: title = "Angle Function 1" int param v_KCC_AngleFunction1Trap caption = "Version (KCC_AngleFunction1Trap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_AngleFunction1Trap < 100 endparam float param angleFunc1Size caption = "Element Size" default = 0.1 hint = "The size of the elements. Suggested range (0.05 to 2.0)." endparam float param angleFunc1Multiplier caption = "Angle Multiplier" default = 1.0 hint = "The angle multiplier. Suggested range (0.01 to 3.14)." endparam func angleFunc1Function1 caption = "Function 1" default = ident() hint = "Modifier function 1." endfunc func angleFunc1Function2 caption = "Function 2" default = ident() hint = "Modifier function 2." endfunc } class KCC_AngleFunction2Trap( common.ulb:TrapShape ) { ; The Angle Function 2 trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_AngleFunction2Trap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) aa = @angleFunc2Multiplier * atan( imag( pz ) / real( pz ) ) aa = aa * aa + @juliaSeed v = @angleFunc2Function1( 1.0 - aa ) / aa distance = abs( |pz| - |v| ) if( distance < @angleFunc2Size ) m_LastChannel = m_Iterations m_Texture = distance / @angleFunc2Size return distance else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance complex v complex aa float m_Texture default: title = "Angle Function 2" int param v_KCC_AngleFunction2Trap caption = "Version (KCC_AngleFunction2Trap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_AngleFunction2Trap < 100 endparam float param angleFunc2Size caption = "Element Size" default = 0.1 hint = "The size of the elements. Suggested range (0.05 to 2.0)." endparam float param angleFunc2Multiplier caption = "Angle Multiplier" default = 1.0 hint = "The angle multiplier. Suggested range (0.01 to 3.14)." endparam complex param juliaSeed caption = "Julia Seed" default = (0.39375, 0.16875) hint = "If a Julia UFM is used, enter the Julia seed. Otherwise, \ this value modifies the trap. Note: This trap is similar \ to, but not exactly the same as the MBF trap." endparam func angleFunc2Function1 caption = "Function 1" default = ident() hint = "Modifier function 1." endfunc } class KCC_AtanTrap( common.ulb:TrapShape ) { ; The Atan trap. ;

; When this trap is used with the Orbit Traps Direct (UF5) ; coloring in dmj5.ucl, a Trap Threshold value of about 1250 is needed ; to produce a result similar to the Atan mode in Carlson Orbit ; Traps in kcc3.ucl. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_AtanTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) prev_z = pz endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) d = abs( real( pz ) ) if( d > @maxReal ) angle = abs( atan( ( imag( pz ) - imag( prev_z ) ) / ( real( pz ) - real( prev_z ) ) ) ) m_LastChannel = m_Iterations m_Texture = angle return d else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float d float angle complex prev_z float m_Texture default: title = "Atan Trap" int param v_KCC_AtanTrap caption = "Version (KCC_AtanTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_AtanTrap < 100 endparam heading caption = "Information" text = "When this trap is used with the Orbit Traps Direct (UF5) \ coloring in dmj5.ucl, a Trap Threshold value of about 1250 \ is needed to produce a result similar to the Atan mode in \ Carlson Orbit Traps in kcc3.ucl." endheading float param maxReal caption = "Max Z" default = 4.0 hint = "Max value of real(z). Suggested range (0.3 to 32.0)." endparam } class KCC_BallsTrap( common.ulb:TrapShape ) { ; The Balls trap. ;

; When this trap is used with the Orbit Traps Direct (UF5) ; coloring in dmj5.ucl, the Trap Threshold value needs to be greater ; than or equal to the Balls size parameter to produce a result similar ; to the Balls mode in Carlson Orbit Traps in kcc3.ucl. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BallsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) b1 = real( pz ) * real( pz ) + (imag( pz ) - 0.5) * (imag( pz ) - 0.5) b2 = real( pz ) * real( pz ) + (imag( pz ) + 0.5) * (imag( pz ) + 0.5) b3 = (real( pz ) - 0.5) * (real( pz ) - 0.5) + imag( pz ) * imag( pz ) b4 = (real( pz ) + 0.5) * (real( pz ) + 0.5) + imag( pz ) * imag( pz ) if( b1 < @ballSize ) distance = b1 m_LastChannel = m_Iterations m_Texture = distance / @ballSize return distance elseif( b2 < @ballSize ) distance = b2 m_LastChannel = m_Iterations m_Texture = distance / @ballSize return distance elseif( b3 < @ballSize ) distance = b3 m_LastChannel = m_Iterations m_Texture = distance / @ballSize return distance elseif( b4 < @ballSize ) distance = b4 m_LastChannel = m_Iterations m_Texture = distance / @ballSize return distance else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance float b1 float b2 float b3 float b4 float m_Texture default: title = "Balls Trap" int param v_KCC_BallsTrap caption = "Version (KCC_BallsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BallsTrap < 100 endparam heading caption = "Information" text = "When this trap is used with the Orbit Traps Direct (UF5) \ coloring in dmj5.ucl, the Trap Threshold value needs to be \ greater than or equal to the Balls size parameter to produce \ a result similar to the Balls mode in Carlson Orbit Traps \ in kcc3.ucl." endheading float param ballSize caption = "Balls Size" default = 0.2 hint = "The size of the balls." endparam } class KCC_BlobsTrap( common.ulb:TrapShape ) { ; The Blobs trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BlobsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) r = @blobsRadius * 0.4782926234762 r2 = r * r denom = @blobsMultiplier * r icd = 1.12484444888696 * r ocd = 1.83195123007351 * r ic0 = 1.59077027517603 * r oc0 = 2.59077027517603 * r cen0 = 2.09077027517603 * r cend = 1.47839783948023 * r i = (0.0,1.0) c0i = i * ic0 c0o = i * oc0 c1i = icd + i * icd c1o = ocd + i * ocd c2i = ic0 c2o = oc0 c3i = icd - i * icd c3o = ocd - i * ocd c4i = -c0i c4o = -c0o c5i = -c1i c5o = -c1o c6i = -c2i c6o = -c2o c7i = -c3i c7o = -c3o c0cen = i * cen0 c1cen = cend + i * cend c2cen = cen0 c3cen = cend - i * cend c4cen = -c0cen c5cen = -c1cen c6cen = -c2cen c7cen = -c3cen endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) c1 = ((|pz - c0i| < r2) && (|pz - c0o| < r2)) c2 = ((|pz - c1i| < r2) && (|pz - c1o| < r2)) c3 = ((|pz - c2i| < r2) && (|pz - c2o| < r2)) c4 = ((|pz - c3i| < r2) && (|pz - c3o| < r2)) c5 = ((|pz - c4i| < r2) && (|pz - c4o| < r2)) c6 = ((|pz - c5i| < r2) && (|pz - c5o| < r2)) c7 = ((|pz - c6i| < r2) && (|pz - c6o| < r2)) c8 = ((|pz - c7i| < r2) && (|pz - c7o| < r2)) if( c1 ) distance = cabs( |pz| - |c0cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c2 ) distance = cabs( |pz| - |c1cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c3 ) distance = cabs( |pz| - |c2cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c4 ) distance = cabs( |pz| - |c3cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c5 ) distance = cabs (|pz| - |c4cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c6 ) distance = cabs( |pz| - |c5cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c7 ) distance = cabs( |pz| - |c6cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance elseif( c8 ) distance = cabs( |pz| - |c7cen| ) m_LastChannel = m_Iterations m_Texture = (distance / denom)^@blobsPower return distance endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance bool c1 bool c2 bool c3 bool c4 bool c5 bool c6 bool c7 bool c8 float r float r2 float denom float icd float ocd float ic0 float oc0 float cen0 float cend complex c0i complex c0o complex c1i complex c1o complex c2i complex c2o complex c3i complex c3o complex c4i complex c4o complex c5i complex c5o complex c6i complex c6o complex c7i complex c7o complex c0cen complex c1cen complex c2cen complex c3cen complex c4cen complex c5cen complex c6cen complex c7cen complex i float m_Texture default: title = "Blobs Trap" int param v_KCC_BlobsTrap caption = "Version (KCC_BlobsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BlobsTrap < 100 endparam float param blobsRadius caption = "Blobs Size" default = 0.25 hint = "The size of the blobs." endparam float param blobsMultiplier caption = "Blobs Multiplier" default = 0.5 hint = "Blob factor multiplier." endparam float param blobsPower caption = "Blobs Power" default = 0.5 hint = "Blob factor exponent." endparam } class KCC_BubblesTrap( common.ulb:TrapShape ) { ; The Bubbles trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BubblesTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) minZ = 1.0e20 savedRange = 0 endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) ;**************************************************** ; Save the smallest value of sqrt(|z|). ;**************************************************** temp = sqrt( |pz| ) if( temp < minZ ) minZ = temp savedRange = m_Iterations endif ;**************************************************** ; If the orbit point exceeds the maximum value, set z to ; the index into the colormap and set the bailout flag. ;**************************************************** if( |pz| > @maxZ ) if( minZ < @bubbleSize ) m_LastChannel = savedRange m_Texture = minZ / @bubbleSize return minZ endif endif ; m_LastChannel = m_Iterations return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: float temp float minZ int savedRange float m_Texture default: title = "Bubbles Trap" int param v_KCC_BubblesTrap caption = "Version (KCC_BubblesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BubblesTrap < 100 endparam float param bubbleSize caption = "Bubble Size" default = 0.1 hint = "The size of the bubbles. Suggested range (0.1 to 0.3)." endparam float param maxZ caption = "Maximum Z" default = 4.0 hint = "The maximum size of the bubbles." visible = false endparam } class KCC_ConesTrap( common.ulb:TrapShape ) { ; The Cones trap. ;

; When using this with Orbit Traps Direct (UF5), the Trap Threshold ; parameter needs to be set high. Also, the Trap Merge Order needs ; to be bottom-up rather than top-down. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_ConesTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) prev_z = pz endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) ; Color is not set until Maximum Iterations reached. m_LastChannel = m_Iterations + 1 angle = abs( atan( ( imag( pz ) - imag( prev_z ) ) / ( real( pz ) - real( prev_z ) ) ) ) if( ( real( pz ) - real( prev_z ) ) < 0.0 ) angle = #pi - angle endif m_Texture = angle / #pi prev_z = pz return angle endfunc float func GetTextureValue() return m_Texture endfunc protected: complex prev_z complex initialZ float angle float m_Texture default: title = "Cones Trap" heading caption = "Information" text = "When this trap is used with the Orbit Traps Direct (UF5) \ coloring in dmj5.ucl, the Trap Threshold parameter needs to \ be set high. Also, the Trap Merge Order needs to be bottom-up \ rather than top-down." endheading int param v_KCC_ConesTrap caption = "Version (KCC_ConesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ConesTrap < 100 endparam } class KCC_CurlsTrap( common.ulb:TrapShape ) { ; The Curls trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CurlsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) cx = 8.0 * #pi * @spiralSize endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) trapped = false if( real( pz ) >= 0.0 ) deltax = real( pz ) - cx v = deltax + flip( imag( pz ) ) theta = atan2( v ) if( @beadFactor > 0 ) size = @spiralWidth * abs( sin( theta * @beadFactor ) ) else size = @spiralWidth endif int i = 0 float thetap = theta v = exp( flip( theta ) ) while (i <= @numLoops && !trapped) sr = @spiralSize * thetap m = cx + sr * v distance = sqrt( |pz - m| ) trapped = ( distance < size ) thetap = thetap + 2 * #pi i = i + 1 endwhile if( trapped ) m_LastChannel = m_Iterations m_Texture = distance / size return distance endif endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: bool trapped float d float cx float deltax float distance float size float theta float sr complex m complex v float m_Texture default: title = "Curls Trap" int param v_KCC_CurlsTrap caption = "Version (KCC_CurlsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CurlsTrap < 100 endparam float param spiralSize caption = "Spiral Size" default = 0.3 hint = "The size of the spiral." endparam float param spiralWidth caption = "Spiral Width" default = 0.3 hint = "The width of the spiral." endparam int param beadFactor caption = "Bead Factor" default = -1 hint = "Determines if the spiral should be beaded. Suggested range \ (5 to 30)." endparam int param numLoops caption = "Times to increment curls trap loop." default = 3 min = 0 endparam } class KCC_DimpledSpheroidsTrap( common.ulb:TrapShape ) { ; The Dimpled Spheroids trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_DimpledSpheroidsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) distance = abs( |pz - (0.5,0.5)| - 0.1 ) if( distance < @dimpledSpheroidSize ) m_LastChannel = m_Iterations m_Texture = distance / @dimpledSpheroidSize return distance endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance float m_Texture default: title = "Dimpled Spheroids Trap" int param v_KCC_DimpledSpheroidsTrap caption = "Version (KCC_DimpledSpheroidsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_DimpledSpheroidsTrap < 100 endparam float param dimpledSpheroidSize caption = "Spheroid Size" default = 0.1 hint = "The size of the spheroids. Suggested range (0.1 to 0.5)." endparam } class KCC_FlexballsTrap( common.ulb:TrapShape ) { ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_FlexballsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) Rm = @flexballRadius Ro = Rm + @flexballSize pY = 0.382683432365 * @flexballSize pX = 0.923879532511 * @flexballSize Dsqd0 = Ro * Ro + @flexballSize * @flexballSize - (Ro + Ro) * Px endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) float d = abs( ( cabs( pz ) - @flexballRadius ) ) if( d < @flexballSize ) x = real( pz ) y = imag( pz ) xAbs = abs( x ) yAbs = abs( y ) if xAbs >= yAbs ZtoPsqd = (xAbs - Px)^2 + (yAbs - pY)^2 adjust = 1 else ZtoPsqd = (xAbs - Py)^2 + (yAbs - pX)^2 adjust = 0 endif if( x >= 0 && y >= 0 ) m_LastChannel = 1 - adjust elseif( x < 0 && y >= 0 ) m_LastChannel = 2 + adjust elseif( x < 0 && y < 0 ) m_LastChannel = 5 - adjust else m_LastChannel = 6 + adjust endif m_Texture = sqrt( ZtoPsqd / Dsqd0 ) return d else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: int adjust float x float y float xAbs float yAbs float pX float pY float Rm float Ro float ratio float Dsqd0 float ZtoPsqd float m_Texture default: title = "Flexballs Trap" int param v_KCC_FlexballsTrap caption = "Version (KCC_FlexballsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_FlexballsTrap < 100 endparam float param flexballSize caption = "Flexball Size" default = 0.1 hint = "The size of the balls. Suggested range (0.01 to 2.0)." endparam float param flexballRadius caption = "Flexball Radius" default = 0.15 hint = "The radius of the balls. Suggested range (0.01 to 2.0)." endparam } class KCC_HarlequinTrap( common.ulb:TrapShape ) { ; The Harlequin trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_HarlequinTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) x = real( pz ) ; If x == 0, then we have to treat temp as a special case because ; atan( y / 0 ) produces a NAN value which causes problems in the ; subsequent computations. if( x == 0 ) return 1e20 endif y = imag( pz ) aa = @harlequinMultiplier * atan( y / x ) aa = aa * aa + @harlequinSeed aa = @harlequinFunction( 1 - aa ) / aa temp = abs( |pz| - |aa| ) if( temp < @harlequinSize ) m_LastChannel = m_Iterations m_Texture = temp / @harlequinSize return temp else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y float temp complex aa float m_Texture default: title = "Harlequin Trap" int param v_KCC_HarlequinTrap caption = "Version (KCC_HarlequinTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_HarlequinTrap < 100 endparam float param harlequinSize caption = "Harlequin Size" default = 0.1 hint = "The size of the harlequin trap." endparam float param harlequinMultiplier caption = "Harlequin Multiplier" default = 2.0 hint = "The angle multiplier for the harlequin trap." endparam complex param harlequinSeed caption = "Harlequin Seed" default = (0.15,1.26875) hint = "The seed for the harlequin trap." endparam func harlequinFunction caption = "Modifier Function" default = ident() hint = "Modifier function 1." endfunc } class KCC_PetalsTrap( common.ulb:TrapShape ) { ; The Petals trap. ;

; When this trap is used with the Orbit Traps Direct (UF5) ; coloring in dmj5.ucl, the Trap Threshold value needs to be greater ; than or equal to the Petal Size parameter to produce a result similar ; to the Petals mode in Carlson Orbit Traps in kcc3.ucl. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_PetalsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) r = @petalSize ro = r + r * @petalOffset r2 = r * r f = 1 - 2 * @petalOffset - @petalOffset * @petalOffset k = @petalOffset * r + r * sqrt (f) plsqd = 2 * r2 * f endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) trapped = false float d = 0.0 float zr = real( pz ) float zi = imag( pz ) bool c1 = (((zr - ro) * (zr - ro) + zi * zi) < r2) bool c2 = ((zr * zr + (zi + ro) * (zi + ro)) < r2) bool c3 = (((zr + ro) * (zr + ro) + zi * zi) < r2) bool c4 = ((zr * zr + (zi - ro) * (zi - ro)) < r2) if( c1 && c4 ) trapped = true d = (zr - k) * (zr - k) + (zi - k) * (zi - k) elseif( c1 && c2 ) trapped = true d = (zr - k) * (zr - k) + (zi + k) * (zi + k) elseif( c2 && c3 ) trapped = true d = (zr + k) * (zr + k) + (zi + k) * (zi + k) elseif( c3 && c4 ) trapped = true d = (zr + k) * (zr + k) + (zi - k) * (zi - k) endif if( trapped ) m_LastChannel = m_Iterations if( @petalColoring == "3D" ) float colorPos = d / plsqd if( colorPos > 0.5 ) m_Texture = (d / plsqd - 0.5) / 0.5 else m_Texture = 1.0 - (d / plsqd / 0.5) endif else m_Texture = d / plsqd endif return d endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: bool trapped float r float ro float r2 float f float k float plsqd float m_Texture default: title = "Petals Trap" int param v_KCC_PetalsTrap caption = "Version (KCC_PetalsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PetalsTrap < 100 endparam heading caption = "Information" text = "When this trap is used with the Orbit Traps Direct (UF5) \ coloring in dmj5.ucl, the Trap Threshold value needs to be \ greater than or equal to the Petal Size parameter to produce \ a result similar to the Petals mode in Carlson Orbit Traps \ in kcc3.ucl." endheading float param petalSize caption = "Petal Size" default = 0.1 hint = "The size of the petals. Suggested range (0.01 to 2.0)." endparam float param petalOffset caption = "Petal Offset" default = 0.1 hint = "The offset of the petals. Suggested range (0.0 to 0.2)." endparam param petalColoring caption = "Petal Coloring" default = 0 enum = "3D" "Flat" endparam } class KCC_RingsTrap( common.ulb:TrapShape ) { ; The Rings trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_RingsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) size = abs( |pz| - 0.25 ) if( size < @ringSize ) m_LastChannel = m_Iterations m_Texture = size / @ringSize return size else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float size float m_Texture default: title = "Rings Trap" int param v_KCC_RingsTrap caption = "Version (KCC_RingsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_RingsTrap < 100 endparam float param ringSize caption = "Ring Size" default = 0.1 hint = "The size of the ring. Suggested range (0.005 to 0.3)." endparam } class KCC_RingSegmentsTrap( common.ulb:TrapShape ) { ; The Ring Segments trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_RingSegmentsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) Phi = #pi * 0.125 Ro = @ringRadius + @ringThickness Py = @ringRadius * sin( Phi ) Px = @ringRadius * cos( Phi ) Dsqd = @ringRadius * @ringRadius + Ro * Ro - 2 * Ro * Px endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) float d = abs( cabs( pz ) - @ringRadius ) if( d < @ringThickness ) float x = real( pz ) float y = imag( pz ) float Xabs = abs( x ) float Yabs = abs( y ) float WtoPsqd = 0 if (Xabs >= Yabs) WtoPsqd = (Xabs-Px) * (Xabs-Px) + (Yabs-Py) * (Yabs-Py) else WtoPsqd = (Xabs-Py) * (Xabs-Py) + (Yabs-Px) * (Yabs-Px) endif if( x >= 0 && y >= 0 ) if( Xabs >= Yabs ) m_LastChannel = 0 else m_LastChannel = 1 endif elseif (x < 0 && y >= 0) if (Xabs < Yabs) m_LastChannel = 2 else m_LastChannel = 3 endif elseif (x < 0 && y < 0) if (Xabs >= Yabs) m_LastChannel = 4 else m_LastChannel = 5 endif else if (Xabs < Yabs) m_LastChannel = 6 else m_LastChannel = 7 endif endif m_Texture = sqrt( WtoPsqd / Dsqd ) return d else return 1e20 ; return a very large distance endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float Phi float Ro float Px float Py float Dsqd float m_Texture default: title = "Ring Segments Trap" int param v_KCC_RingSegmentsTrap caption = "Version (KCC_RingSegmentsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_RingSegmentsTrap < 100 endparam float param @ringRadius caption = "Ring Radius" default = 1.0 hint = "The radius to the midline of the ring." endparam float param @ringThickness caption = "Ring Thickness" default = 0.1 hint = "The thickness of the ring." endparam } class KCC_SpheresTrap( common.ulb:TrapShape ) { ; The Spheres trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SpheresTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) prev_z = pz endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) ;**************************************************** ; Compute the ratio and see if it is within limits. ;**************************************************** ratio = |prev_z| / |pz| prev_z = pz if( ratio < @sphereSize ) m_LastChannel = m_Iterations m_Texture = ratio / @sphereSize return ratio else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: complex prev_z float ratio float m_Texture default: title = "Spheres Trap" int param v_KCC_SpheresTrap caption = "Version (KCC_SpheresTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SpheresTrap < 100 endparam float param sphereSize caption = "Sphere Size" default = 0.1 hint = "The size of the spheres. Suggested range (0.01 to 0.3)." endparam } class KCC_SpheroidsTrap( common.ulb:TrapShape ) { ; The Spheroids trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SpheroidsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) distance = 1e20 endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) if( (delta = |pz + (0,-.5)|) < @spheroidSize ) distance = @spheroidSize - delta elseif( (delta = |pz + (0,.5)|) < @spheroidSize ) distance = @spheroidSize - delta elseif( (delta = |pz + (-.5,0)|) < @spheroidSize ) distance = @spheroidSize - delta elseif( (delta = |pz + (.5,0)|) < @spheroidSize ) distance = @spheroidSize - delta endif if( distance < @spheroidSize ) m_LastChannel = m_Iterations m_Texture = 1.0 - distance / @spheroidSize return distance else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance float delta float m_Texture default: title = "Spheroids Trap" int param v_KCC_SpheroidsTrap caption = "Version (KCC_SpheroidsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SpheroidsTrap < 100 endparam float param spheroidSize caption = "Sphere Size" default = 0.1 hint = "The size of the spheres. Suggested range (0.01 to 1.0)." endparam } class KCC_SquaresTrap( common.ulb:TrapShape ) { ; The Squares trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SquaresTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) Px = 0.5 + @squareSize Py = 0.5 - @squareSize endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) Xabs = abs( real( pz ) - real( @squaresOffset ) ) Yabs = abs( imag( pz ) - imag( @squaresOffset ) ) if( (Xabs < Px) && (Xabs > Py) && (Yabs < Px) && (Yabs > Py) ) float awr5 = abs( Xabs - 0.5 ) float awi5 = abs( Yabs - 0.5 ) if( awr5 <= awi5 ) distance = awr5 else distance = awi5 endif if( distance < @squareSize ) m_LastChannel = m_Iterations m_Texture = distance / @squareSize return distance else return 1e20 endif else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float distance float Xabs float Yabs float Px float Py float m_Texture default: title = "Squares Trap" int param v_KCC_SquaresTrap caption = "Version (KCC_SquaresTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SquaresTrap < 100 endparam float param squareSize caption = "Square Size" default = 0.1 hint = "The size of the squares. Suggested range (0.02 to 0.3)." endparam complex param squaresOffset caption = "Offset" default = (0.0,0.0) hint = "Offset for the center of the Squares." endparam } class KCC_StalksTrap( common.ulb:TrapShape ) { ; The Stalks trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_StalksTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) if( abs( real( pz ) ) <= abs( imag( pz ) ) ) minDist = abs( real( pz ) ) else minDist = abs( imag( pz ) ) endif if( (minDist < @stalkWidth) && (|pz| < @stalkLength) ) m_LastChannel = m_Iterations m_Texture = minDist / @stalkWidth return minDist else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float minDist float m_Texture default: title = "Stalks Trap" int param v_KCC_StalksTrap caption = "Version (KCC_StalksTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_StalksTrap < 100 endparam float param stalkWidth caption = "Stalk Width" default = 0.1 hint = "Width of the stalk. Suggested range (0.01 to 0.5)." endparam float param stalkLength caption = "Stalk Length" default = 0.1 hint = "Length of the stalk. Suggested range (0.01 to 10000.0)." endparam } class KCC_StarOfDavidTrap( common.ulb:TrapShape ) { ; The Star of David trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_StarOfDavidTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) rangeNum = 0 halfside = 1.73205080756888 * @starSize endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) trapped = false ;Compute all the distances rz = real( pz ) iz = imag( pz ) d2 = abs( iz + @starSize ) d4 = abs( iz - @starSize ) d1 = abs( 0.866025403784439 * rz + 0.5 * iz - @starSize ) d3 = abs( -0.866025403784439 * rz + 0.5 * iz - @starSize ) d5 = abs( 0.866025403784439 * rz - 0.5 * iz - @starSize ) d6 = abs( -0.866025403784439 * rz - 0.5 * iz - @starSize ) ;Check line 1 if( d1 < @starWidth ) rangeNum = 0 if( d2 < @starWidth ) trapped = true if( d1 <= d2 ) dist = d1 if( iz <= -@starSize ) dist = d2 endif else dist = d2 if( rz >= halfside ) dist = d1 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d3 < @starWidth ) trapped = true if( d1 <= d3 ) dist = d1 if( rz <= 0.0 ) dist = d3 endif else dist = d3 if( rz > 0.0 ) dist = d1 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d4 < @starWidth ) trapped = true if( d1 <= d4 ) dist = d1 else dist = d4 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d5 < @starWidth ) trapped = true if( d1 <= d5 ) dist = d1 else dist = d5 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( rz >= 0.0 && iz >= -@starSize ) trapped = true dist = d1 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif ;Check line 2 if( d2 < @starWidth && !trapped ) rangeNum = 0 if( d3 < @starWidth ) trapped = true if( d2 <= d3 ) dist = d2 if( rz <= -halfside ) dist = d3 endif else dist = d3 if( iz <= -@starSize ) dist = d2 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d5 < @starWidth ) trapped = true if( d2 <= d5 ) dist = d2 else dist = d5 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d6 < @starWidth ) trapped = true if( d2 <= d6 ) dist = d2 else dist = d6 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( abs(rz) <= halfside ) trapped = true dist = d2 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif ;Check line 3 if( d3 < @starWidth && !trapped ) rangeNum = 0 if( d4 < @starWidth ) trapped = true if( d3 <= d4 ) dist = d3 else dist = d4 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d6 < @starWidth ) trapped = true if( d3 <= d6 ) dist = d3 else dist = d6 rangeNum = 1 endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( rz <= 0.0 && iz >= -@starSize ) trapped = true dist = d3 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif ;Check line 4 if( d4 < @starWidth && !trapped ) rangeNum = 1 if( d5 < @starWidth ) trapped = true if( d4 <= d5 ) dist = d4 if( rz >= halfside ) dist = d5 endif else dist = d5 if( iz >= @starSize ) dist = d4 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( d6 < @starWidth ) trapped = true if( d4 <= d6 ) dist = d4 if( rz <= -halfside ) dist = d6 endif else dist = d6 if( iz >= @starSize ) dist = d4 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( abs(rz) <= halfside ) trapped = true dist = d4 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif ;Check line 5 if( d5 < @starWidth && !trapped ) rangeNum = 1 if( d6 < @starWidth ) trapped = true if( d5 <= d6 ) dist = d5 if( rz <= 0.0 ) dist = d6 endif else dist = d6 if( rz > 0.0 ) dist = d5 endif endif m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist elseif( rz >= 0.0 && iz <= @starSize ) trapped = true dist = d5 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif ;Check line 6 if( d6 < @starWidth ) rangeNum = 1 if( rz <= 0.0 && iz <= @starSize ) trapped = true dist = d6 m_LastChannel = m_Iterations + rangeNum m_Texture = dist / @starWidth return dist endif endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: bool trapped int rangeNum float halfside float rz float iz float dist float d1 float d2 float d3 float d4 float d5 float d6 float m_Texture default: title = "Star of David Trap" int param v_KCC_StarOfDavidTrap caption = "Version (KCC_StarOfDavidTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_StarOfDavidTrap < 100 endparam float param starSize caption = "Star Size" default = 0.1 hint = "The Size of the star. Suggested range (0.05 to 1.0)." endparam float param starWidth caption = "Star Width" default = 0.1 hint = "The width of the star. Suggested range (0.01 to 0.5)." endparam } class KCC_TangentBallsTrap( common.ulb:TrapShape ) { ; The Tangent Balls trap. ;

; When this trap is used with the Orbit Traps Direct (UF5) ; coloring in dmj5.ucl, the Trap Threshold value needs to be greater ; than or equal to the Balls Radius parameter to produce a result similar ; to the Tangent Balls mode in Carlson Orbit Traps in kcc3.ucl. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TangentBallsTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) m_Texture = 0.0 Dsqd0 = 0.0 Dsqd1 = 0.0 Dsqd2 = 0.0 ZtoPsqd = 0.0 Rc = @ballRadius Phi = #pi / 8 Rm = Rc / sin(Phi) RcSqd = Rc^2 Py = Rm * sin(2 * Phi) Px = Rm * cos(2 * Phi) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) ; segment = 0 x = real( pz ) y = imag( pz ) Xabs = abs( x ) Yabs = abs( y ) float d = abs( ( cabs( pz ) - Rm ) ) if( d < Rc ) Dsqd0 = Xabs^2 + (Yabs - Rm)^2 Dsqd1 = (Xabs - Px)^2 + (Yabs - Py)^2 Dsqd2 = (Xabs - Rm)^2 + Yabs^2 if Dsqd0 < RcSqd ZtoPsqd = Dsqd0 if y > 0 m_LastChannel = 0 else m_LastChannel = 4 endif m_Texture = sqrt( ZtoPsqd / RcSqd ) return d elseif Dsqd1 < RcSqd ZtoPsqd = Dsqd1 if y > 0 && x > 0 m_LastChannel = 1 elseif y < 0 && x > 0 m_LastChannel = 3 elseif y < 0 && x < 0 m_LastChannel = 5 else m_LastChannel = 7 endif m_Texture = sqrt( ZtoPsqd / RcSqd ) return d elseif Dsqd2 < RcSqd ZtoPsqd = Dsqd2 if x > 0 m_LastChannel = 2 else m_LastChannel = 6 endif m_Texture = sqrt( ZtoPsqd / RcSqd ) return d endif return 1e20 else return 1e20 endif endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y float Xabs float Yabs float ratio float Dsqd0 float Dsqd1 float Dsqd2 float ZtoPsqd float Rc float Phi float Rm float RcSqd float Py float Px float m_Texture default: title = "Tangent Balls Trap" int param v_KCC_TangentBallsTrap caption = "Version (KCC_TangentBallsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TangentBallsTrap < 100 endparam heading caption = "Information" text = "When this trap is used with the Orbit Traps Direct (UF5) \ coloring in dmj5.ucl, the Trap Threshold value needs to be \ greater than or equal to the Balls Radius parameter to produce \ a result similar to the Tangent Balls mode in Carlson Orbit Traps \ in kcc3.ucl." endheading float param ballRadius caption = "Ball Radius" default = 0.1 hint = "The radius of the Tangent Balls." endparam } class KCC_TwoEllipsesTrap( common.ulb:TrapShape ) { ; The Two Ellipses trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TwoEllipsesTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) angle = atan( imag( pz ) / real( pz ) ) ellipse1 = @majorAxis1 * cos( angle ) + (0.0,0.0) * @minorAxis1 * sin( angle ) ellipse2 = @minorAxis2 * cos( angle ) + (0.0,0.0) * @majorAxis2 * sin( angle ) distance1 = abs( cabs( pz ) - cabs( ellipse1 ) ) distance2 = abs( cabs( pz ) - cabs( ellipse2 ) ) if( distance1 < distance2 ) segment = 0 distance = distance1 else segment = 1 distance = distance2 endif if( distance < @ellipseWidth ) m_LastChannel = m_Iterations + segment m_Texture = distance / @ellipseWidth return distance endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: int segment float angle complex ellipse1 complex ellipse2 float distance float distance1 float distance2 float m_Texture default: title = "Two Ellipses Trap" int param v_KCC_TwoEllipsesTrap caption = "Version (KCC_TwoEllipsesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TwoEllipsesTrap < 100 endparam float param ellipseWidth caption = "Elipse Width" default = 0.1 hint = "The width of the ellipses." endparam float param majorAxis1 caption = "Ellipse 1 Major Axis" default = 0.6 hint = "The major axis length of ellipse 1." endparam float param minorAxis1 caption = "Ellipse 1 Minor Axis" default = 0.6 hint = "The minor axis length of ellipse 1." endparam float param majorAxis2 caption = "Ellipse 2 Major Axis" default = 0.2 hint = "The major axis length of ellipse 2." endparam float param minorAxis2 caption = "Ellipse 2 Minor Axis" default = 0.2 hint = "The minor axis length of ellipse 2." endparam } class KCC_PlaneCurveTrapBase( common.ulb:TrapShape ) { ; This is the base class for the Plane Curve Traps. ; All of the Plane Curve Trap types will derive from ; this class. ; public: import "common.ulb" ; constructor func KCC_PlaneCurveTrapBase( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) minDist = abs( real( pz ) ) if( minDist < @width ) m_LastChannel = m_Iterations m_Texture = minDist / @width return minDist else return 1e20 endif endfunc complex func ApplyRatioAndSize( complex pz ) pz = pz / @size float x = sqrt( @ratio ) * real( pz ) float y = 1 / sqrt( @ratio ) * imag( pz ) return x + flip( y ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float minDist float m_Texture default: int param v_KCC_PlaneCurveTrapBase caption = "Version (KCC_PlaneCurveTrapBase)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PlaneCurveTrapBase < 100 endparam float param size caption = "Size" default = 1.0 hint = "The size of the trap shape." endparam float param width caption = "Width" default = 0.1 hint = "The width of the trap." endparam ; float param borderWidth ; caption = "Shape Border Width" ; default = 0.0 ; hint = "The width of the border around each shape." ; ; visible = (@colorPreset == "Gradient") && (@colorMode != "Normal") ; ; visible = (GradientColors( @colors ) ) ; endparam ; color param borderColor ; caption = "Border Color" ; default = rgb(0,0,0) ; hint = "Specifies the color assigned to the border of the shapes." ; visible = (@solidBorder == false) ; ; visible = (@solidBorder == false) && (@colorPreset == "Gradient") && \ ; ; (@colorMode != "Normal") && (@borderWidth > 0.0) ; endparam ; bool param solidBorder ; caption = "Solid Border" ; hint = "If this is enabled orbits, the border around the shapes is \ ; made solid." ; default = false ; ; visible = (@colorPreset == "Gradient") && (@colorMode != "Normal") && \ ; ; (@borderWidth > 0.0) ; endparam float param ratio caption = "H/W Ratio" default = 1.0 hint = "The ration of height to width." endparam param adv caption = "Advanced Options" hint = "Additional shaping parameters and functions." default = false endparam } class KCC_AmpersandTrap( KCC_PlaneCurveTrapBase ) { ; The Ampersand trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_AmpersandTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Ampersand Curve. pz = @fn1((@fn2(y^(2*@shapeAdjust3))-@fn3(x^2+(1-@shapeAdjust4)))* \ @fn4((x^@shapeAdjust5)-1)*(@shapeAdjust1*@fn5(x)-@shapeAdjust2)- \ 4*(@fn6(x^2*@shapeAdjust6)+@fn7(y^(2*@shapeAdjust7))-2* \ @fn8(x^@shapeAdjust8))^2)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Ampersand Trap" int param v_KCC_AmpersandTrap caption = "Version (KCC_AmpersandTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_AmpersandTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_ArcTangentTrap( KCC_PlaneCurveTrapBase ) { ; The Arc Tangent trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_ArcTangentTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Arc Tangent curve pz = @fn1(atan(@fn2(x^@shapeAdjust1*@shapeAdjust3))- \ @fn3(y^@shapeAdjust2))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "ArcTangent Trap" int param v_KCC_ArcTangentTrap caption = "Version (KCC_ArcTangentTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ArcTangentTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BeanCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Bean Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BeanCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Bean Curve. pz = @fn1(@fn2(x^4*@shapeAdjust1)+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^(2*@shapeAdjust3))+@fn5(y^4*@shapeAdjust4)- \ @fn6(x^@shapeAdjust5)*@fn7(x^(2*@shapeAdjust6)+ \ @fn8(y^2+(1-@shapeAdjust7))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bean Curve Trap" int param v_KCC_BeanCurveTrap caption = "Version (KCC_BeanCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BeanCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BicornCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Bicorn Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BicornCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Bicorn Curve. pz = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1^2-@fn3(x^2)))- \ (@fn4(x^(2*@shapeAdjust3))+2*@shapeAdjust1* \ @fn5(y^@shapeAdjust4)-@shapeAdjust1^2)^2-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bicorn Curve Trap" int param v_KCC_BicornCurveTrap caption = "Version (KCC_BicornCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BicornCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BicuspidCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Bicuspid Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BicuspidCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Ampersand Curve. pz = @fn1(@fn2(x^(2*@shapeAdjust2)-@shapeAdjust1^2)* \ @fn3(x^@shapeAdjust3-@shapeAdjust1)^2+ \ @fn4(y^(2*@shapeAdjust4)-@shapeAdjust1^2)^2)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bicuspid Curve Trap" int param v_KCC_BicuspidCurveTrap caption = "Version (KCC_BicuspidCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BicuspidCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BifoliateTrap( KCC_PlaneCurveTrapBase ) { ; The Bifoliate trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BifoliateTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Bifoliate Curve. pz = @fn1(@fn2(x^4*@shapeAdjust2)+@fn3(y^4*@shapeAdjust3)- \ 2*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(2*@shapeAdjust5))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bifoliate Trap" int param v_KCC_BifoliateTrap caption = "Version (KCC_BifoliateTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BifoliateTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BifoliumTrap( KCC_PlaneCurveTrapBase ) { ; The Bifolium trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BifoliumTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Bifolium Curve. pz = @fn1(@fn2(x^(1+@shapeAdjust2))+@fn3(y^2+(1-@shapeAdjust3)))^2- \ 4*@shapeAdjust1*@fn4(abs(x^@shapeAdjust4)* \ @fn5(y^(3-@shapeAdjust5)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bifolium Trap" int param v_KCC_BifoliumTrap caption = "Version (KCC_BifoliumTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BifoliumTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_BowTrap( KCC_PlaneCurveTrapBase ) { ; The Bow trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_BowTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Bow Curve. pz = @fn1(@fn2(x^4*@shapeAdjust1)-@fn3(x^2+(1-@shapeAdjust2))* \ @fn4(y^@shapeAdjust3)+@fn5(y^3*@shapeAdjust4))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Bow Trap" int param v_KCC_BowTrap caption = "Version (KCC_BowTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BowTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_ButterflyCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Butterfly Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_ButterflyCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Butterfly Curve. pz = @fn1(@fn2(y^(6*@shapeAdjust1))-(@fn3(x^2+(1-@shapeAdjust2))- \ @fn4(x^6+(1-@shapeAdjust3))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Butterfly Curve Trap" int param v_KCC_ButterflyCurveTrap caption = "Version (KCC_ButterflyCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ButterflyCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CassiniOvalsTrap( KCC_PlaneCurveTrapBase ) { ; The Cassini Ovals trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CassiniOvalsTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Cassini Ovals Curve. pz = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^2*@shapeAdjust4)+ \ @shapeAdjust1^2)^2-4*@shapeAdjust1^2* \ @fn4(x^(3-@shapeAdjust5))-@shapeAdjust2^4)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Cassini Ovals Trap" int param v_KCC_CassiniOvalsTrap caption = "Version (KCC_CassiniOvalsTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CassiniOvalsTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CirclesTrap( KCC_PlaneCurveTrapBase ) { ; The Circles trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CirclesTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Circles Curve. pz = @fn1(@fn2((x*@shapeAdjust1)^(3-@shapeAdjust2))+ \ @fn3((y*@shapeAdjust3)^(3-@shapeAdjust4))-1)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Circles Trap" int param v_KCC_CirclesTrap caption = "Version (KCC_CirclesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CirclesTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CissoidOfDioclesTrap( KCC_PlaneCurveTrapBase ) { ; The Cissoid of Diocles trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CissoidOfDioclesTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Cissoid of Diocles Curve. pz = @fn1(@fn2(x^@shapeAdjust2)*@fn3(x^2+(1-@shapeAdjust3)+ \ @fn4(y^2*@shapeAdjust4))-2*@shapeAdjust1* \ @fn5(y^2+(1-@shapeAdjust5)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Cissoid of Diocles Trap" int param v_KCC_CissoidOfDioclesTrap caption = "Version (KCC_CissoidOfDioclesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CissoidOfDioclesTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CochleoidTrap( KCC_PlaneCurveTrapBase ) { ; The Cochleoid trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CochleoidTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Cochleoid Curve. pz = @fn1((@fn2(x^2*@shapeAdjust2)+@fn3(y^2*@shapeAdjust3))* \ atan(@fn4(y^@shapeAdjust4)/@fn5(x^@shapeAdjust5))- \ @shapeAdjust1*abs(@fn6(y^@shapeAdjust6)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Cochleoid Trap" int param v_KCC_CochleoidTrap caption = "Version (KCC_CochleoidTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CochleoidTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CockedHatTrap( KCC_PlaneCurveTrapBase ) { ; The Cocked Hat trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CockedHatTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Cocked Hat Curve. pz = @fn1(@fn2(x^2*@shapeAdjust3)+2*@shapeAdjust1*@fn3(y^@shapeAdjust4)- \ @shapeAdjust1^2)^2-@fn4(y^(3-@shapeAdjust5))* \ (@shapeAdjust2^2-@fn5(x^2*@shapeAdjust6))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Cocked Hat Trap" int param v_KCC_CockedHatTrap caption = "Version (KCC_CockedHatTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CockedHatTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_ConchoidOfNicomedesTrap( KCC_PlaneCurveTrapBase ) { ; The Conchoid of Nicomedes trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_ConchoidOfNicomedesTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Conchoid of Nicomedes Curve. pz = @fn1((@fn2(x-@shapeAdjust1))^2*(@fn3(x^(2*@shapeAdjust3))+ \ @fn4(y^2*@shapeAdjust4))-@shapeAdjust2^2* \ @fn5(x^2*@shapeAdjust5))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Conchoid of Nicomedes Trap" int param v_KCC_ConchoidOfNicomedesTrap caption = "Version (KCC_ConchoidOfNicomedesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ConchoidOfNicomedesTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_CruciformTrap( KCC_PlaneCurveTrapBase ) { ; The Cruciform trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_CruciformTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Cruciform Curve. pz = @fn1(@fn2(x^2*@shapeAdjust3)*@fn3(y^(1+@shapeAdjust4))- \ @shapeAdjust1^2*@fn4(x^(1+@shapeAdjust5))-@shapeAdjust2^2* \ @fn5(y^(3-@shapeAdjust6)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Cruciform Trap" int param v_KCC_CruciformTrap caption = "Version (KCC_CruciformTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CruciformTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_DevilsCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Devil's Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_DevilsCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Devil's Curve. pz = @fn1(@fn2(y^(3+@shapeAdjust4))-@shapeAdjust1^2* \ @fn3(y^2+(1-@shapeAdjust5))-@fn4(x^4*@shapeAdjust3)+ \ @shapeAdjust2^2*@fn5(x^(1+@shapeAdjust6)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Devil's Curve Trap" int param v_KCC_DevilsCurveTrap caption = "Version (KCC_DevilsCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_DevilsCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_DiamondTrap( KCC_PlaneCurveTrapBase ) { ; The Diamond trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_DiamondTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Diamond Curve. pz = @fn1(abs(@fn2(x*@shapeAdjust1))+abs(@fn3(y^@shapeAdjust2))-1)- \ @distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Diamond Trap" int param v_KCC_DiamondTrap caption = "Version (KCC_DiamondTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_DiamondTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_DumbbellCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Dumbbell Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_DumbbellCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Dumbbell Curve. pz = @fn1(@fn2(y^2*@shapeAdjust2)-@shapeAdjust1^2* \ (@fn3(x^(5-@shapeAdjust3))-@fn4(x^(7-@shapeAdjust4))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Dumbbell Curve Trap" int param v_KCC_DumbbellCurveTrap caption = "Version (KCC_DumbbellCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_DumbbellCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_DurersConchoidTrap( KCC_PlaneCurveTrapBase ) { ; The Dürer's Conchoid trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_DurersConchoidTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Dürer's Conchoid Curve. pz = @fn1(2*@fn2(y^(1+@shapeAdjust3))*(@fn3(x^(1+@shapeAdjust4))+ \ @fn4(y^2*@shapeAdjust5))-2*@shapeAdjust2* \ @fn5(y^2+(1-@shapeAdjust6))*(@fn6(x^@shapeAdjust7)+ \ @fn7(y+(1-@shapeAdjust8)))+(@shapeAdjust2^2-3*@shapeAdjust1^2)* \ @fn8(y^(1+@shapeAdjust9))-@shapeAdjust1^2* \ @fn9(x^2*@shapeAdjust10)+2*@shapeAdjust1^2*@shapeAdjust2* \ (@fn10(x^@shapeAdjust11)+@fn11(y^@shapeAdjust12))+ \ @shapeAdjust1^2*(@shapeAdjust1^2-@shapeAdjust2^2))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Dürer's Conchoid Trap" int param v_KCC_DurersConchoidTrap caption = "Version (KCC_DurersConchoidTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_DurersConchoidTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv endparam float param shapeAdjust10 caption = "Shape Adj. X" default = 1.0 hint = "Shape adjustment parameter X." visible = @adv endparam float param shapeAdjust11 caption = "Shape Adj. XI" default = 1.0 hint = "Shape adjustment parameter XI." visible = @adv endparam float param shapeAdjust12 caption = "Shape Adj. XII" default = 1.0 hint = "Shape adjustment parameter XII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn9 caption = "Function 9" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn10 caption = "Function 10" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn11 caption = "Function 11" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_EightCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Eight Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_EightCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Eight Curve. pz = @fn1(@fn2(x^(3+@shapeAdjust2))-@shapeAdjust1^2* \ (@fn3(x^2*@shapeAdjust3)-@fn4(y^2*@shapeAdjust4)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Eight Curve Trap" int param v_KCC_EightCurveTrap caption = "Version (KCC_EightCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_EightCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_HappyAccidentTrap( KCC_PlaneCurveTrapBase ) { ; The Happy Accident trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_HappyAccidentTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Happy Accident Curve. pz = @fn1((@fn2((x*@shapeAdjust4)^(1+@shapeAdjust2))+ \ @fn3(y^2*@shapeAdjust3))*atan2(@fn4(y^@shapeAdjust7)* \ @fn5(x^@shapeAdjust5))-@shapeAdjust1*@fn6 \ (y^@shapeAdjust6))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Happy Accident Trap" int param v_KCC_HappyAccidentTrap caption = "Version (KCC_HappyAccidentTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_HappyAccidentTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_HyperbolaTrap( KCC_PlaneCurveTrapBase ) { ; The Hyperbola trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_HyperbolaTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Hyperbola Curve. pz = @fn1(@fn2((x*@shapeAdjust1)^(1+@shapeAdjust2))- \ @fn3((y*@shapeAdjust3)^(1+@shapeAdjust4)) + 1)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Hyperbola Trap" int param v_KCC_HyperbolaTrap caption = "Version (KCC_HyperbolaTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_HyperbolaTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_KappaCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Kappa Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_KappaCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Kappa Curve. pz = @fn1((@fn2(x^(3-@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))* \ @fn4(y^(1+@shapeAdjust4))-@shapeAdjust1^2* \ @fn5(x^2*@shapeAdjust5))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Kappa Curve Trap" int param v_KCC_KappaCurveTrap caption = "Version (KCC_KappaCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_KappaCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_KepplersFoliumTrap( KCC_PlaneCurveTrapBase ) { ; The Keppler's Folium trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_KepplersFoliumTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Keppler's Folium Curve. pz = @fn1(((@fn2(x^@shapeAdjust3)-@shapeAdjust2)^2+ \ @fn3(y^2+(1-@shapeAdjust4)))*(@fn4(x+(1-@shapeAdjust5))* \ (@fn5(x-(@shapeAdjust6-1))-@shapeAdjust2)+@fn6 \ (y^(1+@shapeAdjust7)))-4*@shapeAdjust1* \ (abs(@fn7(x+(@shapeAdjust8-1)))-@shapeAdjust2)* \ @fn8(y^(2*@shapeAdjust9)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Keppler's Folium Trap" int param v_KCC_KepplersFoliumTrap caption = "Version (KCC_KepplersFoliumTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_KepplersFoliumTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam float param shapeAdjust9 caption = "Shape Adj. IX" default = 1.0 hint = "Shape adjustment parameter IX." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_KeratoidCuspTrap( KCC_PlaneCurveTrapBase ) { ; The Keratoid Cusp trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_KeratoidCuspTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Keratoid Cusp Curve. pz = @fn1(@fn2(x^(2*@shapeAdjust1))*@fn3(y^@shapeAdjust2)+ \ @fn4(x^(5*@shapeAdjust3))-@fn5(y^(3-@shapeAdjust4)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Keratoid Cusp Trap" int param v_KCC_KeratoidCuspTrap caption = "Version (KCC_KeratoidCuspTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_KeratoidCuspTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_KnotCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Knot Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_KnotCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Knot Curve. pz = @fn1((@fn2(x^(1+@shapeAdjust1)-1)^2)-@fn3(y^2*@shapeAdjust2)* \ (3+2*@fn4(y*@shapeAdjust3)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Knot Curve Trap" int param v_KCC_KnotCurveTrap caption = "Version (KCC_KnotCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_KnotCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_LemniscateTrap( KCC_PlaneCurveTrapBase ) { ; The Lemniscate trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_LemniscateTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Lemniscate Curve. pz = @fn1((@fn2(x^2+(1-@shapeAdjust2))+@fn3(y^(1+@shapeAdjust3)))^2- \ 2*@shapeAdjust1*(@fn4(x^(2*@shapeAdjust4))- \ @fn5(y^2*@shapeAdjust5)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Lemniscate Trap" int param v_KCC_LemniscateTrap caption = "Version (KCC_LemniscateTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LemniscateTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_LemniscateCorrectedTrap( KCC_PlaneCurveTrapBase ) { ; The Lemniscate Corrected trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_LemniscateCorrectedTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Lemniscate Corrected Curve. pz = @fn1(@fn2(x^4+(1-@shapeAdjust2))+@fn3(y^4+(3-@shapeAdjust3))* \ @fn4(x^2*@shapeAdjust4)*@fn5(y^(2*@shapeAdjust5))-2* \ @shapeAdjust1^2*(@fn6(x^(2*@shapeAdjust6))- \ @fn7(y^(1+@shapeAdjust7))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Lemniscate Corrected Trap" int param v_KCC_LemniscateCorrectedTrap caption = "Version (KCC_LemniscateCorrectedTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LemniscateCorrectedTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_LimaconTrap( KCC_PlaneCurveTrapBase ) { ; The Limacon trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_LimaconTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Limacon Curve. pz = @fn1((@fn2(x^(2*@shapeAdjust3))+@fn3(y^2+(1-@shapeAdjust4))-2* \ @shapeAdjust1*@fn4(x^@shapeAdjust5))^2-@shapeAdjust2^2* \ (@fn5(x^2*@shapeAdjust6)+@fn6(y^2*@shapeAdjust7)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Limacon Trap" int param v_KCC_LimaconTrap caption = "Version (KCC_LimaconTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LimaconTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_LineTrap( KCC_PlaneCurveTrapBase ) { ; The Line trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_LineTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Line Curve. pz = @fn1(y^@shapeAdjust1)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Line Trap" int param v_KCC_LineTrap caption = "Version (KCC_LineTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LineTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_LinksCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Links Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_LinksCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Links Curve Curve. pz = @fn1((@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-3* \ @fn4(x^@shapeAdjust3))^2-4*@fn5(x^(2*@shapeAdjust4))* \ (2-abs(@fn6(x^@shapeAdjust5))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Links Curve Trap" int param v_KCC_LinksCurveTrap caption = "Version (KCC_LinksCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LinksCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_MalteseCrossCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Maltese Cross Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_MalteseCrossCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Maltese Cross Curve. pz = @fn1(@fn2(x^2*@shapeAdjust1)+@fn3(y^(2*@shapeAdjust2))-abs \ (@fn4(x^@shapeAdjust3))*abs(@fn5(y+(1-@shapeAdjust4)))* \ (@fn6(x^(2+(1-@shapeAdjust5))-@fn7(y^(2*@shapeAdjust6)))))- \ @distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Maltese Cross Curve Trap" int param v_KCC_MalteseCrossCurveTrap caption = "Version (KCC_MalteseCrossCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_MalteseCrossCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_ParabolaTrap( KCC_PlaneCurveTrapBase ) { ; The Parabola trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_ParabolaTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Parabola Curve. pz = @fn1(@fn2(x^(2*@shapeAdjust1))-@fn3(y^@shapeAdjust2))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Parabola Trap" int param v_KCC_ParabolaTrap caption = "Version (KCC_ParabolaTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ParabolaTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_PearShapedCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Pear Shaped Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_PearShapedCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Pear-Shaped Curve. pz = @fn1(@fn2(x^(4-@shapeAdjust3))* \ (@shapeAdjust1-@fn3(x^@shapeAdjust4))-@shapeAdjust2^2* \ @fn4(y^(2*@shapeAdjust5)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Pear-Shaped Curve Trap" int param v_KCC_PearShapedCurveTrap caption = "Version (KCC_PearShapedCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PearShapedCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_PiriformTrap( KCC_PlaneCurveTrapBase ) { ; The Prirform trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_PiriformTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Piriform Curve. pz = @fn1(@shapeAdjust1^4*@fn2(y^(2*@shapeAdjust3))-@shapeAdjust2^2* \ @fn3(x^(3*@shapeAdjust4))*(2*@shapeAdjust1-@fn4(x/@shapeAdjust5)))- \ @distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Piriform Trap" int param v_KCC_PiriformTrap caption = "Version (KCC_PiriformTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PiriformTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_QuadrifoliumTrap( KCC_PlaneCurveTrapBase ) { ; The Quadrifolium trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_QuadrifoliumTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Quadrifolium Curve. pz = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3(y^2*@shapeAdjust3))^3-4* \ @fn4(x^2+(1-@shapeAdjust4))*@fn5(y^(3-@shapeAdjust5))* \ @shapeAdjust1^2)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Quadrifolium Trap" int param v_KCC_QuadrifoliumTrap caption = "Version (KCC_QuadrifoliumTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_QuadrifoliumTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_RoseCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Rose Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_RoseCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Rose Curve. complex tz = atan2(x + flip(y)) pz = @fn1(@shapeAdjust1*cos(@fn2(tz^@shapeAdjust3)) + \ @shapeAdjust2*sin(@fn3(tz^@shapeAdjust4)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Rose Curve Trap" int param v_KCC_RoseCurveTrap caption = "Version (KCC_RoseCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_RoseCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_SerpentineCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Serpentine Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SerpentineCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Serpentine Curve. pz = @fn1(@shapeAdjust1*@shapeAdjust2*@fn2(x^@shapeAdjust3)/ \ @fn3((x+1-@shapeAdjust3)^2+@shapeAdjust1^2)- \ @fn4(y^@shapeAdjust4))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Serpentine Curve Trap" int param v_KCC_SerpentineCurveTrap caption = "Version (KCC_SerpentineCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SerpentineCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_sinXTrap( KCC_PlaneCurveTrapBase ) { ; The sinX trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_sinXTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the sin(x)/x Curve. pz = @fn1(10*@fn2(sin(x^@shapeAdjust1))/@fn3(x*@shapeAdjust2)- \ @fn4(y^@shapeAdjust3))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "sin(x)/x Trap" int param v_KCC_sinXTrap caption = "Version (KCC_sinXTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_sinXTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_SinusCosinusTrap( KCC_PlaneCurveTrapBase ) { ; The Sinus Cosinus trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SinusCosinusTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Sinus + Cosinus Curve. pz = @fn1(sin(@shapeAdjust1*@fn2(x^@shapeAdjust3))+ \ cos(@shapeAdjust2*@fn3(x+(1-@shapeAdjust4)))+ \ @fn4(y^@shapeAdjust5))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Sinus + Cosinus Trap" int param v_KCC_SinusCosinusTrap caption = "Version (KCC_SinusCosinusTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SinusCosinusTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_SpiralTrap( KCC_PlaneCurveTrapBase ) { ; The Spiral trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SpiralTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Spiral Curve. float dist = abs((x^(2*@shapeAdjust2)+y^(2*@shapeAdjust3))^ \ @shapeAdjust1%1-.5+atan2(x*@shapeAdjust4+ \ (flip(y^@shapeAdjust5)))/(2*pi)) float dist2 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+ \ atan2(x+flip(y))/(2*pi)+1) if dist2 < dist dist = dist2 endif dist2 = abs((x^(2*@shapeAdjust6)+y^2)^@shapeAdjust1%1-.5+atan2(x+flip(y))/(2*pi)-1) if dist2 < dist dist = dist2 endif pz = dist ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Spiral Trap" int param v_KCC_SpiralTrap caption = "Version (KCC_SpiralTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SpiralTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam } class KCC_SquareTrap( KCC_PlaneCurveTrapBase ) { ; The Square trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SquareTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Square Curve. if abs(x) > abs(y) pz = @fn1(@fn2(abs(x^@shapeAdjust1))-1)-@distort else pz = @fn1(@fn2(abs(y^@shapeAdjust1))-1)-@distort endif ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Square Trap" int param v_KCC_SquareTrap caption = "Version (KCC_SquareTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SquareTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_StirrupCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Stirrup Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_StirrupCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Stirrup Curve. pz = @fn1(@fn2((x^2-1)^2)-@fn3(y^2)*@fn4(y-1)*@fn5(y-2)* \ @fn6(y+5))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Stirrup Curve Trap" int param v_KCC_StirrupCurveTrap caption = "Version (KCC_StirrupCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_StirrupCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_StrangeShapeTrap( KCC_PlaneCurveTrapBase ) { ; The Strange Shape trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_StrangeShapeTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) pz = @fn1((@fn2(x^(2*@shapeAdjust2))+@fn3((y*@shapeAdjust8)^ \ (2*@shapeAdjust3)))*atan2(@fn4(x*@shapeAdjust4)^ \ @shapeAdjust7+flip(@fn5(y^@shapeAdjust5)))- \ @shapeAdjust1*@fn6(y^@shapeAdjust6))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Strange Shape Trap" int param v_KCC_StrangeShapeTrap caption = "Version (KCC_StrangeShapeTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_StrangeShapeTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_SwastikaCurveTrap( KCC_PlaneCurveTrapBase ) { ; The Swastika Curve trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_SwastikaCurveTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Swastika Curve. pz = @fn1(@fn2(y^(4*@shapeAdjust1))-@fn3(x^4*@shapeAdjust2)- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Swastika Curve Trap" int param v_KCC_SwastikaCurveTrap caption = "Version (KCC_SwastikaCurveTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SwastikaCurveTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TangentTrap( KCC_PlaneCurveTrapBase ) { ; The Tangent trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TangentTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Tangent Curve. pz = @fn1(tan(@fn2((x*@shapeAdjust1)^@shapeAdjust2))- \ @fn3(y*@shapeAdjust3)^@shapeAdjust4)-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Tangent Trap" int param v_KCC_TangentTrap caption = "Version (KCC_TangentTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TangentTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TrefoilTrap( KCC_PlaneCurveTrapBase ) { ; The Trefoil trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TrefoilTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Trefoil Curve. pz = @fn1(@fn2(x^(5-@shapeAdjust1))+@fn3(x^(2*@shapeAdjust2))* \ @fn4(y^2*@shapeAdjust3)+@fn5(y^(4*@shapeAdjust4))- \ @fn6(x^@shapeAdjust5)*(@fn7(x^2*@shapeAdjust6)- \ @fn8(y^2+(1-@shapeAdjust7))))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Trefoil Trap" int param v_KCC_TrefoilTrap caption = "Version (KCC_TrefoilTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TrefoilTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TridentTrap( KCC_PlaneCurveTrapBase ) { ; The Trident trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TridentTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Trident Curve. pz = @fn1(@fn2(x^3*@shapeAdjust2)-@shapeAdjust1^3- \ @fn3(x^@shapeAdjust3)*@fn4(y*@shapeAdjust4))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Trident Trap" int param v_KCC_TridentTrap caption = "Version (KCC_TridentTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TridentTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TridentOfDescartesTrap( KCC_PlaneCurveTrapBase ) { ; The Trident of Descartes trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TridentOfDescartesTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Trident of Descartes Curve. pz = @fn1((@shapeAdjust1+@fn2(x^@shapeAdjust2))* \ (@shapeAdjust1-@fn3(x*@shapeAdjust3))* \ (2*@shapeAdjust1-@fn4(x^@shapeAdjust4))/ \ (@shapeAdjust1*@fn5(x+(1-@shapeAdjust5)))- \ @fn6(y^@shapeAdjust6))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Trident of Descartes Trap" int param v_KCC_TridentOfDescartesTrap caption = "Version (KCC_TridentOfDescartesTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TridentOfDescartesTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TrifoliumTrap( KCC_PlaneCurveTrapBase ) { ; The Trifolium trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TrifoliumTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Trifolium Curve. pz = @fn1((@fn2(x^2*@shapeAdjust3)+@fn3(y^(2*@shapeAdjust4)))* \ (@fn4(y^(2*@shapeAdjust5))+@fn5(x^@shapeAdjust6)* \ @fn6(x+@shapeAdjust1))-4*@shapeAdjust2* \ @fn7(x^@shapeAdjust7)*@fn8(y^2+(1-@shapeAdjust8)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Trifolium Trap" int param v_KCC_TrifoliumTrap caption = "Version (KCC_TrifoliumTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TrifoliumTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam float param shapeAdjust6 caption = "Shape Adj. VI" default = 1.0 hint = "Shape adjustment parameter VI." visible = @adv endparam float param shapeAdjust7 caption = "Shape Adj. VII" default = 1.0 hint = "Shape adjustment parameter VII." visible = @adv endparam float param shapeAdjust8 caption = "Shape Adj. VIII" default = 1.0 hint = "Shape adjustment parameter VIII." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn6 caption = "Function 6" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn7 caption = "Function 7" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn8 caption = "Function 8" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TrisectrixOfMaclaurinTrap( KCC_PlaneCurveTrapBase ) { ; The Trisectrix of Maclaurin trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TrisectrixOfMaclaurinTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Trisectrix of Maclaurin Curve. pz = @fn1(@fn2(y^2*@shapeAdjust2)*(@shapeAdjust1+ \ @fn3(x^@shapeAdjust3))-@fn4(x^(2*@shapeAdjust4))* \ (3*@shapeAdjust1-@fn5(x*@shapeAdjust5)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Trisectrix of Maclaurin Trap" int param v_KCC_TrisectrixOfMaclaurinTrap caption = "Version (KCC_TrisectrixOfMaclaurinTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TrisectrixOfMaclaurinTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam float param shapeAdjust5 caption = "Shape Adj. V" default = 1.0 hint = "Shape adjustment parameter V." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_TwistedCrossTrap( KCC_PlaneCurveTrapBase ) { ; The Twisted Cross trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_TwistedCrossTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Twisted Cross Curve. pz = @fn1(@fn2(y^(5-@shapeAdjust1))-@fn3(x^(5-@shapeAdjust2))- \ @fn4(x^@shapeAdjust3)*@fn5(y+(1-@shapeAdjust4)))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Twisted Cross Trap" int param v_KCC_TwistedCrossTrap caption = "Version (KCC_TwistedCrossTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_TwistedCrossTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn4 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn5 caption = "Function 5" default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_WitchOfAgnesiTrap( KCC_PlaneCurveTrapBase ) { ; The Witch of Agnesi trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_WitchOfAgnesiTrap( Generic pparent ) KCC_PlaneCurveTrapBase( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) KCC_PlaneCurveTrapBase.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) pz = ApplyRatioAndSize( pz ) x = real( pz ) y = imag( pz ) ; Compute the Witch of Agnesi Curve. pz = @fn1(8*@shapeAdjust2*@shapeAdjust1^3/ \ @fn2(x^(2*@shapeAdjust3)+4*@shapeAdjust1^2)- \ @fn3(y^@shapeAdjust4))-@distort ; Check to see if the point is trapped. return KCC_PlaneCurveTrapBase.Iterate( pz ) endfunc float func GetTextureValue() return m_Texture endfunc protected: float x float y default: title = "Witch of Agnesi Trap" int param v_KCC_WitchOfAgnesiTrap caption = "Version (KCC_WitchOfAgnesiTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_WitchOfAgnesiTrap < 100 endparam float param distort caption = "Fission" hint = "Generally stretches and splits the elements" default = 0 visible = @adv endparam float param shapeAdjust1 caption = "Shape Adj. I" default = 1.0 hint = "Shape adjustment parameter I." endparam float param shapeAdjust2 caption = "Shape Adj. II" default = 1.0 hint = "Shape adjustment parameter II." endparam float param shapeAdjust3 caption = "Shape Adj. III" default = 1.0 hint = "Shape adjustment parameter III." visible = @adv endparam float param shapeAdjust4 caption = "Shape Adj. IV" default = 1.0 hint = "Shape adjustment parameter IV." visible = @adv endparam ;-------------------------------------------------------------------- ; Adjustment Functions applied to the formulas. ;-------------------------------------------------------------------- func fn1 default = abs () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn2 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc func fn3 default = ident () hint = "Changes the shapes of the elements and their relations to each other" visible = @adv endfunc } class KCC_PolygonTrap( common.ulb:TrapShape ) { ; The Polygon trap. ;

; For an example of what this trap looks like, ; click here. ; public: import "common.ulb" ; constructor func KCC_PolygonTrap( Generic pparent ) TrapShape.TrapShape( pparent ) endfunc ; call this before each sequence of values to be trapped func Init( complex pz ) TrapShape.Init( pz ) endfunc ; call this for each iteration being trapped float func Iterate( complex pz ) TrapShape.Iterate( pz ) pz = pz * exp( 1i * pi / 180 * ( @polygonRotation - @polygonSkew ) ) pz = real( pz ) / sqrt( @polygonSqueeze ) + 1i * imag( pz ) * sqrt( @polygonSqueeze ) pz = pz * exp( 1i * pi / 180 * @polygonSkew ) if( @shape == "Polygon" ) ztest2 = pz arg = atan2( ztest2 ) widthPercent = abs(arg) / #pi arg = -round( arg / (2 * pi) * @polygonOrder) / @polygonOrder * (2 * pi) ztest2 = ztest2 * exp( 1i * arg ) elseif( @shape == "Rounded Polygon" ) arg = atan2(pz) widthPercent = abs( arg ) / #pi ztest2 = cabs( pz ) + @roundedAmount * sin( arg * @polygonOrder ) elseif( @shape == "Circle" ) widthPercent = abs( atan2( pz ) ) / #pi ztest2 = cabs( pz ) endif minDist = abs( real( ztest2 ) - @polygonSize ) trapWidth = @polygonWidth + (@polygonWidthDelta * widthPercent) if( minDist < trapWidth ) m_LastChannel = m_Iterations m_Texture = minDist / trapWidth return minDist endif return 1e20 endfunc float func GetTextureValue() return m_Texture endfunc protected: complex ztest2 float trapWidth float arg float widthPercent float minDist float m_Texture default: title = "Polygon Trap" int param v_KCC_PolygonTrap caption = "Version (KCC_PolygonTrap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PolygonTrap < 100 endparam param shape caption = "Polygon Shape" default = 0 enum = "Polygon" "Rounded Polygon" "Circle" hint = "The type of polygon to draw." endparam int param polygonOrder caption = "Order" default = 6 hint = "The number of sides to the polygons. While values of 1 and 2 \ are technically not valid polygons, these values may produce \ intersting results." visible = (@shape != "Circle") endparam float param polygonSize caption = "Size" default = 0.5 hint = "Size of the polygons." endparam float param polygonWidth caption = "Width" default = 0.02 hint = "Width of the polygons." endparam float param polygonWidthDelta caption = "Width Delta" default = 0.0 hint = "Amount to vary the width around the polygons." endparam float param polygonRotation caption = "Rotation" default = 0.0 visible = (@shape != "Circle") hint = "Amount to rotate the orientation of the polygons." endparam float param polygonSqueeze caption = "Sqeezing" default = 1.0 hint = "Polygon Squeezing Ratio" endparam float param polygonSkew caption = "Skewing" default = 0.0 hint = "Polygon Squeezing Angle" endparam float param roundedAmount caption = "Corner Rounding Amount" default = 0.1 hint = "Amount of rounding of the polygons." visible = (@shape == "Rounded Polygon") endparam } class KCC_ColorMapBase( common.ulb:GradientWrapper ) { ; Default base class for color map classes. ;

; This class provides the base class for coloring options. It provides as a ; default an 8 range color map. It also provides functions for perturbing ; the map (changing the ordering of the ranges). This class does not have ; any user parameters for customizing the colors. For customizing, the ; user should use one of the classes extended from this class. ; public: import "common.ulb" ; Constructor ; @param pparent = a reference to the object creating the new object; typically, 'this' func KCC_ColorMapBase( Generic pparent ) GradientWrapper.GradientWrapper( pparent ) colorOffset = @colorOffset ; Rearange the color map for the 8 Range Custom settings. if( @perturbRanges == "8 Range Custom" ) perturb8RangeMap() endif endfunc color func getColorChannel( float pindex, int pchannel ) pchannel = abs( (pchannel + colorOffset) % colorRanges ) ; Adjust the range number (pchannel) if one of the perturb range settings ; is selected. if( @perturbRanges != "None" && @perturbRanges != "8 Range Custom" ) pchannel = perturbRanges( pchannel ) endif return blend( colorMap[pchannel,0], colorMap[pchannel,1], pindex ) endfunc ; Perturb the color ranges. ;

; Given a range number, return the value after perturbation. This function ; is usually called from the getColorChannel() function to return the color ; range before assigning the color to the point. ; ; @param rangeNum The range number to perturb ; @return The perturbed range number int func perturbRanges( int rangeNum ) if( colorRanges < 3 ) return rangeNum endif if( @perturbRanges == "Even/Odd" ) ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 2 4 6 1 3 5 7 if( ( trunc( colorRanges / 2 ) * 2 ) == colorRanges ) ; Number of ranges is even. if ( rangeNum < colorRanges / 2 ) rangeNum = ( rangeNum + rangeNum ) % colorRanges else rangeNum = ( rangeNum + rangeNum + 1 ) % colorRanges endif else ; Number of ranges is odd. rangeNum = ( rangeNum + rangeNum ) % colorRanges endif elseif( @perturbRanges == "1st Half / 2nd Half" ) ; If range ordering is 0 1 2 3 4 5 6 7, ; then range selected becomes 0 4 1 5 2 6 3 7 if( ( trunc( rangeNum / 2 ) * 2 ) == rangeNum ) ; rangeNum is even. rangeNum = rangeNum - trunc( rangeNum / 2 ) else ; rangeNum is odd. rangeNum = rangeNum + trunc( ( colorRanges - rangeNum ) / 2 ) endif elseif( @perturbRanges == "Checkerboard" ) perturb8RangeMap() endif return rangeNum endfunc ; Perturb an 8 range color map. ; This function takes an 8 range color map and perburbs it according to ; the user specified perturbation. func perturb8RangeMap() if( colorRanges == 8 ) ; If we are using 8 ranges, then take into account ; the rangeOrdering parameter. int range[8] int ordering = @rangeorder int i = 8 while (i > 0) i = i - 1 range[i] = ordering % 10 ordering = trunc( ordering / 10.0 ) endwhile ; Save the original order of the maps. color tempMap[8,2] tempMap[0,0] = colorMap[0,0], tempMap[0,1] = colorMap[0,1] tempMap[1,0] = colorMap[1,0], tempMap[1,1] = colorMap[1,1] tempMap[2,0] = colorMap[2,0], tempMap[2,1] = colorMap[2,1] tempMap[3,0] = colorMap[3,0], tempMap[3,1] = colorMap[3,1] tempMap[4,0] = colorMap[4,0], tempMap[4,1] = colorMap[4,1] tempMap[5,0] = colorMap[5,0], tempMap[5,1] = colorMap[5,1] tempMap[6,0] = colorMap[6,0], tempMap[6,1] = colorMap[6,1] tempMap[7,0] = colorMap[7,0], tempMap[7,1] = colorMap[7,1] ; Reorder the maps according to the rangeOrder parameter. colorMap[0,0] = tempMap[range[0]-1,0], colorMap[0,1] = tempMap[range[0]-1,1] colorMap[1,0] = tempMap[range[1]-1,0], colorMap[1,1] = tempMap[range[1]-1,1] colorMap[2,0] = tempMap[range[2]-1,0], colorMap[2,1] = tempMap[range[2]-1,1] colorMap[3,0] = tempMap[range[3]-1,0], colorMap[3,1] = tempMap[range[3]-1,1] colorMap[4,0] = tempMap[range[4]-1,0], colorMap[4,1] = tempMap[range[4]-1,1] colorMap[5,0] = tempMap[range[5]-1,0], colorMap[5,1] = tempMap[range[5]-1,1] colorMap[6,0] = tempMap[range[6]-1,0], colorMap[6,1] = tempMap[range[6]-1,1] colorMap[7,0] = tempMap[range[7]-1,0], colorMap[7,1] = tempMap[range[7]-1,1] endif endfunc protected: color startColor[8] color endColor[8] color colorMap[500,2] int colorsPerRange int colorRanges int colorOffset default: int param v_KCC_ColorMapBase caption = "Version (KCC_ColorMapBase)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ColorMapBase < 100 endparam param perturbRanges caption = "Perturb Ranges" enum = "None" "Even/Odd" "1st Half / 2nd Half" "8 Range Custom" "Checkerboard" default = 0 hint = "Modify the way the ranges are assigned to the elements. \ 'None' = Assign in Order (0 1 2 3 4 5 6 7); 'Even Odd' = \ Assign Even Ranges, then Odd Ranges (0 2 4 6 1 3 5 7); \ '1st Half / 2nd Half' = Assign from first half of range, \ then 2nd half (0 4 1 5 2 6 3 7); '8 Range Custom' = Assign \ the ordering by entering digits 1-8. Only works for ranges \ with 8 colors. 'Checkerboard' modifies the range based on \ the '8 Range Custom' values each iteration. It can produce \ interesting results." endparam int param rangeOrder caption = "Range Order" default = 12345678 min = 11111111 max = 88888888 hint = "Specify the color range ordering. Use digits 1-8 to specify \ the order the ranges will be used. For example, to reverse \ the ordering, specify 87654321. To alternate, use 13572468. \ If color map or preset is defined that does not contain exactly \ 8 ranges, then this parameter will not have any effect." visible = ((@perturbRanges == "8 Range Custom" || @perturbRanges == "Checkerboard") \ && @colorRanges == 8) endparam int param colorOffset caption = "Range Offset" default = 0 min = 0 max = 500 hint = "This is used to rotate the color ranges. The offset can \ range from 0 to 500." endparam bool param customize caption = "Show/Customize" default = false hint = "Check to customize the selected color preset. NOTE: If you \ modify the default values for any of the range(s), you cannot \ get back to the default values for the range(s) you modify \ unless you reload the UCL." visible = true endparam int param colorRanges caption = "# of Ranges" min = 1 max = 8 default = 8 endparam } class KCC_Alhambra8Map( KCC_ColorMapBase ) { ; Class for defining the preset Alhambra 8 color map. ;

; This class defines the Alhambra 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Alhambra8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @alhambra8Max1, colorMap[0,1] = @alhambra8Min1 colorMap[1,0] = @alhambra8Max2, colorMap[1,1] = @alhambra8Min2 colorMap[2,0] = @alhambra8Max3, colorMap[2,1] = @alhambra8Min3 colorMap[3,0] = @alhambra8Max4, colorMap[3,1] = @alhambra8Min4 colorMap[4,0] = @alhambra8Max5, colorMap[4,1] = @alhambra8Min5 colorMap[5,0] = @alhambra8Max6, colorMap[5,1] = @alhambra8Min6 colorMap[6,0] = @alhambra8Max7, colorMap[6,1] = @alhambra8Min7 colorMap[7,0] = @alhambra8Max8, colorMap[7,1] = @alhambra8Min8 colorRanges = @colorRanges endfunc private: default: title = "Alhambra 8 Map" int param v_KCC_Alhambra8Map caption = "Version (KCC_Alhambra8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Alhambra8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Alhambra 8 ;-------------------------------------------------------------------- heading caption = " Alhambra 8 Map Settings" visible = (@customize) endheading color param alhambra8Max1 caption = "Start color 1" default = rgb(15/255,222/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param alhambra8Min1 caption = " End color 1" default = rgb(0/255,43/255,52/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param alhambra8Max2 caption = "Color Range 2 High" default = rgb(255/255,204/255,75/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param alhambra8Min2 caption = "Color Range 2 Low" default = rgb(92/255,58/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param alhambra8Max3 caption = "Color Range 3 High" default = rgb(188/255,152/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param alhambra8Min3 caption = "Color Range 3 Low" default = rgb(41/255,0/255,70/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param alhambra8Max4 caption = "Color Range 4 High" default = rgb(255/255,155/255,109/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param alhambra8Min4 caption = "Color Range 4 Low" default = rgb(95/255,36/255,14/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param alhambra8Max5 caption = "Color Range 5 High" default = rgb(121/255,180/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param alhambra8Min5 caption = "Color Range 5 Low" default = rgb(0/255,47/255,91/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param alhambra8Max6 caption = "Color Range 6 High" default = rgb(255/255,131/255,126/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param alhambra8Min6 caption = "Color Range 6 Low" default = rgb(104/255,20/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param alhambra8Max7 caption = "Color Range 7 High" default = rgb(33/255,255/255,220/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param alhambra8Min7 caption = "Color Range 7 Low" default = rgb(0/255,67/255,49/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param alhambra8Max8 caption = "Color Range 8 High" default = rgb(255/255,177/255,93/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param alhambra8Min8 caption = "Color Range 8 Low" default = rgb(100/255,44/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Belvedere8Map( KCC_ColorMapBase ) { ; Class for defining the preset Belvedere 8 color map. ;

; This class defines the Belvedere 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Belvedere8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @belvedere8Max1, colorMap[0,1] = @belvedere8Min1 colorMap[1,0] = @belvedere8Max2, colorMap[1,1] = @belvedere8Min2 colorMap[2,0] = @belvedere8Max3, colorMap[2,1] = @belvedere8Min3 colorMap[3,0] = @belvedere8Max4, colorMap[3,1] = @belvedere8Min4 colorMap[4,0] = @belvedere8Max5, colorMap[4,1] = @belvedere8Min5 colorMap[5,0] = @belvedere8Max6, colorMap[5,1] = @belvedere8Min6 colorMap[6,0] = @belvedere8Max7, colorMap[6,1] = @belvedere8Min7 colorMap[7,0] = @belvedere8Max8, colorMap[7,1] = @belvedere8Min8 colorRanges = @colorRanges endfunc private: default: title = "Belvedere 8 Map" int param v_KCC_Belvedere8Map caption = "Version (KCC_Belvedere8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Belvedere8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Belvedere 8 ;-------------------------------------------------------------------- heading caption = " Belvedere 8 Map Settings" visible = (@customize) endheading color param belvedere8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param belvedere8Min1 caption = "Color Range 1 Low" default = rgb(92/255,92/255,122/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param belvedere8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param belvedere8Min2 caption = "Color Range 2 Low" default = rgb(92/255,92/255,122/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param belvedere8Max3 caption = "Color Range 3 High" default = rgb(123/255,201/255,254/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param belvedere8Min3 caption = "Color Range 3 Low" default = rgb(0/255,45/255,68/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param belvedere8Max4 caption = "Color Range 4 High" default = rgb(255/255,230/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param belvedere8Min4 caption = "Color Range 4 Low" default = rgb(162/255,28/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param belvedere8Max5 caption = "Color Range 5 High" default = rgb(255/255,230/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param belvedere8Min5 caption = "Color Range 5 Low" default = rgb(162/255,28/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param belvedere8Max6 caption = "Color Range 6 High" default = rgb(0/255,255/255,217/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param belvedere8Min6 caption = "Color Range 6 Low" default = rgb(0/255,54/255,46/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param belvedere8Max7 caption = "Color Range 7 High" default = rgb(255/255,20/255,70/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param belvedere8Min7 caption = "Color Range 7 Low" default = rgb(100/255,0/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param belvedere8Max8 caption = "Color Range 8 High" default = rgb(95/255,84/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param belvedere8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,89/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_BlueSilver2Map( KCC_ColorMapBase ) { ; Class for defining the preset Blue/Silver 2 color map. ;

; This class defines the Blue/Silver 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_BlueSilver2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @blueSilver2Max1, colorMap[0,1] = @blueSilver2Min1 colorMap[1,0] = @blueSilver2Max2, colorMap[1,1] = @blueSilver2Min2 colorRanges = @colorRanges endfunc private: default: title = "Blue/Silver 2 Map" int param v_KCC_BlueSilver2Map caption = "Version (TraKCC_BlueSilver2Mapnsform)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BlueSilver2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Blue/Silver 2 ;-------------------------------------------------------------------- heading caption = " Blue/Silver 2 Map Settings" visible = (@customize) endheading color param blueSilver2Max1 caption = "Color Range 1 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param blueSilver2Min1 caption = "Color Range 1 Low" default = rgb(0/255,0/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param blueSilver2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param blueSilver2Min2 caption = "Color Range 2 Low" default = rgb(97/255,97/255,97/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_BlueWhite2Map( KCC_ColorMapBase ) { ; Class for defining the preset Blue/White 2 color map. ;

; This class defines the Blue/White 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_BlueWhite2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @blueWhite2Max1, colorMap[0,1] = @blueWhite2Min1 colorMap[1,0] = @blueWhite2Max2, colorMap[1,1] = @blueWhite2Min2 colorRanges = @colorRanges endfunc private: default: title = "Blue/White 2 Map" int param v_KCC_BlueWhite2Map caption = "Version (KCC_BlueWhite2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_BlueWhite2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Blue/White 2 ;-------------------------------------------------------------------- heading caption = " Blue/White 2 Map Settings" visible = (@customize) endheading color param blueWhite2Max1 caption = "Color Range 1 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param blueWhite2Min1 caption = "Color Range 1 Low" default = rgb(0/255,0/255,97/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param blueWhite2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param blueWhite2Min2 caption = "Color Range 2 Low" default = rgb(124/255,124/255,124/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_Bouquet8Map( KCC_ColorMapBase ) { ; Class for defining the preset Bouquet 8 color map. ;

; This class defines the Bouquet 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Bouquet8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @bouquet8Max1, colorMap[0,1] = @bouquet8Min1 colorMap[1,0] = @bouquet8Max2, colorMap[1,1] = @bouquet8Min2 colorMap[2,0] = @bouquet8Max3, colorMap[2,1] = @bouquet8Min3 colorMap[3,0] = @bouquet8Max4, colorMap[3,1] = @bouquet8Min4 colorMap[4,0] = @bouquet8Max5, colorMap[4,1] = @bouquet8Min5 colorMap[5,0] = @bouquet8Max6, colorMap[5,1] = @bouquet8Min6 colorMap[6,0] = @bouquet8Max7, colorMap[6,1] = @bouquet8Min7 colorMap[7,0] = @bouquet8Max8, colorMap[7,1] = @bouquet8Min8 colorRanges = @colorRanges endfunc private: default: title = "Bouquet 8 Map" int param v_KCC_Bouquet8Map caption = "Version (KCC_Bouquet8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Bouquet8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Bouquet 8 ;-------------------------------------------------------------------- heading caption = " Bouquet 8 Map Settings" visible = (@customize) endheading color param bouquet8Max1 caption = "Color Range 1 High" default = rgb(0/255,255/255,131/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param bouquet8Min1 caption = "Color Range 1 Low" default = rgb(0/255,84/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param bouquet8Max2 caption = "Color Range 2 High" default = rgb(52/255,255/255,198/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param bouquet8Min2 caption = "Color Range 2 Low" default = rgb(0/255,82/255,60/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param bouquet8Max3 caption = "Color Range 3 High" default = rgb(0/255,244/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param bouquet8Min3 caption = "Color Range 3 Low" default = rgb(0/255,64/255,74/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param bouquet8Max4 caption = "Color Range 4 High" default = rgb(180/255,169/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param bouquet8Min4 caption = "Color Range 4 Low" default = rgb(40/255,12/255,64/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param bouquet8Max5 caption = "Color Range 5 High" default = rgb(251/255,148/255,230/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param bouquet8Min5 caption = "Color Range 5 Low" default = rgb(100/255,20/255,67/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param bouquet8Max6 caption = "Color Range 6 High" default = rgb(255/255,101/255,140/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param bouquet8Min6 caption = "Color Range 6 Low" default = rgb(84/255,15/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param bouquet8Max7 caption = "Color Range 7 High" default = rgb(255/255,149/255,111/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param bouquet8Min7 caption = "Color Range 7 Low" default = rgb(77/255,36/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param bouquet8Max8 caption = "Color Range 8 High" default = rgb(255/255,252/255,125/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param bouquet8Min8 caption = "Color Range 8 Low" default = rgb(95/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Chill8Map( KCC_ColorMapBase ) { ; Class for defining the preset Chill 8 color map. ;

; This class defines the Chill 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Chill8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @chillMax1, colorMap[0,1] = @chillMin1 colorMap[1,0] = @chillMax2, colorMap[1,1] = @chillMin2 colorMap[2,0] = @chillMax3, colorMap[2,1] = @chillMin3 colorMap[3,0] = @chillMax4, colorMap[3,1] = @chillMin4 colorMap[4,0] = @chillMax5, colorMap[4,1] = @chillMin5 colorMap[5,0] = @chillMax6, colorMap[5,1] = @chillMin6 colorMap[6,0] = @chillMax7, colorMap[6,1] = @chillMin7 colorMap[7,0] = @chillMax8, colorMap[7,1] = @chillMin8 colorRanges = @colorRanges endfunc private: default: title = "Chill 8 Map" int param v_KCC_Chill8Map caption = "Version (KCC_Chill8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Chill8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Chill 8 ;-------------------------------------------------------------------- heading caption = " Chill 8 Settings" visible = (@customize) endheading color param chillMax1 caption = "Color Range 1 High" default = rgb(233/255,245/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param chillMin1 caption = "Color Range 1 Low" default = rgb(0/255,21/255,60/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param chillMax2 caption = "Color Range 2 High" default = rgb(182/255,201/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param chillMin2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,76/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param chillMax3 caption = "Color Range 3 High" default = rgb(0/255,34/255,136/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param chillMin3 caption = "Color Range 3 Low" default = rgb(9/255,9/255,59/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param chillMax4 caption = "Color Range 4 High" default = rgb(0/255,75/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param chillMin4 caption = "Color Range 4 Low" default = rgb(0/255,0/255,25/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param chillMax5 caption = "Color Range 5 High" default = rgb(233/255,245/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param chillMin5 caption = "Color Range 5 Low" default = rgb(0/255,21/255,60/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param chillMax6 caption = "Color Range 6 High" default = rgb(182/255,201/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param chillMin6 caption = "Color Range 6 Low" default = rgb(0/255,0/255,76/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param chillMax7 caption = "Color Range 7 High" default = rgb(0/255,34/255,136/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param chillMin7 caption = "Color Range 7 Low" default = rgb(9/255,9/255,59/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param chillMax8 caption = "Color Range 8 High" default = rgb(0/255,75/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param chillMin8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,25/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_CloudNine8Map( KCC_ColorMapBase ) { ; Class for defining the preset Cloud Nine 8 color map. ;

; This class defines the Cloud Nine 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_CloudNine8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @cloudNineMax1, colorMap[0,1] = @cloudNineMin1 colorMap[1,0] = @cloudNineMax2, colorMap[1,1] = @cloudNineMin2 colorMap[2,0] = @cloudNineMax3, colorMap[2,1] = @cloudNineMin3 colorMap[3,0] = @cloudNineMax4, colorMap[3,1] = @cloudNineMin4 colorMap[4,0] = @cloudNineMax5, colorMap[4,1] = @cloudNineMin5 colorMap[5,0] = @cloudNineMax6, colorMap[5,1] = @cloudNineMin6 colorMap[6,0] = @cloudNineMax7, colorMap[6,1] = @cloudNineMin7 colorMap[7,0] = @cloudNineMax8, colorMap[7,1] = @cloudNineMin8 colorRanges = @colorRanges endfunc private: default: title = "Cloud Nine 8 Map" int param v_KCC_CloudNine8Map caption = "Version (KCC_CloudNine8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CloudNine8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Cloud Nine 8 ;-------------------------------------------------------------------- heading caption = " Cloud Nine 8 Map Settings" visible = (@customize) endheading color param cloudNineMax1 caption = "Color Range 1 High" default = rgb(255/255,255/255,173/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param cloudNineMin1 caption = "Color Range 1 Low" default = rgb(143/255,60/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param cloudNineMax2 caption = "Color Range 2 High" default = rgb(247/255,214/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param cloudNineMin2 caption = "Color Range 2 Low" default = rgb(139/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param cloudNineMax3 caption = "Color Range 3 High" default = rgb(212/255,255/255,249/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param cloudNineMin3 caption = "Color Range 3 Low" default = rgb(0/255,53/255,20/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param cloudNineMax4 caption = "Color Range 4 High" default = rgb(255/255,221/255,217/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param cloudNineMin4 caption = "Color Range 4 Low" default = rgb(115/255,21/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param cloudNineMax5 caption = "Color Range 5 High" default = rgb(255/255,255/255,173/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param cloudNineMin5 caption = "Color Range 5 Low" default = rgb(140/255,63/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param cloudNineMax6 caption = "Color Range 6 High" default = rgb(247/255,214/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param cloudNineMin6 caption = "Color Range 6 Low" default = rgb(139/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param cloudNineMax7 caption = "Color Range 7 High" default = rgb(212/255,255/255,249/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param cloudNineMin7 caption = "Color Range 7 Low" default = rgb(0/255,53/255,20/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param cloudNineMax8 caption = "Color Range 8 High" default = rgb(255/255,221/255,217/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param cloudNineMin8 caption = "Color Range 8 Low" default = rgb(115/255,21/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_ColorSwitch8Map( KCC_ColorMapBase ) { ; Class for defining the preset Color Switch 8 color map. ;

; This class defines the Color Switch 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_ColorSwitch8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @colorSwitch8Max1, colorMap[0,1] = @colorSwitch8Min1 colorMap[1,0] = @colorSwitch8Max2, colorMap[1,1] = @colorSwitch8Min2 colorMap[2,0] = @colorSwitch8Max3, colorMap[2,1] = @colorSwitch8Min3 colorMap[3,0] = @colorSwitch8Max4, colorMap[3,1] = @colorSwitch8Min4 colorMap[4,0] = @colorSwitch8Max5, colorMap[4,1] = @colorSwitch8Min5 colorMap[5,0] = @colorSwitch8Max6, colorMap[5,1] = @colorSwitch8Min6 colorMap[6,0] = @colorSwitch8Max7, colorMap[6,1] = @colorSwitch8Min7 colorMap[7,0] = @colorSwitch8Max8, colorMap[7,1] = @colorSwitch8Min8 colorRanges = @colorRanges endfunc private: default: title = "Color Switch 8 Map" int param v_KCC_ColorSwitch8Map caption = "Version (KCC_ColorSwitch8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ColorSwitch8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Color Switch 8 ;-------------------------------------------------------------------- heading caption = " Color Switch 8 Map Settings" visible = (@customize) endheading color param colorSwitch8Max1 caption = "Color Range 1 High" default = rgb(255/255,33/255,52/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param colorSwitch8Min1 caption = "Color Range 1 Low" default = rgb(90/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param colorSwitch8Max2 caption = "Color Range 2 High" default = rgb(61/255,136/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param colorSwitch8Min2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,82/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param colorSwitch8Max3 caption = "Color Range 3 High" default = rgb(0/255,255/255,44/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param colorSwitch8Min3 caption = "Color Range 3 Low" default = rgb(0/255,70/255,7/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param colorSwitch8Max4 caption = "Color Range 4 High" default = rgb(255/255,131/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param colorSwitch8Min4 caption = "Color Range 4 Low" default = rgb(105/255,40/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param colorSwitch8Max5 caption = "Color Range 5 High" default = rgb(255/255,27/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param colorSwitch8Min5 caption = "Color Range 5 Low" default = rgb(104/255,0/255,78/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param colorSwitch8Max6 caption = "Color Range 6 High" default = rgb(168/255,87/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param colorSwitch8Min6 caption = "Color Range 6 Low" default = rgb(35/255,0/255,58/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param colorSwitch8Max7 caption = "Color Range 7 High" default = rgb(0/255,252/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param colorSwitch8Min7 caption = "Color Range 7 Low" default = rgb(0/255,60/255,60/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param colorSwitch8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,38/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param colorSwitch8Min8 caption = "Color Range 8 Low" default = rgb(90/255,90/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_ColorWheel12Map( KCC_ColorMapBase ) { ; Class for defining the preset Color Wheel 12 color map. ;

; This class defines the Color Wheel 12 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_ColorWheel12Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap [0,0] = @colorWheel12Max1, colorMap [0,1] = @colorWheel12Min1 colorMap [1,0] = @colorWheel12Max2, colorMap [1,1] = @colorWheel12Min2 colorMap [2,0] = @colorWheel12Max3, colorMap [2,1] = @colorWheel12Min3 colorMap [3,0] = @colorWheel12Max4, colorMap [3,1] = @colorWheel12Min4 colorMap [4,0] = @colorWheel12Max5, colorMap [4,1] = @colorWheel12Min5 colorMap [5,0] = @colorWheel12Max6, colorMap [5,1] = @colorWheel12Min6 colorMap [6,0] = @colorWheel12Max7, colorMap [6,1] = @colorWheel12Min7 colorMap [7,0] = @colorWheel12Max8, colorMap [7,1] = @colorWheel12Min8 colorMap [8,0] = @colorWheel12Max9, colorMap [8,1] = @colorWheel12Min9 colorMap [9,0] = @colorWheel12Max10, colorMap [9,1] = @colorWheel12Min10 colorMap[10,0] = @colorWheel12Max11, colorMap[10,1] = @colorWheel12Min11 colorMap[11,0] = @colorWheel12Max12, colorMap[11,1] = @colorWheel12Min12 colorRanges = @colorRanges endfunc private: default: title = "Color Wheel 12 Map" int param v_KCC_ColorWheel12Map caption = "Version (KCC_ColorWheel12Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_ColorWheel12Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 12 default = 12 endparam ;-------------------------------------------------------------------- ; Color Defaults for Color Wheel 12 ;-------------------------------------------------------------------- heading caption = " Color Wheel 12 Map Settings" visible = (@customize) endheading color param colorWheel12Max1 caption = "Color Range 1 High" default = rgb(142/255,117/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param colorWheel12Min1 caption = "Color Range 1 Low" default = rgb(52/255,0/255,100/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param colorWheel12Max2 caption = "Color Range 2 High" default = rgb(224/255,9/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param colorWheel12Min2 caption = "Color Range 2 Low" default = rgb(86/255,0/255,84/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param colorWheel12Max3 caption = "Color Range 3 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param colorWheel12Min3 caption = "Color Range 3 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param colorWheel12Max4 caption = "Color Range 4 High" default = rgb(252/255,167/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param colorWheel12Min4 caption = "Color Range 4 Low" default = rgb(95/255,54/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param colorWheel12Max5 caption = "Color Range 5 High" default = rgb(190/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param colorWheel12Min5 caption = "Color Range 5 Low" default = rgb(63/255,84/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param colorWheel12Max6 caption = "Color Range 6 High" default = rgb(0/255,231/255,213/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param colorWheel12Min6 caption = "Color Range 6 Low" default = rgb(4/255,62/255,62/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param colorWheel12Max7 caption = "Color Range 7 High" default = rgb(182/255,27/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param colorWheel12Min7 caption = "Color Range 7 Low" default = rgb(53/255,0/255,92/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param colorWheel12Max8 caption = "Color Range 8 High" default = rgb(255/255,33/255,146/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param colorWheel12Min8 caption = "Color Range 8 Low" default = rgb(80/255,0/255,53/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam color param colorWheel12Max9 caption = "Color Range 9 High" default = rgb(255/255,110/255,0/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize) endparam color param colorWheel12Min9 caption = "Color Range 9 Low" default = rgb(101/255,25/255,21/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize) endparam color param colorWheel12Max10 caption = "Color Range 10 High" default = rgb(255/255,241/255,0/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize) endparam color param colorWheel12Min10 caption = "Color Range 10 Low" default = rgb(88/255,69/255,0/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize) endparam color param colorWheel12Max11 caption = "Color Range 11 High" default = rgb(0/255,248/255,103/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize) endparam color param colorWheel12Min11 caption = "Color Range 11 Low" default = rgb(0/255,83/255,15/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize) endparam color param colorWheel12Max12 caption = "Color Range 12 High" default = rgb(27/255,119/255,255/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize) endparam color param colorWheel12Min12 caption = "Color Range 12 Low" default = rgb(0/255,31/255,92/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize) endparam } class KCC_CyanMagenta2Map( KCC_ColorMapBase ) { ; Class for defining the preset Cyan/Magenta 2 color map. ;

; This class defines the Cyan/Magenta 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_CyanMagenta2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @cyanMagenta2Max1, colorMap[0,1] = @cyanMagenta2Min1 colorMap[1,0] = @cyanMagenta2Max2, colorMap[1,1] = @cyanMagenta2Min2 colorRanges = @colorRanges endfunc private: default: title = "Cyan/Magenta 2 Map" int param v_KCC_CyanMagenta2Map caption = "Version (KCC_CyanMagenta2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CyanMagenta2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Cyan/Magenta 2 ;-------------------------------------------------------------------- heading caption = " Cyan/Magenta 2 Map Settings" visible = (@customize) endheading color param cyanMagenta2Max1 caption = "Color Range 1 High" default = rgb(128/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param cyanMagenta2Min1 caption = "Color Range 1 Low" default = rgb(0/255,64/255,64/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param cyanMagenta2Max2 caption = "Color Range 2 High" default = rgb(255/255,128/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param cyanMagenta2Min2 caption = "Color Range 2 Low" default = rgb(64/255,0/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_CyanYellow2Map( KCC_ColorMapBase ) { ; Class for defining the preset Cyan/Yellow 2 color map. ;

; This class defines the Cyan/Yellow 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_CyanYellow2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @cyanYellow2Max1, colorMap[0,1] = @cyanYellow2Min1 colorMap[1,0] = @cyanYellow2Max2, colorMap[1,1] = @cyanYellow2Min2 colorRanges = @colorRanges endfunc private: default: title = "Cyan/Yellow 2 Map" int param v_KCC_CyanYellow2Map caption = "Version (KCC_CyanYellow2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_CyanYellow2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Cyan/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Cyan/Yellow 2 Map Settings" visible = (@customize) endheading color param cyanYellow2Max1 caption = "Color Range 1 High" default = rgb(128/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param cyanYellow2Min1 caption = "Color Range 1 Low" default = rgb(0/255,64/255,64/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param cyanYellow2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param cyanYellow2Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_Default8Map( KCC_ColorMapBase ) { ; Default base class for coloring options. ;

; This class provides the base class for coloring options. It provides as a ; default an 8 range color map. It also provides functions for perturbing ; the map (changing the ordering of the ranges). This class does not have ; any user parameters for customizing the colors. For customizing, the ; user should use on of the classes extended from this class. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor ; @param pparent = a reference to the object creating the new object; typically, 'this' func KCC_Default8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @defaultMax1, colorMap[0,1] = @defaultMin1 colorMap[1,0] = @defaultMax2, colorMap[1,1] = @defaultMin2 colorMap[2,0] = @defaultMax3, colorMap[2,1] = @defaultMin3 colorMap[3,0] = @defaultMax4, colorMap[3,1] = @defaultMin4 colorMap[4,0] = @defaultMax5, colorMap[4,1] = @defaultMin5 colorMap[5,0] = @defaultMax6, colorMap[5,1] = @defaultMin6 colorMap[6,0] = @defaultMax7, colorMap[6,1] = @defaultMin7 colorMap[7,0] = @defaultMax8, colorMap[7,1] = @defaultMin8 colorRanges = 8 colorRanges = @colorRanges endfunc protected: default: title = "Default 8 Map" int param v_KCC_Default8Map caption = "Version (KCC_Default8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Default8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Default ;-------------------------------------------------------------------- heading caption = " Default 8 Map Settings" visible = (@customize) endheading color param defaultMax1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param defaultMin1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param defaultMax2 caption = "Color Range 2 High" default = rgb(252/255,0/255,172/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param defaultMin2 caption = "Color Range 2 Low" default = rgb(96/255,0/255,32/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param defaultMax3 caption = "Color Range 3 High" default = rgb(252/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param defaultMin3 caption = "Color Range 3 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param defaultMax4 caption = "Color Range 4 High" default = rgb(252/255,128/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param defaultMin4 caption = "Color Range 4 Low" default = rgb(160/255,16/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param defaultMax5 caption = "Color Range 5 High" default = rgb(252/255,252/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param defaultMin5 caption = "Color Range 5 Low" default = rgb(152/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param defaultMax6 caption = "Color Range 6 High" default = rgb(0/255,252/255,128/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param defaultMin6 caption = "Color Range 6 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param defaultMax7 caption = "Color Range 7 High" default = rgb(0/255,252/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param defaultMin7 caption = "Color Range 7 Low" default = rgb(0/255,48/255,48/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param defaultMax8 caption = "Color Range 8 High" default = rgb(64/255,64/255,252/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param defaultMin8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Default12Map( KCC_ColorMapBase ) { ; Class for defining the preset Default 12 color map. ;

; This class defines the Default 12 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Default12Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap [0,0] = @default12Max1, colorMap [0,1] = @default12Min1 colorMap [1,0] = @default12Max2, colorMap [1,1] = @default12Min2 colorMap [2,0] = @default12Max3, colorMap [2,1] = @default12Min3 colorMap [3,0] = @default12Max4, colorMap [3,1] = @default12Min4 colorMap [4,0] = @default12Max5, colorMap [4,1] = @default12Min5 colorMap [5,0] = @default12Max6, colorMap [5,1] = @default12Min6 colorMap [6,0] = @default12Max7, colorMap [6,1] = @default12Min7 colorMap [7,0] = @default12Max8, colorMap [7,1] = @default12Min8 colorMap [8,0] = @default12Max9, colorMap [8,1] = @default12Min9 colorMap [9,0] = @default12Max10, colorMap [9,1] = @default12Min10 colorMap[10,0] = @default12Max11, colorMap[10,1] = @default12Min11 colorMap[11,0] = @default12Max12, colorMap[11,1] = @default12Min12 colorRanges = @colorRanges endfunc private: default: title = "Default 12 Map" int param v_KCC_Default12Map caption = "Version (KCC_Default12Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Default12Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 12 default = 12 endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 12 ;-------------------------------------------------------------------- heading caption = " Default 12 Map Settings" visible = (@customize) endheading color param default12Max1 caption = "Start color 1" default = rgb(255/255,85/255,253/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param default12Min1 caption = " End color 1" default = rgb(98/255,0/255,76/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param default12Max2 caption = "Color Range 2 High" default = rgb(252/255,0/255,143/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param default12Min2 caption = "Color Range 2 Low" default = rgb(98/255,0/255,54/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param default12Max3 caption = "Color Range 3 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param default12Min3 caption = "Color Range 3 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param default12Max4 caption = "Color Range 4 High" default = rgb(255/255,97/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param default12Min4 caption = "Color Range 4 Low" default = rgb(104/255,27/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param default12Max5 caption = "Color Range 5 High" default = rgb(255/255,187/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param default12Min5 caption = "Color Range 5 Low" default = rgb(110/255,54/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param default12Max6 caption = "Color Range 6 High" default = rgb(255/255,248/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param default12Min6 caption = "Color Range 6 Low" default = rgb(102/255,60/255,6/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param default12Max7 caption = "Color Range 7 High" default = rgb(0/255,255/255,58/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param default12Min7 caption = "Color Range 7 Low" default = rgb(0/255,76/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param default12Max8 caption = "Color Range 8 High" default = rgb(0/255,255/255,205/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param default12Min8 caption = "Color Range 8 Low" default = rgb(0/255,89/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam color param default12Max9 caption = "Color Range 9 High" default = rgb(0/255,194/255,255/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize) endparam color param default12Min9 caption = "Color Range 9 Low" default = rgb(0/255,80/255,92/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize) endparam color param default12Max10 caption = "Color Range 10 High" default = rgb(35/255,109/255,255/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize) endparam color param default12Min10 caption = "Color Range 10 Low" default = rgb(0/255,4/255,102/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize) endparam color param default12Max11 caption = "Color Range 11 High" default = rgb(149/255,53/255,255/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize) endparam color param default12Min11 caption = "Color Range 11 Low" default = rgb(53/255,0/255,96/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize) endparam color param default12Max12 caption = "Color Range 12 High" default = rgb(195/255,0/255,252/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize) endparam color param default12Min12 caption = "Color Range 12 Low" default = rgb(58/255,0/255,84/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize) endparam } class KCC_Default16Map( KCC_ColorMapBase ) { ; Class for defining the preset Default 12 color map. ;

; This class defines the Default 12 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Default16Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap [0,0] = @default16Max1, colorMap [0,1] = @default16Min1 colorMap [1,0] = @default16Max2, colorMap [1,1] = @default16Min2 colorMap [2,0] = @default16Max3, colorMap [2,1] = @default16Min3 colorMap [3,0] = @default16Max4, colorMap [3,1] = @default16Min4 colorMap [4,0] = @default16Max5, colorMap [4,1] = @default16Min5 colorMap [5,0] = @default16Max6, colorMap [5,1] = @default16Min6 colorMap [6,0] = @default16Max7, colorMap [6,1] = @default16Min7 colorMap [7,0] = @default16Max8, colorMap [7,1] = @default16Min8 colorMap [8,0] = @default16Max9, colorMap [8,1] = @default16Min9 colorMap [9,0] = @default16Max10, colorMap [9,1] = @default16Min10 colorMap[10,0] = @default16Max11, colorMap[10,1] = @default16Min11 colorMap[11,0] = @default16Max12, colorMap[11,1] = @default16Min12 colorMap[12,0] = @default16Max13, colorMap[12,1] = @default16Min13 colorMap[13,0] = @default16Max14, colorMap[13,1] = @default16Min14 colorMap[14,0] = @default16Max15, colorMap[14,1] = @default16Min15 colorMap[15,0] = @default16Max16, colorMap[15,1] = @default16Min16 colorRanges = @colorRanges endfunc private: default: title = "Default 16 Map" int param v_KCC_Default16Map caption = "Version (KCC_Default16Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Default16Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 16 default = 16 endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 16 ;-------------------------------------------------------------------- heading caption = " Default 16 Map Settings" visible = (@customize) endheading color param default16Max1 caption = "Color Range 1 High" default = rgb(255/255,31/255,114/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param default16Min1 caption = "Color Range 1 Low" default = rgb(94/255,0/255,40/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param default16Max2 caption = "Color Range 2 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param default16Min2 caption = "Color Range 2 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param default16Max3 caption = "Color Range 3 High" default = rgb(255/255,78/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param default16Min3 caption = "Color Range 3 Low" default = rgb(88/255,27/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param default16Max4 caption = "Color Range 4 High" default = rgb(255/255,110/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param default16Min4 caption = "Color Range 4 Low" default = rgb(90/255,30/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param default16Max5 caption = "Color Range 5 High" default = rgb(255/255,187/255,31/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param default16Min5 caption = "Color Range 5 Low" default = rgb(88/255,38/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param default16Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param default16Min6 caption = "Color Range 6 Low" default = rgb(96/255,57/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param default16Max7 caption = "Color Range 7 High" default = rgb(170/255,255/255,37/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param default16Min7 caption = "Color Range 7 Low" default = rgb(41/255,68/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param default16Max8 caption = "Color Range 8 High" default = rgb(0/255,255/255,94/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param default16Min8 caption = "Color Range 8 Low" default = rgb(0/255,62/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam color param default16Max9 caption = "Color Range 9 High" default = rgb(0/255,238/255,203/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize) endparam color param default16Min9 caption = "Color Range 9 Low" default = rgb(0/255,64/255,54/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize) endparam color param default16Max10 caption = "Color Range 10 High" default = rgb(11/255,166/255,255/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize) endparam color param default16Min10 caption = "Color Range 10 Low" default = rgb(0/255,38/255,78/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize) endparam color param default16Max11 caption = "Color Range 11 High" default = rgb(0/255,68/255,255/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize) endparam color param default16Min11 caption = "Color Range 11 Low" default = rgb(0/255,20/255,88/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize) endparam color param default16Max12 caption = "Color Range 12 High" default = rgb(99/255,0/255,255/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize) endparam color param default16Min12 caption = "Color Range 12 Low" default = rgb(47/255,0/255,94/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize) endparam color param default16Max13 caption = "Color Range 13 High" default = rgb(145/255,0/255,255/255) hint = "Specifies the color at the high end of Range #13." visible = (@customize) endparam color param default16Min13 caption = "Color Range 13 Low" default = rgb(69/255,0/255,102/255) hint = "Specifies the color at the low end of Range #13." visible = (@customize) endparam color param default16Max14 caption = "Color Range 14 High" default = rgb(221/255,0/255,255/255) hint = "Specifies the color at the high end of Range #14." visible = (@customize) endparam color param default16Min14 caption = "Color Range 14 Low" default = rgb(86/255,0/255,100/255) hint = "Specifies the color at the low end of Range #14." visible = (@customize) endparam color param default16Max15 caption = "Color Range 15 High" default = rgb(255/255,0/255,255/255) hint = "Specifies the color at the high end of Range #15." visible = (@customize) endparam color param default16Min15 caption = "Color Range 15 Low" default = rgb(90/255,0/255,75/255) hint = "Specifies the color at the low end of Range #15." visible = (@customize) endparam color param default16Max16 caption = "Color Range 16 High" default = rgb(255/255,0/255,140/255) hint = "Specifies the color at the high end of Range #16." visible = (@customize) endparam color param default16Min16 caption = "Color Range 16 Low" default = rgb(96/255,0/255,60/255) hint = "Specifies the color at the low end of Range #16." visible = (@customize) endparam } class KCC_Default24Map( KCC_ColorMapBase ) { ; Class for defining the preset Default 12 color map. ;

; This class defines the Default 12 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Default24Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap [0,0] = @default24Max1, colorMap[0,1] = @default24Min1 colorMap [1,0] = @default24Max2, colorMap[1,1] = @default24Min2 colorMap [2,0] = @default24Max3, colorMap[2,1] = @default24Min3 colorMap [3,0] = @default24Max4, colorMap[3,1] = @default24Min4 colorMap [4,0] = @default24Max5, colorMap[4,1] = @default24Min5 colorMap [5,0] = @default24Max6, colorMap[5,1] = @default24Min6 colorMap [6,0] = @default24Max7, colorMap[6,1] = @default24Min7 colorMap [7,0] = @default24Max8, colorMap[7,1] = @default24Min8 colorMap [8,0] = @default24Max9, colorMap[8,1] = @default24Min9 colorMap [9,0] = @default24Max10, colorMap[9,1] = @default24Min10 colorMap[10,0] = @default24Max11, colorMap[10,1] = @default24Min11 colorMap[11,0] = @default24Max12, colorMap[11,1] = @default24Min12 colorMap[12,0] = @default24Max13, colorMap[12,1] = @default24Min13 colorMap[13,0] = @default24Max14, colorMap[13,1] = @default24Min14 colorMap[14,0] = @default24Max15, colorMap[14,1] = @default24Min15 colorMap[15,0] = @default24Max16, colorMap[15,1] = @default24Min16 colorMap[16,0] = @default24Max17, colorMap[16,1] = @default24Min17 colorMap[17,0] = @default24Max18, colorMap[17,1] = @default24Min18 colorMap[18,0] = @default24Max19, colorMap[18,1] = @default24Min19 colorMap[19,0] = @default24Max20, colorMap[19,1] = @default24Min20 colorMap[20,0] = @default24Max21, colorMap[20,1] = @default24Min21 colorMap[21,0] = @default24Max22, colorMap[21,1] = @default24Min22 colorMap[22,0] = @default24Max23, colorMap[22,1] = @default24Min23 colorMap[23,0] = @default24Max24, colorMap[23,1] = @default24Min24 colorRanges = @colorRanges endfunc private: default: title = "Default 24 Map" int param v_KCC_Default24Map caption = "Version (KCC_Default24Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Default24Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 24 default = 24 endparam ;-------------------------------------------------------------------- ; Color Defaults for Default 24 ;-------------------------------------------------------------------- heading caption = " Default 24 Map Settings" visible = (@customize) endheading color param default24Max1 caption = "Color Range 1 High" default = rgb(255/255,0/255,211/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param default24Min1 caption = "Color Range 1 Low" default = rgb(104/255,0/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param default24Max2 caption = "Color Range 2 High" default = rgb(255/255,0/255,134/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param default24Min2 caption = "Color Range 2 Low" default = rgb(106/255,0/255,55/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param default24Max3 caption = "Color Range 3 High" default = rgb(255/255,35/255,88/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param default24Min3 caption = "Color Range 3 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param default24Max4 caption = "Color Range 4 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param default24Min4 caption = "Color Range 4 Low" default = rgb(92/255,0/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param default24Max5 caption = "Color Range 5 High" default = rgb(255/255,54/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param default24Min5 caption = "Color Range 5 Low" default = rgb(92/255,26/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param default24Max6 caption = "Color Range 6 High" default = rgb(255/255,85/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param default24Min6 caption = "Color Range 6 Low" default = rgb(96/255,27/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param default24Max7 caption = "Color Range 7 High" default = rgb(255/255,118/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param default24Min7 caption = "Color Range 7 Low" default = rgb(100/255,38/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param default24Max8 caption = "Color Range 8 High" default = rgb(255/255,157/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param default24Min8 caption = "Color Range 8 Low" default = rgb(90/255,40/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam color param default24Max9 caption = "Color Range 9 High" default = rgb(255/255,203/255,0/255) hint = "Specifies the color at the high end of Range #9." visible = (@customize) endparam color param default24Min9 caption = "Color Range 9 Low" default = rgb(82/255,54/255,0/255) hint = "Specifies the color at the low end of Range #9." visible = (@customize) endparam color param default24Max10 caption = "Color Range 10 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #10." visible = (@customize) endparam color param default24Min10 caption = "Color Range 10 Low" default = rgb(92/255,61/255,0/255) hint = "Specifies the color at the low end of Range #10." visible = (@customize) endparam color param default24Max11 caption = "Color Range 11 High" default = rgb(229/255,255/255,0/255) hint = "Specifies the color at the high end of Range #11." visible = (@customize) endparam color param default24Min11 caption = "Color Range 11 Low" default = rgb(68/255,68/255,0/255) hint = "Specifies the color at the low end of Range #11." visible = (@customize) endparam color param default24Max12 caption = "Color Range 12 High" default = rgb(191/255,255/255,0/255) hint = "Specifies the color at the high end of Range #12." visible = (@customize) endparam color param default24Min12 caption = "Color Range 12 Low" default = rgb(32/255,64/255,0/255) hint = "Specifies the color at the low end of Range #12." visible = (@customize) endparam color param default24Max13 caption = "Color Range 13 High" default = rgb(0/255,255/255,55/255) hint = "Specifies the color at the high end of Range #13." visible = (@customize) endparam color param default24Min13 caption = "Color Range 13 Low" default = rgb(0/255,78/255,0/255) hint = "Specifies the color at the low end of Range #13." visible = (@customize) endparam color param default24Max14 caption = "Color Range 14 High" default = rgb(0/255,255/255,136/255) hint = "Specifies the color at the high end of Range #14." visible = (@customize) endparam color param default24Min14 caption = "Color Range 14 Low" default = rgb(0/255,66/255,30/255) hint = "Specifies the color at the low end of Range #14." visible = (@customize) endparam color param default24Max15 caption = "Color Range 15 High" default = rgb(0/255,255/255,203/255) hint = "Specifies the color at the high end of Range #15." visible = (@customize) endparam color param default24Min15 caption = "Color Range 15 Low" default = rgb(0/255,62/255,48/255) hint = "Specifies the color at the low end of Range #15." visible = (@customize) endparam color param default24Max16 caption = "Color Range 16 High" default = rgb(0/255,255/255,255/255) hint = "Specifies the color at the high end of Range #16." visible = (@customize) endparam color param default24Min16 caption = "Color Range 16 Low" default = rgb(0/255,71/255,74/255) hint = "Specifies the color at the low end of Range #16." visible = (@customize) endparam color param default24Max17 caption = "Color Range 17 High" default = rgb(0/255,212/255,255/255) hint = "Specifies the color at the high end of Range #17." visible = (@customize) endparam color param default24Min17 caption = "Color Range 17 Low" default = rgb(0/255,57/255,82/255) hint = "Specifies the color at the low end of Range #17." visible = (@customize) endparam color param default24Max18 caption = "Color Range 18 High" default = rgb(0/255,153/255,255/255) hint = "Specifies the color at the high end of Range #18." visible = (@customize) endparam color param default24Min18 caption = "Color Range 18 Low" default = rgb(0/255,37/255,104/255) hint = "Specifies the color at the low end of Range #18." visible = (@customize) endparam color param default24Max19 caption = "Color Range 19 High" default = rgb(0/255,90/255,255/255) hint = "Specifies the color at the high end of Range #19." visible = (@customize) endparam color param default24Min19 caption = "Color Range 19 Low" default = rgb(0/255,0/255,102/255) hint = "Specifies the color at the low end of Range #19." visible = (@customize) endparam color param default24Max20 caption = "Color Range 20 High" default = rgb(92/255,77/255,255/255) hint = "Specifies the color at the high end of Range #20." visible = (@customize) endparam color param default24Min20 caption = "Color Range 20 Low" default = rgb(28/255,0/255,94/255) hint = "Specifies the color at the low end of Range #20." visible = (@customize) endparam color param default24Max21 caption = "Color Range 21 High" default = rgb(131/255,67/255,255/255) hint = "Specifies the color at the high end of Range #21." visible = (@customize) endparam color param default24Min21 caption = "Color Range 21 Low" default = rgb(57/255,0/255,112/255) hint = "Specifies the color at the low end of Range #21." visible = (@customize) endparam color param default24Max22 caption = "Color Range 22 High" default = rgb(175/255,0/255,255/255) hint = "Specifies the color at the high end of Range #22." visible = (@customize) endparam color param default24Min22 caption = "Color Range 22 Low" default = rgb(57/255,0/255,86/255) hint = "Specifies the color at the low end of Range #22." visible = (@customize) endparam color param default24Max23 caption = "Color Range 23 High" default = rgb(209/255,0/255,255/255) hint = "Specifies the color at the high end of Range #23." visible = (@customize) endparam color param default24Min23 caption = "Color Range 23 Low" default = rgb(64/255,0/255,76/255) hint = "Specifies the color at the low end of Range #23." visible = (@customize) endparam color param default24Max24 caption = "Color Range 24 High" default = rgb(255/255,0/255,255/255) hint = "Specifies the color at the high end of Range #24." visible = (@customize) endparam color param default24Min24 caption = "Color Range 24 Low" default = rgb(84/255,0/255,84/255) hint = "Specifies the color at the low end of Range #24." visible = (@customize) endparam } class KCC_EveningSky8Map( KCC_ColorMapBase ) { ; Class for defining the preset Evening Sky 8 color map. ;

; This class defines the Evening Sky 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_EveningSky8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @eveningSky8Max1, colorMap[0,1] = @eveningSky8Min1 colorMap[1,0] = @eveningSky8Max2, colorMap[1,1] = @eveningSky8Min2 colorMap[2,0] = @eveningSky8Max3, colorMap[2,1] = @eveningSky8Min3 colorMap[3,0] = @eveningSky8Max4, colorMap[3,1] = @eveningSky8Min4 colorMap[4,0] = @eveningSky8Max5, colorMap[4,1] = @eveningSky8Min5 colorMap[5,0] = @eveningSky8Max6, colorMap[5,1] = @eveningSky8Min6 colorMap[6,0] = @eveningSky8Max7, colorMap[6,1] = @eveningSky8Min7 colorMap[7,0] = @eveningSky8Max8, colorMap[7,1] = @eveningSky8Min8 colorRanges = @colorRanges endfunc private: default: title = "Evening Sky 8 Map" int param v_KCC_EveningSky8Map caption = "Version (KCC_EveningSky8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_EveningSky8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Evening Sky 8 ;-------------------------------------------------------------------- heading caption = " Evening Sky 8 Map Settings" visible = (@customize) endheading color param eveningSky8Max1 caption = "Color Range 1 High" default = rgb(255/255,238/255,222/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param eveningSky8Min1 caption = "Color Range 1 Low" default = rgb(50/255,35/255,35/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param eveningSky8Max2 caption = "Color Range 2 High" default = rgb(255/255,226/255,85/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param eveningSky8Min2 caption = "Color Range 2 Low" default = rgb(85/255,54/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param eveningSky8Max3 caption = "Color Range 3 High" default = rgb(249/255,148/255,216/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param eveningSky8Min3 caption = "Color Range 3 Low" default = rgb(79/255,20/255,57/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param eveningSky8Max4 caption = "Color Range 4 High" default = rgb(159/255,159/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param eveningSky8Min4 caption = "Color Range 4 Low" default = rgb(22/255,16/255,54/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param eveningSky8Max5 caption = "Color Range 5 High" default = rgb(255/255,175/255,79/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param eveningSky8Min5 caption = "Color Range 5 Low" default = rgb(62/255,42/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param eveningSky8Max6 caption = "Color Range 6 High" default = rgb(124/255,190/255,251/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param eveningSky8Min6 caption = "Color Range 6 Low" default = rgb(13/255,40/255,62/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param eveningSky8Max7 caption = "Color Range 7 High" default = rgb(255/255,111/255,123/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param eveningSky8Min7 caption = "Color Range 7 Low" default = rgb(57/255,24/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param eveningSky8Max8 caption = "Color Range 8 High" default = rgb(111/255,255/255,245/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param eveningSky8Min8 caption = "Color Range 8 Low" default = rgb(0/255,60/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Fall8Map( KCC_ColorMapBase ) { ; Class for defining the preset Fall 8 color map. ;

; This class defines the Fall 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Fall8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @fall8Max1, colorMap[0,1] = @fall8Min1 colorMap[1,0] = @fall8Max2, colorMap[1,1] = @fall8Min2 colorMap[2,0] = @fall8Max3, colorMap[2,1] = @fall8Min3 colorMap[3,0] = @fall8Max4, colorMap[3,1] = @fall8Min4 colorMap[4,0] = @fall8Max5, colorMap[4,1] = @fall8Min5 colorMap[5,0] = @fall8Max6, colorMap[5,1] = @fall8Min6 colorMap[6,0] = @fall8Max7, colorMap[6,1] = @fall8Min7 colorMap[7,0] = @fall8Max8, colorMap[7,1] = @fall8Min8 colorRanges = @colorRanges endfunc private: default: title = "Fall 8 Map" int param v_KCC_Fall8Map caption = "Version (KCC_Fall8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Fall8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Fall 8 ;-------------------------------------------------------------------- heading caption = " Fall 8 Map Settings" visible = (@customize) endheading color param fall8Max1 caption = "Color Range 1 High" default = rgb(255/255,235/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param fall8Min1 caption = "Color Range 1 Low" default = rgb(136/255,46/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param fall8Max2 caption = "Color Range 2 High" default = rgb(255/255,61/255,32/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param fall8Min2 caption = "Color Range 2 Low" default = rgb(96/255,26/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param fall8Max3 caption = "Color Range 3 High" default = rgb(255/255,184/255,26/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param fall8Min3 caption = "Color Range 3 Low" default = rgb(86/255,24/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param fall8Max4 caption = "Color Range 4 High" default = rgb(255/255,107/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param fall8Min4 caption = "Color Range 4 Low" default = rgb(112/255,29/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param fall8Max5 caption = "Color Range 5 High" default = rgb(255/255,235/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param fall8Min5 caption = "Color Range 5 Low" default = rgb(136/255,46/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param fall8Max6 caption = "Color Range 6 High" default = rgb(255/255,61/255,32/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param fall8Min6 caption = "Color Range 6 Low" default = rgb(96/255,26/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param fall8Max7 caption = "Color Range 7 High" default = rgb(255/255,184/255,26/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param fall8Min7 caption = "Color Range 7 Low" default = rgb(86/255,24/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param fall8Max8 caption = "Color Range 8 High" default = rgb(255/255,107/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param fall8Min8 caption = "Color Range 8 Low" default = rgb(112/255,29/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Fantasia8Map( KCC_ColorMapBase ) { ; Class for defining the preset Fantasia 8 color map. ;

; This class defines the Fantasia 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Fantasia8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @fantasia8Max1, colorMap[0,1] = @fantasia8Min1 colorMap[1,0] = @fantasia8Max2, colorMap[1,1] = @fantasia8Min2 colorMap[2,0] = @fantasia8Max3, colorMap[2,1] = @fantasia8Min3 colorMap[3,0] = @fantasia8Max4, colorMap[3,1] = @fantasia8Min4 colorMap[4,0] = @fantasia8Max5, colorMap[4,1] = @fantasia8Min5 colorMap[5,0] = @fantasia8Max6, colorMap[5,1] = @fantasia8Min6 colorMap[6,0] = @fantasia8Max7, colorMap[6,1] = @fantasia8Min7 colorMap[7,0] = @fantasia8Max8, colorMap[7,1] = @fantasia8Min8 colorRanges = @colorRanges endfunc private: default: title = "Fantasia 8 Map" int param v_KCC_Fantasia8Map caption = "Version (KCC_Fantasia8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Fantasia8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Fantasia 8 ;-------------------------------------------------------------------- heading caption = " Fantasia 8 Map Settings" visible = (@customize) endheading color param fantasia8Max1 caption = "Color Range 1 High" default = rgb(255/255,230/255,103/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param fantasia8Min1 caption = "Color Range 1 Low" default = rgb(102/255,81/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param fantasia8Max2 caption = "Color Range 2 High" default = rgb(230/255,78/255,208/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param fantasia8Min2 caption = "Color Range 2 Low" default = rgb(104/255,0/255,52/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param fantasia8Max3 caption = "Color Range 3 High" default = rgb(180/255,119/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param fantasia8Min3 caption = "Color Range 3 Low" default = rgb(56/255,0/255,82/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param fantasia8Max4 caption = "Color Range 4 High" default = rgb(0/255,228/255,150/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param fantasia8Min4 caption = "Color Range 4 Low" default = rgb(0/255,50/255,30/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param fantasia8Max5 caption = "Color Range 5 High" default = rgb(131/255,148/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param fantasia8Min5 caption = "Color Range 5 Low" default = rgb(38/255,31/255,85/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param fantasia8Max6 caption = "Color Range 6 High" default = rgb(255/255,182/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param fantasia8Min6 caption = "Color Range 6 Low" default = rgb(76/255,40/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param fantasia8Max7 caption = "Color Range 7 High" default = rgb(252/255,0/255,113/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param fantasia8Min7 caption = "Color Range 7 Low" default = rgb(84/255,0/255,34/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param fantasia8Max8 caption = "Color Range 8 High" default = rgb(0/255,232/255,249/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param fantasia8Min8 caption = "Color Range 8 Low" default = rgb(0/255,64/255,78/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_FloweringOrchard8Map( KCC_ColorMapBase ) { ; Class for defining the preset Flowering Orchard 8 color map. ;

; This class defines the Flowering Orchard 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_FloweringOrchard8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @floweringOrchard8Max1, colorMap[0,1] = @floweringOrchard8Min1 colorMap[1,0] = @floweringOrchard8Max2, colorMap[1,1] = @floweringOrchard8Min2 colorMap[2,0] = @floweringOrchard8Max3, colorMap[2,1] = @floweringOrchard8Min3 colorMap[3,0] = @floweringOrchard8Max4, colorMap[3,1] = @floweringOrchard8Min4 colorMap[4,0] = @floweringOrchard8Max5, colorMap[4,1] = @floweringOrchard8Min5 colorMap[5,0] = @floweringOrchard8Max6, colorMap[5,1] = @floweringOrchard8Min6 colorMap[6,0] = @floweringOrchard8Max7, colorMap[6,1] = @floweringOrchard8Min7 colorMap[7,0] = @floweringOrchard8Max8, colorMap[7,1] = @floweringOrchard8Min8 colorRanges = @colorRanges endfunc private: default: title = "Flowering Orchard 8 Map" int param v_KCC_FloweringOrchard8Map caption = "Version (KCC_FloweringOrchard8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_FloweringOrchard8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Flowering Orchard 8 ;-------------------------------------------------------------------- heading caption = " Flowering Orchard 8 Settings" visible = (@customize) endheading color param floweringOrchard8Max1 caption = "Color Range 1 High" default = rgb(255/255,188/255,213/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param floweringOrchard8Min1 caption = "Color Range 1 Low" default = rgb(132/255,30/255,66/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param floweringOrchard8Max2 caption = "Color Range 2 High" default = rgb(240/255,135/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param floweringOrchard8Min2 caption = "Color Range 2 Low" default = rgb(70/255,0/255,59/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param floweringOrchard8Max3 caption = "Color Range 3 High" default = rgb(255/255,75/255,153/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param floweringOrchard8Min3 caption = "Color Range 3 Low" default = rgb(104/255,15/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param floweringOrchard8Max4 caption = "Color Range 4 High" default = rgb(71/255,213/255,119/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param floweringOrchard8Min4 caption = "Color Range 4 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param floweringOrchard8Max5 caption = "Color Range 5 High" default = rgb(255/255,102/255,209/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param floweringOrchard8Min5 caption = "Color Range 5 Low" default = rgb(116/255,10/255,86/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param floweringOrchard8Max6 caption = "Color Range 6 High" default = rgb(154/255,199/255,51/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param floweringOrchard8Min6 caption = "Color Range 6 Low" default = rgb(28/255,44/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param floweringOrchard8Max7 caption = "Color Range 7 High" default = rgb(255/255,162/255,228/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param floweringOrchard8Min7 caption = "Color Range 7 Low" default = rgb(110/255,0/255,55/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param floweringOrchard8Max8 caption = "Color Range 8 High" default = rgb(255/255,201/255,237/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param floweringOrchard8Min8 caption = "Color Range 8 Low" default = rgb(145/255,20/255,54/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_FourthOfJuly3Map( KCC_ColorMapBase ) { ; Class for defining the preset Fourth of July 3 color map. ;

; This class defines the Fourth of July 3 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_FourthOfJuly3Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @fourthOfJuly3Max1, colorMap[0,1] = @fourthOfJuly3Min1 colorMap[1,0] = @fourthOfJuly3Max2, colorMap[1,1] = @fourthOfJuly3Min2 colorMap[2,0] = @fourthOfJuly3Max3, colorMap[2,1] = @fourthOfJuly3Min3 colorRanges = @colorRanges endfunc ; Initialize the color map using the user selected parameters. func initColorMap() ; colorMap[0,0] = @fourthOfJuly3Max1, colorMap[0,1] = @fourthOfJuly3Min1 colorMap[1,0] = @fourthOfJuly3Max2, colorMap[1,1] = @fourthOfJuly3Min2 colorMap[2,0] = @fourthOfJuly3Max3, colorMap[2,1] = @fourthOfJuly3Min3 colorRanges = 3 endfunc private: default: title = "Fourth of July 3 Map" int param v_KCC_FourthOfJuly3Map caption = "Version (KCC_FourthOfJuly3Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_FourthOfJuly3Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 3 default = 3 endparam ;-------------------------------------------------------------------- ; Color Defaults for Fourth of July 3 ;-------------------------------------------------------------------- heading caption = " Fourth of July 3 Map Settings" visible = (@customize) endheading color param fourthOfJuly3Max1 caption = "Color Range 1 High" default = rgb(255/255,0/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param fourthOfJuly3Min1 caption = "Color Range 1 Low" default = rgb(128/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param fourthOfJuly3Max2 caption = "Color Range 2 High" default = rgb(64/255,64/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param fourthOfJuly3Min2 caption = "Color Range 2 Low" default = rgb(0/255,0/255,128/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param fourthOfJuly3Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param fourthOfJuly3Min3 caption = "Color Range 3 Low" default = rgb(128/255,128/255,128/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_GenerateColorMap( KCC_ColorMapBase ) { ; Class for generating color ranges using the gradient. ;

; This class provides options for generating color ranges from the gradient. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GenerateColorMap( Generic pparent ) KCC_ColorMapBase( pparent ) colorRanges = @colorRanges ; Compute the color ranges using the gradient. int ranges = 0 while ranges < colorRanges color gradientColor = gradient( ranges / @colorRanges ) colorMap[ranges,0] = hsl( hue( gradientColor ), sat( gradientColor ), @luminanceUpper ) colorMap[ranges,1] = hsl( hue( gradientColor ), sat( gradientColor ), @luminanceLower ) ranges = ranges + 1 endwhile endfunc private: default: title = "Generate Color Map" int param v_KCC_GenerateColorMap caption = "Version (KCC_GenerateColorMap)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GenerateColorMap < 100 endparam int param colorRanges caption = "# of Ranges" default = 8 min = 1 max = 500 hint = "The number of color ranges." endparam float param luminanceUpper caption = "Lum. Upper Value" default = 0.60 min = 0.0 max = 1.0 hint = "The value of the Luminance component for the upper value \ when generating the ranges from the gradient. This value \ is used with the brighter end of the color range." endparam float param luminanceLower caption = "Lum. Lower Value" default = 0.10 min = 0.0 max = 1.0 hint = "The value of the Luminance component for the lower value \ when generating the ranges from the gradient. This value \ is used with the darker end of the color range." endparam } class KCC_GoldGreen2Map( KCC_ColorMapBase ) { ; Class for defining the preset Gold/Green 2 color map. ; ; This class defines the Gold/Green 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GoldGreen2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @goldGreen2Max1, colorMap[0,1] = @goldGreen2Min1 colorMap[1,0] = @goldGreen2Max2, colorMap[1,1] = @goldGreen2Min2 colorRanges = @colorRanges endfunc ; Initialize the color map using the user selected parameters. func initColorMap() ; colorMap[0,0] = @goldGreen2Max1, colorMap[0,1] = @goldGreen2Min1 colorMap[1,0] = @goldGreen2Max2, colorMap[1,1] = @goldGreen2Min2 colorRanges = 2 endfunc private: default: title = "Gold/Green 2 Map" int param v_KCC_GoldGreen2Map caption = "Version (KCC_GoldGreen2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GoldGreen2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green 2 ;-------------------------------------------------------------------- heading caption = " Gold/Green 2 Map Settings" visible = (@customize) endheading color param goldGreen2Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param goldGreen2Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param goldGreen2Max2 caption = "Color Range 2 High" default = rgb(0/255,129/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param goldGreen2Min2 caption = "Color Range 2 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_GoldGreen8Map( KCC_ColorMapBase ) { ; Class for defining the preset Gold/Green 8 color map. ;

; This class defines the Gold/Green 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GoldGreen8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @goldGreen8Max1, colorMap[0,1] = @goldGreen8Min1 colorMap[1,0] = @goldGreen8Max2, colorMap[1,1] = @goldGreen8Min2 colorMap[2,0] = @goldGreen8Max3, colorMap[2,1] = @goldGreen8Min3 colorMap[3,0] = @goldGreen8Max4, colorMap[3,1] = @goldGreen8Min4 colorMap[4,0] = @goldGreen8Max5, colorMap[4,1] = @goldGreen8Min5 colorMap[5,0] = @goldGreen8Max6, colorMap[5,1] = @goldGreen8Min6 colorMap[6,0] = @goldGreen8Max7, colorMap[6,1] = @goldGreen8Min7 colorMap[7,0] = @goldGreen8Max8, colorMap[7,1] = @goldGreen8Min8 colorRanges = @colorRanges endfunc private: default: title = "Gold/Green 8 Map" int param v_KCC_GoldGreen8Map caption = "Version (KCC_GoldGreen8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GoldGreen8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green 8 ;-------------------------------------------------------------------- heading caption = " Gold/Green 8 Map Settings" visible = (@customize) endheading color param goldGreen8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param goldGreen8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param goldGreen8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param goldGreen8Min2 caption = "Color Range 2 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param goldGreen8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param goldGreen8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param goldGreen8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param goldGreen8Min4 caption = "Color Range 4 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param goldGreen8Max5 caption = "Color Range 5 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param goldGreen8Min5 caption = "Color Range 5 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param goldGreen8Max6 caption = "Color Range 6 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param goldGreen8Min6 caption = "Color Range 6 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param goldGreen8Max7 caption = "Color Range 7 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param goldGreen8Min7 caption = "Color Range 7 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param goldGreen8Max8 caption = "Color Range 8 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param goldGreen8Min8 caption = "Color Range 8 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_GoldGreenAlt8Map( KCC_ColorMapBase ) { ; Class for defining the preset Gold/Gree Alt 8 color map. ;

; This class defines the Gold/Green Alt 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GoldGreenAlt8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @goldGreenAlt8Max1, colorMap[0,1] = @goldGreenAlt8Min1 colorMap[1,0] = @goldGreenAlt8Max2, colorMap[1,1] = @goldGreenAlt8Min2 colorMap[2,0] = @goldGreenAlt8Max3, colorMap[2,1] = @goldGreenAlt8Min3 colorMap[3,0] = @goldGreenAlt8Max4, colorMap[3,1] = @goldGreenAlt8Min4 colorMap[4,0] = @goldGreenAlt8Max5, colorMap[4,1] = @goldGreenAlt8Min5 colorMap[5,0] = @goldGreenAlt8Max6, colorMap[5,1] = @goldGreenAlt8Min6 colorMap[6,0] = @goldGreenAlt8Max7, colorMap[6,1] = @goldGreenAlt8Min7 colorMap[7,0] = @goldGreenAlt8Max8, colorMap[7,1] = @goldGreenAlt8Min8 colorRanges = @colorRanges endfunc private: default: title = "Gold/Green Alt 8 Map" int param v_KCC_GoldGreenAlt8Map caption = "Version (KCC_GoldGreenAlt8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GoldGreenAlt8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Green Alt 8 ;-------------------------------------------------------------------- heading caption = " Gold/Green Alt 8 Map Settings" visible = (@customize) endheading color param goldGreenAlt8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param goldGreenAlt8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param goldGreenAlt8Max2 caption = "Color Range 2 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param goldGreenAlt8Min2 caption = "Color Range 2 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param goldGreenAlt8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param goldGreenAlt8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param goldGreenAlt8Max4 caption = "Color Range 4 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param goldGreenAlt8Min4 caption = "Color Range 4 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param goldGreenAlt8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param goldGreenAlt8Min5 caption = "Color Range 5 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param goldGreenAlt8Max6 caption = "Color Range 6 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param goldGreenAlt8Min6 caption = "Color Range 6 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param goldGreenAlt8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param goldGreenAlt8Min7 caption = "Color Range 7 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param goldGreenAlt8Max8 caption = "Color Range 8 High" default = rgb(0/255,129/255,8/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param goldGreenAlt8Min8 caption = "Color Range 8 Low" default = rgb(0/255,32/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_GoldSilver8Map( KCC_ColorMapBase ) { ; Class for defining the preset Gold/Silver 8 color map. ;

; This class defines the Gold/Silver 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GoldSilver8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @goldSilver8Max1, colorMap[0,1] = @goldSilver8Min1 colorMap[1,0] = @goldSilver8Max2, colorMap[1,1] = @goldSilver8Min2 colorMap[2,0] = @goldSilver8Max3, colorMap[2,1] = @goldSilver8Min3 colorMap[3,0] = @goldSilver8Max4, colorMap[3,1] = @goldSilver8Min4 colorMap[4,0] = @goldSilver8Max5, colorMap[4,1] = @goldSilver8Min5 colorMap[5,0] = @goldSilver8Max6, colorMap[5,1] = @goldSilver8Min6 colorMap[6,0] = @goldSilver8Max7, colorMap[6,1] = @goldSilver8Min7 colorMap[7,0] = @goldSilver8Max8, colorMap[7,1] = @goldSilver8Min8 colorRanges = @colorRanges endfunc private: default: title = "Gold/Silver 8 Map" int param v_KCC_GoldSilver8Map caption = "Version (KCC_GoldSilver8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GoldSilver8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Silver 8 ;-------------------------------------------------------------------- heading caption = " Gold/Silver 8 Map Settings" visible = (@customize) endheading color param goldSilver8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param goldSilver8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param goldSilver8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param goldSilver8Min2 caption = "Color Range 2 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param goldSilver8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param goldSilver8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param goldSilver8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param goldSilver8Min4 caption = "Color Range 4 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param goldSilver8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param goldSilver8Min5 caption = "Color Range 5 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param goldSilver8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param goldSilver8Min6 caption = "Color Range 6 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param goldSilver8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param goldSilver8Min7 caption = "Color Range 7 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param goldSilver8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param goldSilver8Min8 caption = "Color Range 8 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_GoldSilverAlt8Map( KCC_ColorMapBase ) { ; Class for defining the preset Gold/Silver Alt 8 color map. ;

; This class defines the Gold/Silver Alt 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_GoldSilverAlt8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @goldSilverAlt8Max1, colorMap[0,1] = @goldSilverAlt8Min1 colorMap[1,0] = @goldSilverAlt8Max2, colorMap[1,1] = @goldSilverAlt8Min2 colorMap[2,0] = @goldSilverAlt8Max3, colorMap[2,1] = @goldSilverAlt8Min3 colorMap[3,0] = @goldSilverAlt8Max4, colorMap[3,1] = @goldSilverAlt8Min4 colorMap[4,0] = @goldSilverAlt8Max5, colorMap[4,1] = @goldSilverAlt8Min5 colorMap[5,0] = @goldSilverAlt8Max6, colorMap[5,1] = @goldSilverAlt8Min6 colorMap[6,0] = @goldSilverAlt8Max7, colorMap[6,1] = @goldSilverAlt8Min7 colorMap[7,0] = @goldSilverAlt8Max8, colorMap[7,1] = @goldSilverAlt8Min8 colorRanges = @colorRanges endfunc private: default: title = "Gold/Silver Alt 8 Map" int param v_KCC_GoldSilverAlt8Map caption = "Version (KCC_GoldSilverAlt8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GoldSilverAlt8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Gold/Silver Alt 8 ;-------------------------------------------------------------------- heading caption = " Gold/Silver Alt 8 Map Settings" visible = (@customize) endheading color param goldSilverAlt8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param goldSilverAlt8Min1 caption = "Color Range 1 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param goldSilverAlt8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param goldSilverAlt8Min2 caption = "Color Range 2 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param goldSilverAlt8Max3 caption = "Color Range 3 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param goldSilverAlt8Min3 caption = "Color Range 3 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param goldSilverAlt8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param goldSilverAlt8Min4 caption = "Color Range 4 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param goldSilverAlt8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param goldSilverAlt8Min5 caption = "Color Range 5 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param goldSilverAlt8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param goldSilverAlt8Min6 caption = "Color Range 6 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param goldSilverAlt8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param goldSilverAlt8Min7 caption = "Color Range 7 Low" default = rgb(153/255,64/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param goldSilverAlt8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param goldSilverAlt8Min8 caption = "Color Range 8 Low" default = rgb(125/255,125/255,125/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_GradientColors( KCC_ColorMapBase ) { ; Class for defining color maps using the gradient. ;

; This class allows the gradient to be divided into color maps. ; The number of ranges and colors per range are specified to ; create the map. ;

; Usually, it is better to use one of the predefined maps and ; customize it to your liking, rather than this class. The ; mapping of colors will be smoother and generally nicer looking. ;

; This class is included primarily for historical purposes. ; public: $define DEBUG import "common.ulb" ; Constructor ; @param pparent = a reference to the object creating the new object; typically, 'this' func KCC_GradientColors( Generic pparent ) KCC_ColorMapBase( pparent ) colorRanges = @colorRanges colorOffset = @colorOffset colorsPerRange = @colorsPerRange endfunc color func getColorChannel( float pindex, int pchannel ) pchannel = abs( (pchannel + colorOffset) % @colorRanges ) if( @perturbRanges != "None" ) pchannel = perturbRanges( pchannel ) endif return gradient( ( (pindex * (@colorsPerRange - 1) ) + (pchannel * colorsPerRange) ) % 256 / 256 ) endfunc protected: color colorMap[500,2] int colorsPerRange int colorRanges int colorOffset default: title = "Gradient Colors Map" rating = notRecommended int param v_KCC_GradientColors caption = "Version (KCC_GradientColors)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_GradientColors < 100 endparam int param colorOffset caption = "Range Offset" default = 0 min = 0 max = 500 hint = "This is used to rotate the color ranges. The offset can \ range from 0 to 500." endparam int param colorRanges caption = "# of Ranges" min = 1 max = 8 default = 8 endparam int param colorsPerRange caption = "Colors/Range" min = 1 max = 255 default = 30 endparam } class KCC_LaTerra8Map( KCC_ColorMapBase ) { ; Class for defining the preset La Terra 8 color map. ;

; This class defines the La Terra 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_LaTerra8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @laTerraMax1, colorMap[0,1] = @laTerraMin1 colorMap[1,0] = @laTerraMax2, colorMap[1,1] = @laTerraMin2 colorMap[2,0] = @laTerraMax3, colorMap[2,1] = @laTerraMin3 colorMap[3,0] = @laTerraMax4, colorMap[3,1] = @laTerraMin4 colorMap[4,0] = @laTerraMax5, colorMap[4,1] = @laTerraMin5 colorMap[5,0] = @laTerraMax6, colorMap[5,1] = @laTerraMin6 colorMap[6,0] = @laTerraMax7, colorMap[6,1] = @laTerraMin7 colorMap[7,0] = @laTerraMax8, colorMap[7,1] = @laTerraMin8 colorRanges = @colorRanges endfunc private: default: title = "La Terra 8 Map" int param v_KCC_LaTerra8Map caption = "Version (KCC_LaTerra8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_LaTerra8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for La Terra 8 ;-------------------------------------------------------------------- heading caption = " La Terra 8 Map Settings" visible = (@customize) endheading color param laTerraMax1 caption = "Color Range 1 High" default = rgb(255/255,174/255,103/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param laTerraMin1 caption = "Color Range 1 Low" default = rgb(102/255,47/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param laTerraMax2 caption = "Color Range 2 High" default = rgb(255/255,242/255,39/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param laTerraMin2 caption = "Color Range 2 Low" default = rgb(100/255,58/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param laTerraMax3 caption = "Color Range 3 High" default = rgb(170/255,86/255,0/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param laTerraMin3 caption = "Color Range 3 Low" default = rgb(92/255,29/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param laTerraMax4 caption = "Color Range 4 High" default = rgb(190/255,118/255,13/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param laTerraMin4 caption = "Color Range 4 Low" default = rgb(84/255,41/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param laTerraMax5 caption = "Color Range 5 High" default = rgb(255/255,174/255,103/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param laTerraMin5 caption = "Color Range 5 Low" default = rgb(102/255,47/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param laTerraMax6 caption = "Color Range 6 High" default = rgb(255/255,242/255,39/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param laTerraMin6 caption = "Color Range 6 Low" default = rgb(100/255,58/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param laTerraMax7 caption = "Color Range 7 High" default = rgb(170/255,86/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param laTerraMin7 caption = "Color Range 7 Low" default = rgb(92/255,29/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param laTerraMax8 caption = "Color Range 8 High" default = rgb(190/255,118/255,13/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param laTerraMin8 caption = "Color Range 8 Low" default = rgb(84/255,41/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Mojave8Map( KCC_ColorMapBase ) { ; Class for defining the preset Mojave 8 color map. ;

; This class defines the Mojave 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Mojave8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @mojave8Max1, colorMap[0,1] = @mojave8Min1 colorMap[1,0] = @mojave8Max2, colorMap[1,1] = @mojave8Min2 colorMap[2,0] = @mojave8Max3, colorMap[2,1] = @mojave8Min3 colorMap[3,0] = @mojave8Max4, colorMap[3,1] = @mojave8Min4 colorMap[4,0] = @mojave8Max5, colorMap[4,1] = @mojave8Min5 colorMap[5,0] = @mojave8Max6, colorMap[5,1] = @mojave8Min6 colorMap[6,0] = @mojave8Max7, colorMap[6,1] = @mojave8Min7 colorMap[7,0] = @mojave8Max8, colorMap[7,1] = @mojave8Min8 colorRanges = @colorRanges endfunc private: default: title = "Mojave 8 Map" int param v_KCC_Mojave8Map caption = "Version (KCC_Mojave8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Mojave8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Mojave 8 ;-------------------------------------------------------------------- heading caption = " Mojave 8 Map Settings" visible = (@customize) endheading color param mojave8Max1 caption = "Color Range 1 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param mojave8Min1 caption = "Color Range 1 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param mojave8Max2 caption = "Color Range 2 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param mojave8Min2 caption = "Color Range 2 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param mojave8Max3 caption = "Color Range 3 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param mojave8Min3 caption = "Color Range 3 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param mojave8Max4 caption = "Color Range 4 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param mojave8Min4 caption = "Color Range 4 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param mojave8Max5 caption = "Color Range 5 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param mojave8Min5 caption = "Color Range 5 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param mojave8Max6 caption = "Color Range 6 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param mojave8Min6 caption = "Color Range 6 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param mojave8Max7 caption = "Color Range 7 High" default = rgb(255/255,169/255,50/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param mojave8Min7 caption = "Color Range 7 Low" default = rgb(116/255,0/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param mojave8Max8 caption = "Color Range 8 High" default = rgb(255/255,243/255,120/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param mojave8Min8 caption = "Color Range 8 Low" default = rgb(86/255,31/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_MorningSky8Map( KCC_ColorMapBase ) { ; Class for defining the preset Morning Sky 8 color map. ;

; This class defines the Morning Sky 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_MorningSky8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @morningSky8Max1, colorMap[0,1] = @morningSky8Min1 colorMap[1,0] = @morningSky8Max2, colorMap[1,1] = @morningSky8Min2 colorMap[2,0] = @morningSky8Max3, colorMap[2,1] = @morningSky8Min3 colorMap[3,0] = @morningSky8Max4, colorMap[3,1] = @morningSky8Min4 colorMap[4,0] = @morningSky8Max5, colorMap[4,1] = @morningSky8Min5 colorMap[5,0] = @morningSky8Max6, colorMap[5,1] = @morningSky8Min6 colorMap[6,0] = @morningSky8Max7, colorMap[6,1] = @morningSky8Min7 colorMap[7,0] = @morningSky8Max8, colorMap[7,1] = @morningSky8Min8 colorRanges = @colorRanges endfunc private: default: title = "Morning Sky 8 Map" int param v_KCC_MorningSky8Map caption = "Version (KCC_MorningSky8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_MorningSky8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Morning Sky 8 ;-------------------------------------------------------------------- heading caption = " Morning Sky 8 Map Settings" visible = (@customize) endheading color param morningSky8Max1 caption = "Color Range 1 High" default = rgb(255/255,178/255,217/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param morningSky8Min1 caption = "Color Range 1 Low" default = rgb(79/255,29/255,57/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param morningSky8Max2 caption = "Color Range 2 High" default = rgb(107/255,246/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param morningSky8Min2 caption = "Color Range 2 Low" default = rgb(13/255,70/255,75/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param morningSky8Max3 caption = "Color Range 3 High" default = rgb(255/255,199/255,137/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param morningSky8Min3 caption = "Color Range 3 Low" default = rgb(62/255,42/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param morningSky8Max4 caption = "Color Range 4 High" default = rgb(241/255,245/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param morningSky8Min4 caption = "Color Range 4 Low" default = rgb(16/255,24/255,46/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param morningSky8Max5 caption = "Color Range 5 High" default = rgb(255/255,177/255,188/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param morningSky8Min5 caption = "Color Range 5 Low" default = rgb(54/255,14/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param morningSky8Max6 caption = "Color Range 6 High" default = rgb(248/255,236/255,236/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param morningSky8Min6 caption = "Color Range 6 Low" default = rgb(49/255,38/255,35/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param morningSky8Max7 caption = "Color Range 7 High" default = rgb(129/255,201/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param morningSky8Min7 caption = "Color Range 7 Low" default = rgb(0/255,56/255,70/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param morningSky8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,146/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param morningSky8Min8 caption = "Color Range 8 Low" default = rgb(89/255,76/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Pastel8Map( KCC_ColorMapBase ) { ; Class for defining the preset Pastel 8 color map. ;

; This class defines the Pastel 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Pastel8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @pastel8Max1, colorMap[0,1] = @pastel8Min1 colorMap[1,0] = @pastel8Max2, colorMap[1,1] = @pastel8Min2 colorMap[2,0] = @pastel8Max3, colorMap[2,1] = @pastel8Min3 colorMap[3,0] = @pastel8Max4, colorMap[3,1] = @pastel8Min4 colorMap[4,0] = @pastel8Max5, colorMap[4,1] = @pastel8Min5 colorMap[5,0] = @pastel8Max6, colorMap[5,1] = @pastel8Min6 colorMap[6,0] = @pastel8Max7, colorMap[6,1] = @pastel8Min7 colorMap[7,0] = @pastel8Max8, colorMap[7,1] = @pastel8Min8 colorRanges = @colorRanges endfunc private: default: title = "Pastel 8 Map" int param v_KCC_Pastel8Map caption = "Version (KCC_Pastel8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Pastel8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Pastel 8 ;-------------------------------------------------------------------- heading caption = " Pastel 8 Map Settings" visible = (@customize) endheading color param pastel8Max1 caption = "Color Range 1 High" default = rgb(147/255,255/255,193/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param pastel8Min1 caption = "Color Range 1 Low" default = rgb(0/255,48/255,16/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param pastel8Max2 caption = "Color Range 2 High" default = rgb(147/255,255/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param pastel8Min2 caption = "Color Range 2 Low" default = rgb(0/255,48/255,48/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param pastel8Max3 caption = "Color Range 3 High" default = rgb(148/255,148/255,253/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param pastel8Min3 caption = "Color Range 3 Low" default = rgb(0/255,0/255,96/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param pastel8Max4 caption = "Color Range 4 High" default = rgb(199/255,149/255,253/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param pastel8Min4 caption = "Color Range 4 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param pastel8Max5 caption = "Color Range 5 High" default = rgb(255/255,147/255,221/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param pastel8Min5 caption = "Color Range 5 Low" default = rgb(96/255,0/255,32/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param pastel8Max6 caption = "Color Range 6 High" default = rgb(254/255,148/255,148/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param pastel8Min6 caption = "Color Range 6 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param pastel8Max7 caption = "Color Range 7 High" default = rgb(255/255,202/255,147/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param pastel8Min7 caption = "Color Range 7 Low" default = rgb(160/255,16/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param pastel8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,147/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param pastel8Min8 caption = "Color Range 8 Low" default = rgb(152/255,64/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_PastelRainbow8Map( KCC_ColorMapBase ) { ; Class for defining the preset Pastel Rainbow 8 color map. ;

; This class defines the Pastel Rainbow 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_PastelRainbow8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Angela Wilczynski. colorMap[0,0] = @pastelRainbow8Max1, colorMap[0,1] = @pastelRainbow8Min1 colorMap[1,0] = @pastelRainbow8Max2, colorMap[1,1] = @pastelRainbow8Min2 colorMap[2,0] = @pastelRainbow8Max3, colorMap[2,1] = @pastelRainbow8Min3 colorMap[3,0] = @pastelRainbow8Max4, colorMap[3,1] = @pastelRainbow8Min4 colorMap[4,0] = @pastelRainbow8Max5, colorMap[4,1] = @pastelRainbow8Min5 colorMap[5,0] = @pastelRainbow8Max6, colorMap[5,1] = @pastelRainbow8Min6 colorMap[6,0] = @pastelRainbow8Max7, colorMap[6,1] = @pastelRainbow8Min7 colorMap[7,0] = @pastelRainbow8Max8, colorMap[7,1] = @pastelRainbow8Min8 colorRanges = @colorRanges endfunc ; Initialize the color map using the user selected parameters. func initColorMap() endfunc private: default: title = "Pastel Rainbow 8 Map" int param v_KCC_PastelRainbow8Map caption = "Version (KCC_PastelRainbow8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PastelRainbow8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Pastel Rainbow 8 ;-------------------------------------------------------------------- heading caption = " Pastel Rainbow 8 Map Settings" visible = (@customize) endheading color param pastelRainbow8Max1 caption = "Color Range 1 High" default = rgb(242/255,246/255,174/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param pastelRainbow8Min1 caption = "Color Range 1 Low" default = rgb(20/255,48/255,12/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param pastelRainbow8Max2 caption = "Color Range 2 High" default = rgb(182/255,242/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param pastelRainbow8Min2 caption = "Color Range 2 Low" default = rgb(20/255,44/255,64/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param pastelRainbow8Max3 caption = "Color Range 3 High" default = rgb(202/255,202/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param pastelRainbow8Min3 caption = "Color Range 3 Low" default = rgb(36/255,36/255,48/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param pastelRainbow8Max4 caption = "Color Range 4 High" default = rgb(255/255,170/255,170/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param pastelRainbow8Min4 caption = "Color Range 4 Low" default = rgb(89/255,0/255,24/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param pastelRainbow8Max5 caption = "Color Range 5 High" default = rgb(255/255,246/255,178/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param pastelRainbow8Min5 caption = "Color Range 5 Low" default = rgb(40/255,0/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param pastelRainbow8Max6 caption = "Color Range 6 High" default = rgb(255/255,238/255,206/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param pastelRainbow8Min6 caption = "Color Range 6 Low" default = rgb(52/255,16/255,40/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param pastelRainbow8Max7 caption = "Color Range 7 High" default = rgb(214/255,222/255,161/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param pastelRainbow8Min7 caption = "Color Range 7 Low" default = rgb(4/255,32/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param pastelRainbow8Max8 caption = "Color Range 8 High" default = rgb(255/255,230/255,246/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param pastelRainbow8Min8 caption = "Color Range 8 Low" default = rgb(70/255,50/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_PurpleYellow2Map( KCC_ColorMapBase ) { ; Class for defining the preset Purple/Yellow 2 color map. ;

; This class defines the Purple/Yellow 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_PurpleYellow2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @purpleYellow2Max1, colorMap[0,1] = @purpleYellow2Min1 colorMap[1,0] = @purpleYellow2Max2, colorMap[1,1] = @purpleYellow2Min2 colorRanges = @colorRanges endfunc private: default: title = "Purple/Yellow 2 Map" int param v_KCC_PurpleYellow2Map caption = "Version (KCC_PurpleYellow2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PurpleYellow2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow 2 Map Settings" visible = (@customize) endheading color param purpleYellow2Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param purpleYellow2Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param purpleYellow2Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param purpleYellow2Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_PurpleYellow8Map( KCC_ColorMapBase ) { ; Class for defining the preset Purple/Yellow 2 color map. ;

; This class defines the Purple/Yellow 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_PurpleYellow8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @purpleYellow8Max1, colorMap[0,1] = @purpleYellow8Min1 colorMap[1,0] = @purpleYellow8Max2, colorMap[1,1] = @purpleYellow8Min2 colorMap[2,0] = @purpleYellow8Max3, colorMap[2,1] = @purpleYellow8Min3 colorMap[3,0] = @purpleYellow8Max4, colorMap[3,1] = @purpleYellow8Min4 colorMap[4,0] = @purpleYellow8Max5, colorMap[4,1] = @purpleYellow8Min5 colorMap[5,0] = @purpleYellow8Max6, colorMap[5,1] = @purpleYellow8Min6 colorMap[6,0] = @purpleYellow8Max7, colorMap[6,1] = @purpleYellow8Min7 colorMap[7,0] = @purpleYellow8Max8, colorMap[7,1] = @purpleYellow8Min8 colorRanges = @colorRanges endfunc private: default: title = "Purple/Yellow 8 Map" int param v_KCC_PurpleYellow8Map caption = "Version (KCC_PurpleYellow8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PurpleYellow8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow 8 Map Settings" visible = (@customize) endheading color param purpleYellow8Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param purpleYellow8Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param purpleYellow8Max2 caption = "Color Range 2 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param purpleYellow8Min2 caption = "Color Range 2 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param purpleYellow8Max3 caption = "Color Range 3 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param purpleYellow8Min3 caption = "Color Range 3 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param purpleYellow8Max4 caption = "Color Range 4 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param purpleYellow8Min4 caption = "Color Range 4 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param purpleYellow8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param purpleYellow8Min5 caption = "Color Range 5 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param purpleYellow8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param purpleYellow8Min6 caption = "Color Range 6 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param purpleYellow8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param purpleYellow8Min7 caption = "Color Range 7 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param purpleYellow8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param purpleYellow8Min8 caption = "Color Range 8 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_PurpleYellowAlt8Map( KCC_ColorMapBase ) { ; Class for defining the preset Purple/Yellow 2 color map. ;

; This class defines the Purple/Yellow 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_PurpleYellowAlt8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @purpleYellowAlt8Max1, colorMap[0,1] = @purpleYellowAlt8Min1 colorMap[1,0] = @purpleYellowAlt8Max2, colorMap[1,1] = @purpleYellowAlt8Min2 colorMap[2,0] = @purpleYellowAlt8Max3, colorMap[2,1] = @purpleYellowAlt8Min3 colorMap[3,0] = @purpleYellowAlt8Max4, colorMap[3,1] = @purpleYellowAlt8Min4 colorMap[4,0] = @purpleYellowAlt8Max5, colorMap[4,1] = @purpleYellowAlt8Min5 colorMap[5,0] = @purpleYellowAlt8Max6, colorMap[5,1] = @purpleYellowAlt8Min6 colorMap[6,0] = @purpleYellowAlt8Max7, colorMap[6,1] = @purpleYellowAlt8Min7 colorMap[7,0] = @purpleYellowAlt8Max8, colorMap[7,1] = @purpleYellowAlt8Min8 colorRanges = @colorRanges endfunc private: default: title = "Purple/Yellow Alt 8 Map" int param v_KCC_PurpleYellowAlt8Map caption = "Version (KCC_PurpleYellowAlt8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_PurpleYellowAlt8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Purple/Yellow 2 ;-------------------------------------------------------------------- heading caption = " Purple/Yellow Alt 8 Map Settings" visible = (@customize) endheading color param purpleYellowAlt8Max1 caption = "Color Range 1 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param purpleYellowAlt8Min1 caption = "Color Range 1 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param purpleYellowAlt8Max2 caption = "Color Range 2 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param purpleYellowAlt8Min2 caption = "Color Range 2 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param purpleYellowAlt8Max3 caption = "Color Range 3 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param purpleYellowAlt8Min3 caption = "Color Range 3 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param purpleYellowAlt8Max4 caption = "Color Range 4 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param purpleYellowAlt8Min4 caption = "Color Range 4 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param purpleYellowAlt8Max5 caption = "Color Range 5 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param purpleYellowAlt8Min5 caption = "Color Range 5 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param purpleYellowAlt8Max6 caption = "Color Range 6 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param purpleYellowAlt8Min6 caption = "Color Range 6 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param purpleYellowAlt8Max7 caption = "Color Range 7 High" default = rgb(172/255,96/255,252/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param purpleYellowAlt8Min7 caption = "Color Range 7 Low" default = rgb(72/255,0/255,80/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param purpleYellowAlt8Max8 caption = "Color Range 8 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param purpleYellowAlt8Min8 caption = "Color Range 8 Low" default = rgb(155/255,65/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_RedTan2Map( KCC_ColorMapBase ) { ; Class for defining the preset Red/Tan 2 color map. ;

; This class defines the Red/Tan 2 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_RedTan2Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; colorMap[0,0] = @redTan2Max1, colorMap[0,1] = @redTan2Min1 colorMap[1,0] = @redTan2Max2, colorMap[1,1] = @redTan2Min2 colorRanges = @colorRanges endfunc ; Initialize the color map using the user selected parameters. func initColorMap() endfunc private: default: title = "Red/Tan 2 Map" int param v_KCC_RedTan2Map caption = "Version (KCC_RedTan2Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_RedTan2Map < 100 endparam int param colorRanges caption = "# of Ranges" min = 1 max = 2 default = 2 endparam ;-------------------------------------------------------------------- ; Color Defaults for Red/Tan 2 ;-------------------------------------------------------------------- heading caption = " Red/Tan 2 Map Settings" visible = (@customize) endheading color param redTan2Max1 caption = "Color Range 1 High" default = rgb(255/255,32/255,32/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param redTan2Min1 caption = "Color Range 1 Low" default = rgb(96/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param redTan2Max2 caption = "Color Range 2 High" default = rgb(255/255,208/255,152/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param redTan2Min2 caption = "Color Range 2 Low" default = rgb(128/255,108/255,60/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam } class KCC_SantaFe8Map( KCC_ColorMapBase ) { ; Class for defining the preset Santa Fe 8 color map. ;

; This class defines the Santa Fe 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_SantaFe8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @santaFe8Max1, colorMap[0,1] = @santaFe8Min1 colorMap[1,0] = @santaFe8Max2, colorMap[1,1] = @santaFe8Min2 colorMap[2,0] = @santaFe8Max3, colorMap[2,1] = @santaFe8Min3 colorMap[3,0] = @santaFe8Max4, colorMap[3,1] = @santaFe8Min4 colorMap[4,0] = @santaFe8Max5, colorMap[4,1] = @santaFe8Min5 colorMap[5,0] = @santaFe8Max6, colorMap[5,1] = @santaFe8Min6 colorMap[6,0] = @santaFe8Max7, colorMap[6,1] = @santaFe8Min7 colorMap[7,0] = @santaFe8Max8, colorMap[7,1] = @santaFe8Min8 colorRanges = @colorRanges endfunc private: default: title = "Santa Fe 8 Map" int param v_KCC_SantaFe8Map caption = "Version (KCC_SantaFe8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_SantaFe8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Santa Fe 8 ;-------------------------------------------------------------------- heading caption = " Santa Fe 8 Map Settings" visible = (@customize) endheading color param santaFe8Max1 caption = "Color Range 1 High" default = rgb(255/255,235/255,76/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param santaFe8Min1 caption = "Color Range 1 Low" default = rgb(122/255,52/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param santaFe8Max2 caption = "Color Range 2 High" default = rgb(0/255,229/255,222/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param santaFe8Min2 caption = "Color Range 2 Low" default = rgb(0/255,48/255,51/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param santaFe8Max3 caption = "Color Range 3 High" default = rgb(255/255,200/255,140/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param santaFe8Min3 caption = "Color Range 3 Low" default = rgb(82/255,21/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param santaFe8Max4 caption = "Color Range 4 High" default = rgb(255/255,157/255,82/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param santaFe8Min4 caption = "Color Range 4 Low" default = rgb(130/255,0/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param santaFe8Max5 caption = "Color Range 5 High" default = rgb(255/255,235/255,76/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param santaFe8Min5 caption = "Color Range 5 Low" default = rgb(122/255,52/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param santaFe8Max6 caption = "Color Range 6 High" default = rgb(0/255,229/255,222/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param santaFe8Min6 caption = "Color Range 6 Low" default = rgb(0/255,48/255,51/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param santaFe8Max7 caption = "Color Range 7 High" default = rgb(255/255,200/255,140/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param santaFe8Min7 caption = "Color Range 7 Low" default = rgb(82/255,21/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param santaFe8Max8 caption = "Color Range 8 High" default = rgb(255/255,157/255,82/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param santaFe8Min8 caption = "Color Range 8 Low" default = rgb(130/255,0/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Showtime8Map( KCC_ColorMapBase ) { ; Class for defining the preset Showtime 8 color map. ;

; This class defines the Showtime 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Showtime8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @showtime8Max1, colorMap[0,1] = @showtime8Min1 colorMap[1,0] = @showtime8Max2, colorMap[1,1] = @showtime8Min2 colorMap[2,0] = @showtime8Max3, colorMap[2,1] = @showtime8Min3 colorMap[3,0] = @showtime8Max4, colorMap[3,1] = @showtime8Min4 colorMap[4,0] = @showtime8Max5, colorMap[4,1] = @showtime8Min5 colorMap[5,0] = @showtime8Max6, colorMap[5,1] = @showtime8Min6 colorMap[6,0] = @showtime8Max7, colorMap[6,1] = @showtime8Min7 colorMap[7,0] = @showtime8Max8, colorMap[7,1] = @showtime8Min8 colorRanges = @colorRanges endfunc private: default: title = "Showtime 8 Map" int param v_KCC_Showtime8Map caption = "Version (KCC_Showtime8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Showtime8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Showtime 8 ;-------------------------------------------------------------------- heading caption = " Showtime 8 Map Settings" visible = (@customize) endheading color param showtime8Max1 caption = "Color Range 1 High" default = rgb(241/255,53/255,82/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param showtime8Min1 caption = "Color Range 1 Low" default = rgb(88/255,0/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param showtime8Max2 caption = "Color Range 2 High" default = rgb(255/255,121/255,52/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param showtime8Min2 caption = "Color Range 2 Low" default = rgb(107/255,29/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param showtime8Max3 caption = "Color Range 3 High" default = rgb(253/255,168/255,67/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param showtime8Min3 caption = "Color Range 3 Low" default = rgb(97/255,42/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param showtime8Max4 caption = "Color Range 4 High" default = rgb(255/255,231/255,21/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param showtime8Min4 caption = "Color Range 4 Low" default = rgb(140/255,64/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param showtime8Max5 caption = "Color Range 5 High" default = rgb(58/255,219/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param showtime8Min5 caption = "Color Range 5 Low" default = rgb(0/255,36/255,83/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param showtime8Max6 caption = "Color Range 6 High" default = rgb(9/255,116/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param showtime8Min6 caption = "Color Range 6 Low" default = rgb(33/255,30/255,81/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param showtime8Max7 caption = "Color Range 7 High" default = rgb(105/255,71/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param showtime8Min7 caption = "Color Range 7 Low" default = rgb(36/255,0/255,76/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param showtime8Max8 caption = "Color Range 8 High" default = rgb(187/255,32/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param showtime8Min8 caption = "Color Range 8 Low" default = rgb(50/255,0/255,56/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Soleil8Map( KCC_ColorMapBase ) { ; Class for defining the preset Soleil 8 color map. ;

; This class defines the Soleil 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Soleil8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @soleil8Max1, colorMap[0,1] = @soleil8Min1 colorMap[1,0] = @soleil8Max2, colorMap[1,1] = @soleil8Min2 colorMap[2,0] = @soleil8Max3, colorMap[2,1] = @soleil8Min3 colorMap[3,0] = @soleil8Max4, colorMap[3,1] = @soleil8Min4 colorMap[4,0] = @soleil8Max5, colorMap[4,1] = @soleil8Min5 colorMap[5,0] = @soleil8Max6, colorMap[5,1] = @soleil8Min6 colorMap[6,0] = @soleil8Max7, colorMap[6,1] = @soleil8Min7 colorMap[7,0] = @soleil8Max8, colorMap[7,1] = @soleil8Min8 colorRanges = @colorRanges endfunc private: default: title = "Soleil 8 Map" int param v_KCC_Soleil8Map caption = "Version (KCC_Soleil8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Soleil8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Soleil 8 ;-------------------------------------------------------------------- heading caption = " Soleil 8 Settings" visible = (@customize) endheading color param soleil8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,35/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param soleil8Min1 caption = "Color Range 1 Low" default = rgb(76/255,44/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param soleil8Max2 caption = "Color Range 2 High" default = rgb(255/255,209/255,0/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param soleil8Min2 caption = "Color Range 2 Low" default = rgb(59/255,24/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param soleil8Max3 caption = "Color Range 3 High" default = rgb(231/255,237/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param soleil8Min3 caption = "Color Range 3 Low" default = rgb(54/255,29/255,0/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param soleil8Max4 caption = "Color Range 4 High" default = rgb(255/255,141/255,49/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param soleil8Min4 caption = "Color Range 4 Low" default = rgb(92/255,32/255,0/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param soleil8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,156/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param soleil8Min5 caption = "Color Range 5 Low" default = rgb(76/255,44/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param soleil8Max6 caption = "Color Range 6 High" default = rgb(255/255,158/255,17/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param soleil8Min6 caption = "Color Range 6 Low" default = rgb(59/255,24/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param soleil8Max7 caption = "Color Range 7 High" default = rgb(255/255,255/255,217/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param soleil8Min7 caption = "Color Range 7 Low" default = rgb(76/255,41/255,0/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param soleil8Max8 caption = "Color Range 8 High" default = rgb(255/255,184/255,53/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param soleil8Min8 caption = "Color Range 8 Low" default = rgb(76/255,29/255,0/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Spring8Map( KCC_ColorMapBase ) { ; Class for defining the preset Spring 8 color map. ;

; This class defines the Spring 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Spring8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @spring8Max1, colorMap[0,1] = @spring8Min1 colorMap[1,0] = @spring8Max2, colorMap[1,1] = @spring8Min2 colorMap[2,0] = @spring8Max3, colorMap[2,1] = @spring8Min3 colorMap[3,0] = @spring8Max4, colorMap[3,1] = @spring8Min4 colorMap[4,0] = @spring8Max5, colorMap[4,1] = @spring8Min5 colorMap[5,0] = @spring8Max6, colorMap[5,1] = @spring8Min6 colorMap[6,0] = @spring8Max7, colorMap[6,1] = @spring8Min7 colorMap[7,0] = @spring8Max8, colorMap[7,1] = @spring8Min8 colorRanges = @colorRanges endfunc private: default: title = "Spring 8 Map" int param v_KCC_Spring8Map caption = "Version (KCC_Spring8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Spring8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Spring 8 ;-------------------------------------------------------------------- heading caption = " Spring 8 Map Settings" visible = (@customize) endheading color param spring8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,145/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param spring8Min1 caption = "Color Range 1 Low" default = rgb(110/255,65/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param spring8Max2 caption = "Color Range 2 High" default = rgb(215/255,182/255,255/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param spring8Min2 caption = "Color Range 2 Low" default = rgb(86/255,0/255,110/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param spring8Max3 caption = "Color Range 3 High" default = rgb(189/255,246/255,255/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param spring8Min3 caption = "Color Range 3 Low" default = rgb(0/255,51/255,54/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param spring8Max4 caption = "Color Range 4 High" default = rgb(255/255,181/255,237/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param spring8Min4 caption = "Color Range 4 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param spring8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,145/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param spring8Min5 caption = "Color Range 5 Low" default = rgb(110/255,65/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param spring8Max6 caption = "Color Range 6 High" default = rgb(215/255,182/255,255/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param spring8Min6 caption = "Color Range 6 Low" default = rgb(86/255,0/255,110/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param spring8Max7 caption = "Color Range 7 High" default = rgb(189/255,246/255,255/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param spring8Min7 caption = "Color Range 7 Low" default = rgb(0/255,51/255,54/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param spring8Max8 caption = "Color Range 8 High" default = rgb(255/255,181/255,237/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param spring8Min8 caption = "Color Range 8 Low" default = rgb(92/255,0/255,31/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Summer8Map( KCC_ColorMapBase ) { ; Class for defining the preset Summer 8 color map. ;

; This class defines the Summer 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Summer8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @summer8Max1, colorMap[0,1] = @summer8Min1 colorMap[1,0] = @summer8Max2, colorMap[1,1] = @summer8Min2 colorMap[2,0] = @summer8Max3, colorMap[2,1] = @summer8Min3 colorMap[3,0] = @summer8Max4, colorMap[3,1] = @summer8Min4 colorMap[4,0] = @summer8Max5, colorMap[4,1] = @summer8Min5 colorMap[5,0] = @summer8Max6, colorMap[5,1] = @summer8Min6 colorMap[6,0] = @summer8Max7, colorMap[6,1] = @summer8Min7 colorMap[7,0] = @summer8Max8, colorMap[7,1] = @summer8Min8 colorRanges = @colorRanges endfunc private: default: title = "Summer 8 Map" int param v_KCC_Summer8Map caption = "Version (KCC_Summer8Map)" default = 100 hint = "This version parameter is used to detect when a change has been \ made to the formula that is incompatible with the previous version. \ When that happens, this field will reflect the old version number to \ alert you to the fact that an alternate rendering is being used." visible = @v_KCC_Summer8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Summer 8 ;-------------------------------------------------------------------- heading caption = " Summer 8 Map Settings" visible = (@customize) endheading color param summer8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param summer8Min1 caption = "Color Range 1 Low" default = rgb(64/255,32/255,0/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param summer8Max2 caption = "Color Range 2 High" default = rgb(255/255,64/255,64/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param summer8Min2 caption = "Color Range 2 Low" default = rgb(64/255,0/255,0/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param summer8Max3 caption = "Color Range 3 High" default = rgb(0/255,255/255,101/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param summer8Min3 caption = "Color Range 3 Low" default = rgb(0/255,62/255,22/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param summer8Max4 caption = "Color Range 4 High" default = rgb(64/255,255/255,255/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param summer8Min4 caption = "Color Range 4 Low" default = rgb(0/255,0/255,64/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param summer8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,0/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param summer8Min5 caption = "Color Range 5 Low" default = rgb(64/255,32/255,0/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param summer8Max6 caption = "Color Range 6 High" default = rgb(255/255,64/255,64/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param summer8Min6 caption = "Color Range 6 Low" default = rgb(64/255,0/255,0/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param summer8Max7 caption = "Color Range 7 High" default = rgb(0/255,255/255,101/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param summer8Min7 caption = "Color Range 7 Low" default = rgb(0/255,62/255,22/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param summer8Max8 caption = "Color Range 8 High" default = rgb(64/255,255/255,255/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param summer8Min8 caption = "Color Range 8 Low" default = rgb(0/255,0/255,64/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam } class KCC_Winter8Map( KCC_ColorMapBase ) { ; Class for defining the preset Winter 8 color map. ;

; This class defines the Winter 8 color map and allows the user to ; customize any of the ranges as desired. ;

; For an example of what this map looks like, ; click here. ; public: import "common.ulb" ; Constructor func KCC_Winter8Map( Generic pparent ) KCC_ColorMapBase( pparent ) ; Created by Toby Marshall. colorMap[0,0] = @winter8Max1, colorMap[0,1] = @winter8Min1 colorMap[1,0] = @winter8Max2, colorMap[1,1] = @winter8Min2 colorMap[2,0] = @winter8Max3, colorMap[2,1] = @winter8Min3 colorMap[3,0] = @winter8Max4, colorMap[3,1] = @winter8Min4 colorMap[4,0] = @winter8Max5, colorMap[4,1] = @winter8Min5 colorMap[5,0] = @winter8Max6, colorMap[5,1] = @winter8Min6 colorMap[6,0] = @winter8Max7, colorMap[6,1] = @winter8Min7 colorMap[7,0] = @winter8Max8, colorMap[7,1] = @winter8Min8 colorRanges = @colorRanges endfunc private: default: title = "Winter 8 Map" int param v_KCC_Winter8Map caption = "Version (KCC_Winter8Map)" default = 100 visible = @v_KCC_Winter8Map < 100 endparam ;-------------------------------------------------------------------- ; Color Defaults for Winter 8 ;-------------------------------------------------------------------- heading caption = " Winter 8 Map Settings" visible = (@customize) endheading color param winter8Max1 caption = "Color Range 1 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #1." visible = (@customize) endparam color param winter8Min1 caption = "Color Range 1 Low" default = rgb(65/255,65/255,87/255) hint = "Specifies the color at the low end of Range #1." visible = (@customize) endparam color param winter8Max2 caption = "Color Range 2 High" default = rgb(163/255,186/255,209/255) hint = "Specifies the color at the high end of Range #2." visible = (@customize) endparam color param winter8Min2 caption = "Color Range 2 Low" default = rgb(35/255,35/255,61/255) hint = "Specifies the color at the low end of Range #2." visible = (@customize) endparam color param winter8Max3 caption = "Color Range 3 High" default = rgb(173/255,166/255,157/255) hint = "Specifies the color at the high end of Range #3." visible = (@customize) endparam color param winter8Min3 caption = "Color Range 3 Low" default = rgb(78/255,65/255,52/255) hint = "Specifies the color at the low end of Range #3." visible = (@customize) endparam color param winter8Max4 caption = "Color Range 4 High" default = rgb(113/255,118/255,140/255) hint = "Specifies the color at the high end of Range #4." visible = (@customize) endparam color param winter8Min4 caption = "Color Range 4 Low" default = rgb(20/255,32/255,68/255) hint = "Specifies the color at the low end of Range #4." visible = (@customize) endparam color param winter8Max5 caption = "Color Range 5 High" default = rgb(255/255,255/255,255/255) hint = "Specifies the color at the high end of Range #5." visible = (@customize) endparam color param winter8Min5 caption = "Color Range 5 Low" default = rgb(65/255,65/255,87/255) hint = "Specifies the color at the low end of Range #5." visible = (@customize) endparam color param winter8Max6 caption = "Color Range 6 High" default = rgb(163/255,186/255,209/255) hint = "Specifies the color at the high end of Range #6." visible = (@customize) endparam color param winter8Min6 caption = "Color Range 6 Low" default = rgb(35/255,35/255,61/255) hint = "Specifies the color at the low end of Range #6." visible = (@customize) endparam color param winter8Max7 caption = "Color Range 7 High" default = rgb(173/255,166/255,157/255) hint = "Specifies the color at the high end of Range #7." visible = (@customize) endparam color param winter8Min7 caption = "Color Range 7 Low" default = rgb(78/255,65/255,52/255) hint = "Specifies the color at the low end of Range #7." visible = (@customize) endparam color param winter8Max8 caption = "Color Range 8 High" default = rgb(113/255,118/255,140/255) hint = "Specifies the color at the high end of Range #8." visible = (@customize) endparam color param winter8Min8 caption = "Color Range 8 Low" default = rgb(20/255,32/255,68/255) hint = "Specifies the color at the low end of Range #8." visible = (@customize) endparam }