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