Back to index

salome-med  6.5.0
IntersectorCU3D.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2009-2012  OPEN CASCADE
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00016 //
00017 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00018 //
00019 
00020 // File      : IntersectorCU3D.hxx
00021 // Created   : Thu Dec 17 14:10:00 2009
00022 // Author    : Edward AGAPOV (eap)
00023 //
00024 #ifndef __IntersectorCU3D_HXX__
00025 #define __IntersectorCU3D_HXX__
00026 
00027 #include "IntersectorCU.hxx"
00028 #include "SplitterTetra.hxx"
00029 
00030 namespace INTERP_KERNEL
00031 {
00032   class _Cartesian3D2UnstructHexMesh;
00033 
00034   template<class MyCMeshType, class MyUMeshType, class MyMatrix >
00035   class IntersectorCU3D : public IntersectorCU<MyCMeshType,MyUMeshType,MyMatrix,IntersectorCU3D<MyCMeshType,MyUMeshType,MyMatrix> >
00036   {
00037   public:
00038     typedef typename MyUMeshType::MyConnType UConnType;
00039     typedef typename MyCMeshType::MyConnType CConnType;
00040   public:
00041     IntersectorCU3D(const MyCMeshType& meshS, const MyUMeshType& meshT, SplittingPolicy splitting_policy);
00042     ~IntersectorCU3D();
00043     double intersectGeometry(UConnType icellT, const std::vector<CConnType>& icellC);
00044 
00045   private:
00046 
00047     typedef SplitterTetra2<MyUMeshType, _Cartesian3D2UnstructHexMesh > TSplitter;
00048     typedef SplitterTetra <_Cartesian3D2UnstructHexMesh >              TTetra;
00049     _Cartesian3D2UnstructHexMesh* _uHexMesh;
00050     TSplitter*                    _split;
00051   };
00052 }
00053 
00054 
00055 #endif