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 __PlanarIntersectorP1P0Bary_HXX__
00021 #define __PlanarIntersectorP1P0Bary_HXX__
00022
00023 #include "PlanarIntersector.hxx"
00024
00025 namespace INTERP_KERNEL
00026 {
00027 template<class MyMeshType, class MyMatrix, class ConcreteP1P0Intersector>
00028 class PlanarIntersectorP1P0Bary : 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 PlanarIntersectorP1P0Bary(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;
00044 double intersectGeoBary(const std::vector<double>& targetCell,
00045 bool targetCellQuadratic,
00046 const double * sourceTria,
00047 std::vector<double>& res)
00048 { return asLeaf().intersectGeoBary(targetCell,targetCellQuadratic,sourceTria,res); }
00049 protected:
00050 ConcreteP1P0Intersector& asLeaf() { return static_cast<ConcreteP1P0Intersector&>(*this); }
00051 };
00052 }
00053
00054 #endif