| 1 |
greg |
1.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); |