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