| 1 | { RCSid $Id$ } | 
| 2 | { | 
| 3 | Unit cylinder functions (centered on Z-axis) | 
| 4 | for testing | 
| 5 | } | 
| 6 | posAngle(a):if(a,a,a+2*PI); | 
| 7 |  | 
| 8 | Cx = posAngle(atan2(Py,Px)); | 
| 9 | Cy = Pz; | 
| 10 | Rx(n) = n/(2*PI) * Cx; | 
| 11 | Ry(n) = n/(2*PI) * Cy; | 
| 12 | Sx(n) = .5*(Rx(n) - Ry(n)); | 
| 13 | Sy(n) = .5*(Rx(n) + Ry(n)); | 
| 14 |  | 
| 15 | { Checkerboard pattern } | 
| 16 | Check(n) = xor(frac(Rx(n))-.5, frac(Ry(n))-.5); | 
| 17 |  | 
| 18 | { Pyramid texture } | 
| 19 | Pyramid_dxy(n) = if(frac(Rx(2*n))-.5, .2, -.2); | 
| 20 | Pyramid_dx(n) = -Py*Pyramid_dxy(n); | 
| 21 | Pyramid_dy(n) = Px*Pyramid_dxy(n); | 
| 22 | Pyramid_dz(n) = if(frac(Ry(2*n))-.5, .2, -.2); |