ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/superellipsoid.cal
Revision: 1.1
Committed: Sat Dec 7 01:56:28 2013 UTC (10 years, 4 months ago) by greg
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad4R2, rad4R2P1, rad5R3, HEAD
Log Message:
Added superellipsoid surface function

File Contents

# Content
1 { RCSid $Id$ }
2 {
3 Calculate superellipsoid surface
4 using parametric formulation taken
5 from Wikipedia
6
7 12/6/2013 G. Ward
8
9 Input parameters:
10 A - Radius in X-direction
11 B - Radius in Y-direction
12 C - Radius in Z-direction
13 e - 2/r parameter
14 n - 2/t parameter
15
16 Example:
17 gensurf mat name 'x(s,t)' 'y(s,t)' 'z(s,t)' 50 50 \
18 -e 'A:1;B:1.5;C:2;e:.5;n:.7' -f superellipsoid.cal
19 }
20 ap(x,m) : if(x, x^m, if(-x, -(-x^m), 0));
21 fc(w,m) : ap(cos(w),m);
22 fs(w,m) : ap(sin(w),m);
23
24 x(s,t) = A * fc(t*PI-PI/2, n) * fc(s*2*PI-PI, e);
25 y(s,t) = B * fc(t*PI-PI/2, n) * fs(s*2*PI-PI, e);
26 z(s,t) = C * fs(t*PI-PI/2, n);