Salome HOME
Update copyrights 2014.
[modules/med.git] / src / MEDLoader / MEDFileMeshReadSelector.cxx
1 // Copyright (C) 2007-2014  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, or (at your option) any later version.
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 // Author : Anthony Geay (CEA/DEN)
20
21 #include "MEDFileMeshReadSelector.hxx"
22
23 using namespace ParaMEDMEM;
24
25 MEDFileMeshReadSelector::MEDFileMeshReadSelector():_code(0xFFFFFFFF)
26 {
27 }
28
29 MEDFileMeshReadSelector::MEDFileMeshReadSelector(unsigned int code):_code(code)
30 {
31 }
32
33 unsigned int MEDFileMeshReadSelector::getCode() const
34 {
35   return _code;
36 }
37
38 void MEDFileMeshReadSelector::setCode(unsigned int newCode)
39 {
40   _code=newCode;
41 }
42
43 bool MEDFileMeshReadSelector::isCellFamilyFieldReading() const
44 {
45   return _code & 0x00000001;
46 }
47
48 bool MEDFileMeshReadSelector::isNodeFamilyFieldReading() const
49 {
50   return _code & 0x00000002;
51 }
52
53 bool MEDFileMeshReadSelector::isCellNameFieldReading() const
54 {
55   return _code & 0x00000004;
56 }
57
58 bool MEDFileMeshReadSelector::isNodeNameFieldReading() const
59 {
60   return _code & 0x00000008;
61 }
62
63 bool MEDFileMeshReadSelector::isCellNumFieldReading() const
64 {
65   return _code & 0x00000010;
66 }
67
68 bool MEDFileMeshReadSelector::isNodeNumFieldReading() const
69 {
70   return _code & 0x00000020;
71 }
72
73 void MEDFileMeshReadSelector::setCellFamilyFieldReading(bool b)
74 {
75   unsigned int code(_code & 0xFFFFFFFE);
76   unsigned int b2=b?1:0;
77   //b2<<=0;
78   code+=b2;
79   _code=code;
80 }
81
82 void MEDFileMeshReadSelector::setNodeFamilyFieldReading(bool b)
83 {
84   unsigned int code(_code & 0xFFFFFFFD);
85   unsigned int b2=b?1:0;
86   b2<<=1;
87   code+=b2;
88   _code=code;
89 }
90
91 void MEDFileMeshReadSelector::setCellNameFieldReading(bool b)
92 {
93   unsigned int code(_code & 0xFFFFFFFB);
94   unsigned int b2=b?1:0;
95   b2<<=2;
96   code+=b2;
97   _code=code;
98 }
99
100 void MEDFileMeshReadSelector::setNodeNameFieldReading(bool b)
101 {
102   unsigned int code(_code & 0xFFFFFFF7);
103   unsigned int b2=b?1:0;
104   b2<<=3;
105   code+=b2;
106   _code=code;
107 }
108
109 void MEDFileMeshReadSelector::setCellNumFieldReading(bool b)
110 {
111   unsigned int code(_code & 0xFFFFFFEF);
112   unsigned int b2=b?1:0;
113   b2<<=4;
114   code+=b2;
115   _code=code;
116 }
117
118 void MEDFileMeshReadSelector::setNodeNumFieldReading(bool b)
119 {
120   unsigned int code(_code & 0xFFFFFFDF);
121   unsigned int b2=b?1:0;
122   b2<<=5;
123   code+=b2;
124   _code=code;
125 }
126
127 void MEDFileMeshReadSelector::reprAll(std::ostream& str) const
128 {
129   str << "MEDFileMeshReadSelector (code=" << _code << ") : \n";
130   str << "Read family field on cells : " << ReprStatus(isCellFamilyFieldReading()) << std::endl;
131   str << "Read family field on nodes : " << ReprStatus(isNodeFamilyFieldReading()) << std::endl;
132   str << "Read name field on cells : " << ReprStatus(isCellNameFieldReading()) << std::endl;
133   str << "Read name field on nodes : " << ReprStatus(isNodeNameFieldReading()) << std::endl;
134   str << "Read number field on cells : " << ReprStatus(isCellNumFieldReading()) << std::endl;
135   str << "Read number field name on nodes : " << ReprStatus(isNodeNumFieldReading());
136 }
137
138 std::string MEDFileMeshReadSelector::ReprStatus(bool v)
139 {
140   if(v)
141     return std::string("ON");
142   else
143     return std::string("OFF");
144 }
145