NB. roman.ijs   Steiner's Roman surface

roman=: 3 : 0
u=. steps 0 1p1 25
v=. steps 0 1p1 15
x=. (*: sin u) */ sin 2*v
y=. (sin 2*u) */ sin v
z=. (sin 2*u) */ cos v
1.25 * makexyz x;y;z
)

ROTXYZ=: 315 15 40
COLOR=: 0.75 1 0.75
CLEARCOLOR=: SKYBLUE
TDATA=: roman''
TCLR=: (0 0 0 ,: 1 1 1) hue fit01 2{"1 TDATA
TPATTERN=: 128 128$, RGBA WHITE,LIMEGREEN,YELLOW,:WHITE
TPATPOS=: */~ int01 <:#TDATA
SHOWPATTERN=: 0

demo=: 3 : 0
stdlistlight''
if. 0=SHOWPATTERN do.
  2 drawsurface makenewlist TDATA
else.
  gentexture2D TPATTERN
  2 drawsurface makenewlist TDATA;TCLR;TPATPOS
end.
)
