Salome HOME
Merge from V6_main 01/04/2013
[modules/med.git] / src / MEDSPLITTER / MEDSPLITTER_FaceModel.hxx
1 // Copyright (C) 2007-2013  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef MEDSPLITTER_FACEMODEL_HXX_
21 #define MEDSPLITTER_FACEMODEL_HXX_
22
23 namespace MEDMEM
24 {
25   class CELLMODEL;
26 }
27
28 namespace MEDSPLITTER
29 {
30
31   class MEDSPLITTER_FaceModel
32   {
33   public:
34     MEDSPLITTER_FaceModel():_conn(0){};
35     virtual ~MEDSPLITTER_FaceModel() {if (_conn!=0) delete[] _conn;}
36     MED_EN::medGeometryElement getType() const {return _type;}
37     void setType(MED_EN::medGeometryElement type) {_type=type;}
38     void setNbNodes(int nbnodes){_conn=new int[nbnodes];}
39     int& operator[](int i){return *(_conn+i);}
40     int getGlobal(){return _global;}
41     void setGlobal(int i){_global=i;}
42
43     // Makes face common for two given cells (implemented in MEDSPLITTER_MESHCollection.cxx)
44     static MEDSPLITTER_FaceModel* getCommonFace(const int*               nodes1,
45                                                 const int*               nodes1_local,
46                                                 const MEDMEM::CELLMODEL& celltype1,
47                                                 const int*               nodes2,
48                                                 int                      nb_nodes2,
49                                                 int                      global_id);
50
51   private:
52     int _nbnodes;
53     int* _conn;
54     MED_EN::medGeometryElement _type;
55     int _global;
56   };
57
58 }
59
60 #endif /*MEDSPLITTER_FACEMODEL_HXX_*/