kcc5
Class KCC_PiriformTrap

Object
  extended by common:Generic
      extended by common:TrapShape
          extended by kcc5:KCC_PlaneCurveTrapBase
              extended by kcc5:KCC_PiriformTrap

class 
KCC_PlaneCurveTrapBase:KCC_PiriformTrap

The Prirform trap.

For an example of what this trap looks like, click here.


Ultra Fractal Source

Toggle UF Source Code Display

 class KCC_PiriformTrap( KCC_PlaneCurveTrapBase ) {
 ; The Prirform trap.
 ; <p>
 ; For an example of what this trap looks like,
 ; <a href="../additional/kcc5/images/Piriform Trap.jpg">click here</a>.
 ;
 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
 }
 


Constructor Summary
KCC_PiriformTrap()
           
KCC_PiriformTrap(Generic pparent)
          constructor
 
Method Summary
 float GetTextureValue()
          Get texture value.
 void Init(complex pz)
          call this before each sequence of values to be trapped
 float Iterate(complex pz)
          call this for each iteration being trapped
 
Methods inherited from class kcc5:KCC_PlaneCurveTrapBase
ApplyRatioAndSize
 
Methods inherited from class common:TrapShape
GetColorChannel, GetTransformedPoint, IterateSilent, SetThreshold
 
Methods inherited from class common:Generic
GetParent
 
Methods inherited from class Object
 

Constructor Detail

KCC_PiriformTrap

public KCC_PiriformTrap(Generic pparent)
constructor


KCC_PiriformTrap

public KCC_PiriformTrap()
Method Detail

Init

public void Init(complex pz)
call this before each sequence of values to be trapped

Overrides:
Init in class KCC_PlaneCurveTrapBase

Iterate

public float Iterate(complex pz)
call this for each iteration being trapped

Overrides:
Iterate in class KCC_PlaneCurveTrapBase

GetTextureValue

public float GetTextureValue()
Description copied from class: TrapShape
Get texture value.

Ordinarily, a trap shape does not have a native texture (it is flat). Some formulas may pair trap shapes with trap textures, and may need more information about trap textures when trap shapes are nested via TrapShapeMerge. This function provides support for accessing texture information.

Overrides:
GetTextureValue in class KCC_PlaneCurveTrapBase
Returns:
the texture value for the last point used (i.e. call GetTextureValue() after calling Iterate(), not before)