Salome HOME
Structure element inside Gauss Points management
[tools/medcoupling.git] / src / MEDLoader / MEDFileBlowStrEltUp.hxx
index 6930f352c17e86091d0a0a3d58a59e2886fbacd8..2f574399654e2666145fa40c384e2101da220acf 100644 (file)
@@ -35,8 +35,19 @@ namespace MEDCoupling
   {
   public:
     MEDFileBlowStrEltUp(const MEDFileFields *fsOnlyOnSE, const MEDFileMeshes *ms, const MEDFileStructureElements *ses);
+    static void DealWithSE(MEDFileFields *fs, MEDFileMeshes *ms, const MEDFileStructureElements *ses);
+    void generate(MEDFileMeshes *msOut, MEDFileFields *allZeOutFields);
   private:
-    std::vector< MCAuto<MEDFileFields> > _elts;
+    MCAuto<MEDFileEltStruct4Mesh> dealWithSEInMesh(const std::string& seName, MEDFileUMesh *mesh, MCAuto<MEDFileUMesh>& mOut, MCAuto<MEDFileFields>& fsOut) const;
+    MCAuto<MEDFileEltStruct4Mesh> dealWithMEDBALLInMesh(const MEDFileUMesh *mesh, MCAuto<MEDFileUMesh>& mOut, MCAuto<MEDFileFields>& fsOut) const;
+    void dealWithSEInFields(const std::string& seName, const MEDFileFields *fs, const MEDFileEltStruct4Mesh *zeStr, const MEDFileFields *varAtt, MEDFileFields *zeOutputs) const;
+    void dealWithMEDBALLSInFields(const MEDFileFields *fs, const MEDFileEltStruct4Mesh *zeStr, const MEDFileFields *varAtt, MEDFileFields *zeOutputs) const;
+    static std::string BuildNewMeshName(const std::string& meshName, const std::string& seName);
+    static std::string BuildVarAttName(std::size_t iPart, std::size_t totINbParts, std::size_t jPart, std::size_t totJNbParts, const std::string& name);
+  public:
+    static const char MED_BALL_STR[];
+  private:
+    std::vector< MCAuto<MEDFileFields> > _elts;// split by pair(meshName,SEName)
     MCConstAuto<MEDFileMeshes> _ms;
     MCConstAuto<MEDFileStructureElements> _ses;
   };