import static de.grogra.qsm.utils.Library.*; import static de.grogra.qsm.utils.Descriptors.*; module MyShoot(super.length, super.diameter) extends F{{setShader(EGA_6);}} module MyBud(int order, float length) extends Sphere(0.002){{setShader(EGA_3);}} public void update()[ { jumpAllAxis(); } f:F,(f[RTREND]==0) ==> MyShoot(f.length,f.diameter).($[transform]=f[transform])MyBud(f[BO],f.length*0.7); f:F ==> MyShoot(f.length,f.diameter).($[transform]=f[transform]); ] public void grow()[ MyBud(o,l),(o<2) ==> MyShoot(l,l/25) MyBud(o,l*0.7); ]