X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPlugins%2FMEDReader%2FIO%2FMEDFileFieldRepresentationTree.hxx;h=329ff6cb00db0a3d6f88d2b24fa016a474b5942b;hb=bf16d364bb3ff8274d5f535dae5450ba6bc1e47d;hp=0d208c2c2c8de5acfa88c6255b1076696a78cd61;hpb=8916d331bf9f1cc282cef3b3ff6f3710022c698f;p=modules%2Fparavis.git diff --git a/src/Plugins/MEDReader/IO/MEDFileFieldRepresentationTree.hxx b/src/Plugins/MEDReader/IO/MEDFileFieldRepresentationTree.hxx index 0d208c2c..329ff6cb 100644 --- a/src/Plugins/MEDReader/IO/MEDFileFieldRepresentationTree.hxx +++ b/src/Plugins/MEDReader/IO/MEDFileFieldRepresentationTree.hxx @@ -3,7 +3,7 @@ // 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 @@ -23,6 +23,7 @@ #include "MEDFileMesh.hxx" #include "MEDFileField.hxx" +#include "MEDLoaderForPV.h" #include "vtkType.h" @@ -59,7 +60,7 @@ private: mutable std::vector< std::vector< std::pair< vtkQuadratureSchemeDefinition *, unsigned char > > > _defs; }; -class MEDFileFieldRepresentationLeavesArrays : public ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr +class MEDLOADERFORPV_EXPORT MEDFileFieldRepresentationLeavesArrays : public ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr { public: MEDFileFieldRepresentationLeavesArrays(); @@ -67,10 +68,12 @@ public: MEDFileFieldRepresentationLeavesArrays& operator=(const MEDFileFieldRepresentationLeavesArrays& other); int getId() const; void setId(int& id) const; - void feedSIL(vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, const std::string& tsName, const std::string& meshName, const std::string& comSupStr, std::vector& names) const; + void feedSIL(vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, std::vector& names) const; + void computeFullNameInLeaves(const std::string& tsName, const std::string& meshName, const std::string& comSupStr) const; bool getStatus() const; bool setStatus(bool status) const; std::string getZeName() const; + const char *getZeNameC() const; void appendFields(const MEDTimeReq *tr, const ParaMEDMEM::MEDFileFieldGlobsReal *globs, const ParaMEDMEM::MEDMeshMultiLev *mml, const ParaMEDMEM::MEDFileMeshStruct *mst, vtkDataSet *ds) const; void appendELGAIfAny(vtkDataSet *ds) const; public: @@ -89,7 +92,7 @@ private: ELGACmp _elga_cmp; }; -class MEDFileFieldRepresentationLeaves +class MEDLOADERFORPV_EXPORT MEDFileFieldRepresentationLeaves { public: MEDFileFieldRepresentationLeaves(); @@ -101,7 +104,8 @@ public: std::string getMeshName() const; int getNumberOfArrays() const; int getNumberOfTS() const; - void feedSIL(const ParaMEDMEM::MEDFileMeshes *ms, vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, const std::string& tsName, const std::string& meshName, const std::string& compSupStr, std::vector& names) const; + void feedSIL(const ParaMEDMEM::MEDFileMeshes *ms, const std::string& meshName, vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, std::vector& names) const; + void computeFullNameInLeaves(const std::string& tsName, const std::string& meshName, const std::string& comSupStr) const; bool containId(int id) const; bool containZeName(const char *name, int& id) const; bool isActivated() const; @@ -123,16 +127,18 @@ private: mutable vtkDataSet *_cached_ds; }; -class MEDFileFieldRepresentationTree +class MEDLOADERFORPV_EXPORT MEDFileFieldRepresentationTree { public: MEDFileFieldRepresentationTree(); int getNumberOfLeavesArrays() const; void assignIds() const; void activateTheFirst() const; + void computeFullNameInLeaves() const; void feedSIL(vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, std::vector& names) const; std::string feedSILForFamsAndGrps(vtkMutableDirectedGraph* sil, vtkIdType root, vtkVariantArray *edge, std::vector& names) const; std::string getNameOf(int id) const; + const char *getNameOfC(int id) const; bool getStatusOf(int id) const; int getIdHavingZeName(const char *name) const; bool changeStatusOfAndUpdateToHaveCoherentVTKDataSet(int id, bool status) const; @@ -147,6 +153,7 @@ public: void removeEmptyLeaves(); // static methods static bool IsFieldMeshRegardingInfo(const std::vector& compInfos); + static std::string PostProcessFieldName(const std::string& fullFieldName); public: static const char ROOT_OF_GRPS_IN_TREE[]; static const char ROOT_OF_FAM_IDS_IN_TREE[]; @@ -156,6 +163,7 @@ private: const MEDFileFieldRepresentationLeaves& getTheSingleActivated(int& lev0, int& lev1, int& lev2) const; static ParaMEDMEM::MEDFileFields *BuildFieldFromMeshes(const ParaMEDMEM::MEDFileMeshes *ms); static void AppendFieldFromMeshes(const ParaMEDMEM::MEDFileMeshes *ms, ParaMEDMEM::MEDFileFields *ret); + static std::vector SplitFieldNameIntoParts(const std::string& fullFieldName, char sep); private: // 1st : timesteps, 2nd : meshName, 3rd : common support std::vector< std::vector< std::vector< MEDFileFieldRepresentationLeaves > > > _data_structure; @@ -163,7 +171,7 @@ private: ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr _fields; }; -class TimeKeeper +class MEDLOADERFORPV_EXPORT TimeKeeper { public: TimeKeeper(int policy);