Files Classes Functions Hierarchy
00001 #include <pointsurface.h> 00002 00003 00004 00005 void pointsurfaceSphere::operator() 00006 ( 00007 bool & accept, 00008 double & x, 00009 double & y, 00010 double & z, 00011 doublec u, 00012 doublec v, 00013 doublec w 00014 ) 00015 { 00016 double u2(u*2.0-1.0); 00017 double v2(v*2.0-1.0); 00018 double w2(w*2.0-1.0); 00019 00020 // Poor zero test but its a quick function. 00021 double dotprod = u2*u2+v2*v2+w2*w2; 00022 if ( (dotprod>1.0) || (dotprod==0.0) ) 00023 { 00024 accept=false; 00025 return; 00026 } 00027 00028 // Assume non-zero u,v,w. 00029 double t = (double)1.0 / sqrt(dotprod); 00030 00031 x=u2*t; 00032 y=v2*t; 00033 z=w2*t; 00034 00035 accept=true; 00036 } 00037
1.5.8