Salome HOME
buildInnerBoundaryAlongM1Group: bug fix for singular point in 3D
[tools/medcoupling.git] / src / MEDCoupling / MEDCouplingNatureOfField.cxx
index 818614ba0961dd6275e24fe345b0f1efd1c1332b..d3702d0bff1dc8e7970777bea7a08495e3422ead 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include "MEDCouplingNatureOfField.hxx"
 
 #include <algorithm>
+#include <sstream>
 
-namespace ParaMEDMEM
+namespace MEDCoupling
 {
   const char *MEDCouplingNatureOfField::REPR_OF_NATUREOFFIELD[NB_OF_POSSIBILITIES]=
-    { "NoNature",
-      "ConservativeVolumic",
-      "Integral",
-      "IntegralGlobConstraint",
-      "RevIntegral"};
-  
+  { "NoNature",
+    "IntensiveMaximum",
+    "ExtensiveMaximum",
+    "ExtensiveConservation",
+    "IntensiveConservation"};
+
   const int MEDCouplingNatureOfField::POS_OF_NATUREOFFIELD[NB_OF_POSSIBILITIES]={17,26,32,35,37};
 
-  const char *MEDCouplingNatureOfField::getRepr(NatureOfField nat) throw(INTERP_KERNEL::Exception)
+  const char *MEDCouplingNatureOfField::GetRepr(NatureOfField nat)
   {
     const int *pos=std::find(POS_OF_NATUREOFFIELD,POS_OF_NATUREOFFIELD+NB_OF_POSSIBILITIES,(int)nat);
     if(pos==POS_OF_NATUREOFFIELD+NB_OF_POSSIBILITIES)
-      throw INTERP_KERNEL::Exception("MEDCouplingNatureOfField::getRepr : Unrecognized nature of field !");
+      {
+        std::ostringstream oss; oss << "MEDCouplingNatureOfField::getRepr : Unrecognized nature of field ! ";
+        oss << GetAllPossibilitiesStr() << " !";
+        throw INTERP_KERNEL::Exception(oss.str().c_str());
+      }
     std::size_t pos2=std::distance(POS_OF_NATUREOFFIELD,pos);
     return REPR_OF_NATUREOFFIELD[pos2];
   }
+
+  std::string MEDCouplingNatureOfField::GetReprNoThrow(NatureOfField nat)
+  {
+    const int *pos=std::find(POS_OF_NATUREOFFIELD,POS_OF_NATUREOFFIELD+NB_OF_POSSIBILITIES,(int)nat);
+    if(pos==POS_OF_NATUREOFFIELD+NB_OF_POSSIBILITIES)
+      return std::string("Unrecognized nature of field !");
+    std::size_t pos2=std::distance(POS_OF_NATUREOFFIELD,pos);
+    return std::string(REPR_OF_NATUREOFFIELD[pos2]);
+  }
+
+  std::string MEDCouplingNatureOfField::GetAllPossibilitiesStr()
+  {
+    std::ostringstream oss; oss << "Possibilities are : ";
+    for(int i=0;i<NB_OF_POSSIBILITIES;i++)
+      {
+        oss << REPR_OF_NATUREOFFIELD[i] << "(value=" << POS_OF_NATUREOFFIELD[i] << ")";
+        if(i!=NB_OF_POSSIBILITIES-1)
+          oss << ", ";
+      }
+    return oss.str();
+  }
 }