class MT_TrapShapeRhodonea(common.ulb:TrapShape) {
;
; Mark Townsend, May 2008
;
public:
float func Iterate(complex pz)
TrapShape.Iterate(pz)
float theta = atan2(pz)
float radius = @a * sin(@n * theta)
if @trap_mode == "Radius"
return abs(cabs(pz) - radius)
else
complex p = radius * sin(theta) + flip(radius * cos(theta))
m_LastZ = p
return cabs(pz - p)
endif
endfunc
default:
title = "Rhodonea"
float param a
caption = "Curve radius"
default = 1
endparam
float param n
caption = "N"
default = 4
endparam
param trap_mode
caption = "Mode"
enum = "Radius" "Point"
endparam
}