X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileFieldOverView.hxx;h=b3b0436c56ab47cbe65ac2148fe6217402756053;hb=f13ce72017fd205546293a53f7b041824cb50eec;hp=acb6c3c3168d7ffecff651cf160715be97a32361;hpb=fb512e2b77325290aaa2b4c9fd8f22d5949b6369;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileFieldOverView.hxx b/src/MEDLoader/MEDFileFieldOverView.hxx index acb6c3c31..b3b0436c5 100644 --- a/src/MEDLoader/MEDFileFieldOverView.hxx +++ b/src/MEDLoader/MEDFileFieldOverView.hxx @@ -69,9 +69,9 @@ namespace ParaMEDMEM int _nb_nodes; std::vector< std::vector > _geo_types_distrib; }; - + class MEDFileField1TSStructItem; - + class MEDMeshMultiLev : public RefCountObject { public: @@ -82,6 +82,7 @@ namespace ParaMEDMEM static MEDMeshMultiLev *New(const MEDFileMesh *m, const std::vector& levs); static MEDMeshMultiLev *NewOnlyOnNode(const MEDFileMesh *m, const DataArrayInt *pflOnNode); void setNodeReduction(const DataArrayInt *nr); + void setCellReduction(const DataArrayInt *cr); bool isFastlyTheSameStruct(const MEDFileField1TSStructItem& fst, const MEDFileFieldGlobsReal *globs) const; MEDLOADER_EXPORT DataArray *buildDataArray(const MEDFileField1TSStructItem& fst, const MEDFileFieldGlobsReal *globs, const DataArray *vals) const; MEDLOADER_EXPORT void retrieveFamilyIdsOnCells(DataArrayInt *& famIds, bool& isWithoutCopy) const; @@ -122,13 +123,13 @@ namespace ParaMEDMEM MEDCouplingAutoRefCountObjectPtr _node_num_ids; bool _node_num_ids_nocpy; public: - static const int PARAMEDMEM_2_VTKTYPE_LGTH=34; - static const unsigned char PARAMEDMEM_2_VTKTYPE[PARAMEDMEM_2_VTKTYPE_LGTH]; - static const unsigned char HEXA27_PERM_ARRAY[27]; + MEDLOADER_EXPORT static const int PARAMEDMEM_2_VTKTYPE_LGTH=34; + MEDLOADER_EXPORT static const unsigned char PARAMEDMEM_2_VTKTYPE[PARAMEDMEM_2_VTKTYPE_LGTH]; + MEDLOADER_EXPORT static const unsigned char HEXA27_PERM_ARRAY[27]; }; - + class MEDStructuredMeshMultiLev; - + class MEDUMeshMultiLev : public MEDMeshMultiLev { public: @@ -158,17 +159,23 @@ namespace ParaMEDMEM void selectPartOfNodes(const DataArrayInt *pflNodes); virtual std::vector getNodeGridStructure() const = 0; protected: - MEDStructuredMeshMultiLev(const MEDFileStructuredMesh *m); MEDStructuredMeshMultiLev(const MEDStructuredMeshMultiLev& other); MEDStructuredMeshMultiLev(const MEDFileStructuredMesh *m, const std::vector& lev); MEDStructuredMeshMultiLev(const MEDFileStructuredMesh *m, int nbOfNodes, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); void dealWithImplicitUnstructuredMesh(const MEDFileMesh *m); protected: + void moveFaceToCell() const; bool prepareForImplicitUnstructuredMeshCase(MEDMeshMultiLev *&ret) const; + private: + void initStdFieldOfIntegers(const MEDFileStructuredMesh *m); protected: bool _is_internal; + MEDCouplingAutoRefCountObjectPtr _face_fam_ids; + bool _face_fam_ids_nocpy; + MEDCouplingAutoRefCountObjectPtr _face_num_ids; + bool _face_num_ids_nocpy; }; - + class MEDCMeshMultiLev : public MEDStructuredMeshMultiLev { public: @@ -223,7 +230,7 @@ namespace ParaMEDMEM //! warning this method also set _nb_of_entity attribute ! void checkInRange(int nbOfEntity, int nip, const MEDFileFieldGlobsReal *globs); bool isFastlyEqual(int& startExp, INTERP_KERNEL::NormalizedCellType gt, const std::string& pflName) const; - bool operator==(const MEDFileField1TSStructItem2& other) const throw(INTERP_KERNEL::Exception); + bool operator==(const MEDFileField1TSStructItem2& other) const; bool isCellSupportEqual(const MEDFileField1TSStructItem2& other, const MEDFileFieldGlobsReal *globs) const; bool isNodeSupportEqual(const MEDFileField1TSStructItem2& other, const MEDFileFieldGlobsReal *globs) const; static MEDFileField1TSStructItem2 BuildAggregationOf(const std::vector& objs, const MEDFileFieldGlobsReal *globs); @@ -243,14 +250,14 @@ namespace ParaMEDMEM MEDFileField1TSStructItem() { } MEDFileField1TSStructItem(TypeOfField a, const std::vector< MEDFileField1TSStructItem2 >& b); void checkWithMeshStruct(const MEDFileMeshStruct *mst, const MEDFileFieldGlobsReal *globs); - bool operator==(const MEDFileField1TSStructItem& other) const throw(INTERP_KERNEL::Exception); + bool operator==(const MEDFileField1TSStructItem& other) const; MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; MEDLOADER_EXPORT std::vector getDirectChildren() const; bool isEntityCell() const; bool isComputed() const { return _computed; } TypeOfField getType() const { return _type; } std::size_t getNumberOfItems() const { return _items.size(); } - const MEDFileField1TSStructItem2& operator[](std::size_t i) const throw(INTERP_KERNEL::Exception); + const MEDFileField1TSStructItem2& operator[](std::size_t i) const; // bool isCellSupportEqual(const MEDFileField1TSStructItem& other, const MEDFileFieldGlobsReal *globs) const; bool isNodeSupportEqual(const MEDFileField1TSStructItem& other, const MEDFileFieldGlobsReal *globs) const;