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 __PLANARINTERSECTORP1P1_HXX__
00021 #define __PLANARINTERSECTORP1P1_HXX__
00022
00023 #include "PlanarIntersector.hxx"
00024
00025 namespace INTERP_KERNEL
00026 {
00027 template<class MyMeshType, class MyMatrix, class ConcreteP1P1Intersector>
00028 class PlanarIntersectorP1P1 : public PlanarIntersector<MyMeshType,MyMatrix>
00029 {
00030 public:
00031 static const int SPACEDIM=MyMeshType::MY_SPACEDIM;
00032 static const int MESHDIM=MyMeshType::MY_MESHDIM;
00033 typedef typename MyMeshType::MyConnType ConnType;
00034 static const NumberingPolicy numPol=MyMeshType::My_numPol;
00035 protected:
00036 PlanarIntersectorP1P1(const MyMeshType& meshT, const MyMeshType& meshS, double dimCaracteristic, double precision, double md3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel);
00037 public:
00038 void intersectCells(ConnType icellT, const std::vector<ConnType>& icellsS, MyMatrix& res);
00039 int getNumberOfRowsOfResMatrix() const;
00040 int getNumberOfColsOfResMatrix() const;
00041
00042 double intersectGeometryGeneral(const std::vector<double>& targetCoords, const std::vector<double>& sourceCoords) { return asLeaf().intersectGeometryGeneral(targetCoords,sourceCoords); }
00043 protected:
00044 ConcreteP1P1Intersector& asLeaf() { return static_cast<ConcreteP1P1Intersector&>(*this); }
00045 };
00046 }
00047
00048 #endif