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); |