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 __POINTLOCATORINTERSECTOR_HXX__
00021 #define __POINTLOCATORINTERSECTOR_HXX__
00022
00023 #include "PlanarIntersectorP0P0.hxx"
00024 #include "PlanarIntersectorP0P1.hxx"
00025 #include "PlanarIntersectorP1P0.hxx"
00026 #include "PlanarIntersectorP1P1.hxx"
00027 #include "PlanarIntersectorP1P0Bary.hxx"
00028
00029 namespace INTERP_KERNEL
00030 {
00031 class QuadraticPolygon;
00032
00033 template<class MyMeshType, class MyMatrix, template <class MeshType, class TheMatrix, class ThisIntersector> class InterpType>
00034 class PointLocator2DIntersector : public InterpType<MyMeshType,MyMatrix,PointLocator2DIntersector<MyMeshType,MyMatrix,InterpType> >
00035 {
00036 public:
00037 static const int SPACEDIM=MyMeshType::MY_SPACEDIM;
00038 static const int MESHDIM=MyMeshType::MY_MESHDIM;
00039 typedef typename MyMeshType::MyConnType ConnType;
00040 static const NumberingPolicy numPol=MyMeshType::My_numPol;
00041 public:
00042 PointLocator2DIntersector(const MyMeshType& meshT, const MyMeshType& meshS,
00043 double dimCaracteristic, double md3DSurf, double medianPlane, double precision, int orientation);
00044 double intersectGeometry(ConnType icellT, ConnType icellS, ConnType nbNodesT, ConnType nbNodesS);
00045 double intersectGeometryWithQuadrangle(const double *quadrangle, const std::vector<double>& sourceCoords, bool isSourceQuad);
00046 double intersectGeometryGeneral(const std::vector<double>& targetCoords, const std::vector<double>& sourceCoords);
00047 double intersectGeoBary(const std::vector<double>& targetCell, bool targetCellQuadratic, const double *sourceCell, std::vector<double>& res);
00048 private:
00049 QuadraticPolygon *buildPolygonFrom(const std::vector<double>& coords, NormalizedCellType type);
00050 QuadraticPolygon *buildPolygonAFrom(ConnType cell, int nbOfPoints, NormalizedCellType type);
00051 QuadraticPolygon *buildPolygonBFrom(ConnType cell, int nbOfPoints, NormalizedCellType type);
00052 };
00053 }
00054
00055 #endif