proj home

Files   Classes   Functions   Hierarchy  

vectorreadin.h

Go to the documentation of this file.
00001 #ifndef VECTORREADIN_H
00002 #define VECTORREADIN_H
00003 
00004 #include <cassert>
00005 #include <vector>
00006 using namespace std;
00007 
00008 #include <typedefs.h>
00009 
00010 
00012 template<class PT, class T >
00013 void vectorreadingD2
00014 ( 
00015   vector< PT > & v,
00016   T const * abeg,
00017   T const * aend
00018 )
00019 {
00020   assert((aend-abeg)%2==0);
00021 
00022   uint n = (aend-abeg)/2;
00023   vector< PT > v2(n);
00024   for (uint i=0; i<n; ++i)
00025   {
00026     v2[i] = PT(*abeg,*(abeg+1));
00027     ++abeg; ++abeg; 
00028   }
00029 
00030   v = v2;
00031 }
00032 
00033 
00035 template<class PT, class T >
00036 void vectorreadingD2
00037 (
00038   vector< PT > & v,
00039   T const * abeg,
00040   uintc N
00041 )
00042 {
00043   T const * aend = abeg + N*2;
00044   vectorreadingD2(v,abeg,aend);
00045 }
00046 
00047 
00048 template< typename PT >
00049 class vectorreadingD2primitive
00050 {
00051 public:
00052 
00053   template< class VEC, class T, class INDX >
00054   void read
00055   (
00056     VEC & v,
00057     T const * abeg,
00058     T const * aend,
00059     INDX i0=0
00060   )
00061   {
00062     assert((aend-abeg)%2==0);
00063     T * i = abeg;
00064   
00065     for ( ; i != aend; ++i)
00066     {
00067       v[i0] = PT(*i,*(i+1));
00068       ++i; ++i;
00069     }
00070   }
00071 };
00072   
00073 
00074 
00075 
00076 
00077 
00079 template<class PT, class T >
00080 void vectorreadingD3
00081 ( 
00082   vector< PT > & v,
00083   T const * abeg,
00084   T const * aend
00085 )
00086 {
00087   assert((aend-abeg)%3==0);
00088 
00089   uint n = (aend-abeg)/3;
00090   vector< PT > v2(n);
00091   for (uint i=0; i<n; ++i)
00092   {
00093     v2[i] = PT(*abeg,*(abeg+1),*(abeg+2));
00094     ++abeg; ++abeg; ++abeg; 
00095   }
00096 
00097   v = v2;
00098 }
00099 
00101 template<class PT, class T >
00102 void vectorreadingD3
00103 (
00104   vector< PT > & v,
00105   T const * abeg,
00106   uintc N
00107 )
00108 {
00109   T const * aend = abeg + N*3;
00110   vectorreadingD3(v,abeg,aend);
00111 }
00112 
00113 
00114 
00115 
00116 #endif
00117 
00118 

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