class DMJ_TrapShapeHeart1(common.ulb:TrapShape) {
public:
import "common.ulb"
func DMJ_TrapShapeHeart1(Generic pparent)
TrapShape.TrapShape(pparent)
endfunc
float func Iterate(complex pz)
TrapShape.Iterate(pz)
complex r = real(pz) + flip(abs(imag(pz)))
r = r * ((0,1) ^ (@p_sharpness/90.0)) * 3 / @p_separation
return abs(real(r) - sqr(imag(r)) + 3)
endfunc
default:
title = "Heart 1"
int param v_dmj_trapshapeheart1
caption = "Version (DMJ_TrapShapeHeart1)"
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_dmj_trapshapeheart1 < 100
endparam
float param p_sharpness
caption = "Sharpness"
default = 45.0
hint = "Sets the angle of the two halves towards each other, in degrees. Decreasing this value will make the heart shape narrower and more 'pointy'."
endparam
float param p_separation
caption = "Separation"
default = 1.0
hint = "Sets how far apart the two halves are. Larger values will result in a larger heart shape."
endparam
}