proj home

Files   Classes   Functions   Hierarchy  

planepointsurface.cpp

Go to the documentation of this file.
00001 #include <planepointsurface.h>
00002 #include <point.h>
00003 #include <zero.h>
00004 
00005 void planepointsurface::operator()
00006 (
00007   bool & accept,
00008   double & x,
00009   double & y,
00010   double & z,
00011   doublec u,
00012   doublec v
00013 ) 
00014 {
00015   ++state;
00016   state %=3;
00017 
00018   doublec u2 = (uoffset + u)*uscale;
00019   doublec v2 = (voffset + v)*vscale;
00020 
00021   point3<double> & nml(pln.nml);
00022 
00023   accept=false;
00024    
00025   switch (state)
00026   {
00027     case 0:
00028       if (nml.z*nml.z<zero<double>::val)
00029         return;
00030 
00031       x = u2;
00032       y = v2;
00033       z = (pln.d0-u2*nml.x-v2*nml.y)/nml.z;
00034       accept=true;
00035       break;
00036 
00037     case 1:
00038       if (nml.x*nml.x<zero<double>::val)
00039         return;
00040 
00041       y = u2;
00042       z = v2;
00043       x = (pln.d0-u2*nml.y-v2*nml.z)/nml.x;
00044       accept=true;
00045       break;
00046 
00047     case 2:
00048       if (nml.y*nml.y<zero<double>::val)
00049         return;
00050 
00051       x = u2;
00052       z = v2;
00053       y = (pln.d0-u2*nml.x-v2*nml.z)/nml.y;
00054       accept=true;
00055       break;
00056   }
00057 }
00058 
00059 

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