Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __INTERPOLATIONPLANAR_HXX__
00021 #define __INTERPOLATIONPLANAR_HXX__
00022
00023 #include "Interpolation.hxx"
00024 #include "PlanarIntersector.hxx"
00025 #include "NormalizedUnstructuredMesh.hxx"
00026 #include "InterpolationOptions.hxx"
00027
00028 namespace INTERP_KERNEL
00029 {
00030 template<class RealPlanar>
00031 class InterpolationPlanar : public Interpolation< InterpolationPlanar<RealPlanar> >
00032 {
00033 private:
00034 double _dim_caracteristic;
00035 public:
00036 InterpolationPlanar();
00037 InterpolationPlanar(const InterpolationOptions & io);
00038
00039
00040 void setOptions(double precision, int printLevel,
00041 IntersectionType intersectionType, int orientation=0);
00042
00043
00044 template<class MyMeshType, class MatrixType>
00045 int interpolateMeshes(const MyMeshType& meshS, const MyMeshType& meshT, MatrixType& result, const char *method);
00046 public:
00047 bool doRotate() const { return asLeafInterpPlanar().doRotate(); }
00048 double medianPlane() const { return asLeafInterpPlanar().medianPlane(); }
00049 template<class MyMeshType, class MyMatrixRow>
00050 void performAdjustmentOfBB(PlanarIntersector<MyMeshType,MyMatrixRow>* intersector, std::vector<double>& bbox) const
00051 { return asLeafInterpPlanar().performAdjustmentOfBB(intersector,bbox); }
00052 protected:
00053 RealPlanar& asLeafInterpPlanar() { return static_cast<RealPlanar&>(*this); }
00054 const RealPlanar& asLeafInterpPlanar() const { return static_cast< const RealPlanar& >(*this); }
00055 };
00056 }
00057
00058 #endif