![]() |
![]() |
00001 #ifndef Interpolation_LinearGridInterpolator3D_h 00002 #define Interpolation_LinearGridInterpolator3D_h 00003 00013 #include "DataFormats/GeometryVector/interface/Basic3DVector.h" 00014 #include "MagneticField/Interpolation/src/Grid1D.h" 00015 #include "MagneticField/Interpolation/src/Grid3D.h" 00016 #include "DataFormats/GeometryVector/interface/Basic3DVector.h" 00017 00018 #ifdef DEBUG_LinearGridInterpolator3D 00019 #include <iostream> 00020 #include "MagneticField/Interpolation/src/InterpolationDebug.h" 00021 #endif 00022 00023 class LinearGridInterpolator3D { 00024 public: 00025 00026 typedef Grid3D::ValueType ValueType; 00027 typedef Grid3D::Scalar Scalar; 00028 typedef ValueType ReturnType; 00029 00030 LinearGridInterpolator3D( const Grid3D& g) : 00031 grid(g), grida(g.grida()), gridb(g.gridb()), gridc(g.gridc()) {} 00032 00033 void throwGridInterpolator3DException(void); 00034 00035 ReturnType interpolate( Scalar a, Scalar b, Scalar c); 00036 // Value operator()( Scalar a, Scalar b, Scalar c) {return interpolate(a,b,c);} 00037 00038 private: 00039 const Grid3D& grid; 00040 const Grid1D& grida; 00041 const Grid1D& gridb; 00042 const Grid1D& gridc; 00043 00044 }; 00045 00046 #endif