proj home

Files   Classes   Functions   Hierarchy  

pointsurface.cpp

Go to the documentation of this file.
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 

Generated on Fri Mar 4 00:49:27 2011 for Chelton Evans Source by  doxygen 1.5.8