Salome HOME
Warning hunting
[modules/med.git] / src / MEDLoader / SauvMedConvertor.hxx
index 4e64f00c9241f03cbec4b844becda3369c9efa39..50bcc36047901ed5a9df06dd4caeacc3df80e6b4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2013  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
@@ -47,7 +47,7 @@ namespace ParaMEDMEM
 
 namespace SauvUtilities
 {
-  class IntermediateMED;
+  struct IntermediateMED;
 
   // ==============================================================================
   typedef int                TID;  // an ID countered from 1
@@ -126,11 +126,11 @@ namespace SauvUtilities
 
       void setData( int nb_comp, Group* supp )
       { _support = supp; _comp_names.resize(nb_comp); _nb_gauss.resize(nb_comp,1); }
-      int nbComponents() const { return _comp_names.size(); }
+      int  nbComponents() const { return _comp_names.size(); }
       std::string & compName( int i_comp ) { return _comp_names[ i_comp ]; }
-      bool isValidNbGauss() const { return *std::max_element( _nb_gauss.begin(), _nb_gauss.end() ) ==
+      bool isSameNbGauss() const { return *std::max_element( _nb_gauss.begin(), _nb_gauss.end() ) ==
           *std::min_element( _nb_gauss.begin(), _nb_gauss.end() ); }
-      int nbGauss() const { return _nb_gauss[0] ? _nb_gauss[0] : 1; }
+      int  nbGauss() const { return _nb_gauss[0] ? _nb_gauss[0] : 1; }
       bool hasGauss() const { return nbGauss() > 1; }
     };
     // ----------------------------------------------------------------------------
@@ -155,7 +155,7 @@ namespace SauvUtilities
     bool hasSameComponentsBySupport() const;
 
     bool isMultiTimeStamps() const;
-    bool isMedCompatible() const;
+    bool isMedCompatible(bool& sameNbGauss) const;
     ParaMEDMEM::TypeOfField getMedType( const int iSub=0 ) const;
     ParaMEDMEM::TypeOfTimeDiscretization getMedTimeDisc() const;
     int getNbTuples( const int iSub=0 ) const;
@@ -163,6 +163,7 @@ namespace SauvUtilities
     int getNbGauss( const int iSub=0 ) const;
     const Group* getSupport( const int iSub=0 ) const;
     int setValues( double * valPtr, const int iSub, const int elemShift=0 ) const;
+    void splitSubWithDiffNbGauss();
 
     //virtual void dump(std::ostream&) const;
     //virtual ~DoubleField() {}
@@ -273,7 +274,7 @@ namespace SauvUtilities
                 ParaMEDMEM::MEDFileFields*   medFields,
                 ParaMEDMEM::MEDFileUMesh*    mesh,
                 const int                    iSub=0);
-    void checkDataAvailability() const throw(INTERP_KERNEL::Exception);
+    void checkDataAvailability() const;
     void setGroupLongNames();
     void setFieldLongNames(std::set< std::string >& usedNames);
     void makeFieldNewName(std::set< std::string >&    usedNames,