X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileFieldOverView.hxx;h=4d16cf029fa6094284f208d144713efe6d32718b;hb=f810b8691a25da097d91b87793ecbf121ab9ead8;hp=85ddb2a5eabb53530fc78a1aa61113e5459890d8;hpb=badbf69adcc261e961fa21bb8490af38ab5f87dc;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileFieldOverView.hxx b/src/MEDLoader/MEDFileFieldOverView.hxx index 85ddb2a5e..4d16cf029 100644 --- a/src/MEDLoader/MEDFileFieldOverView.hxx +++ b/src/MEDLoader/MEDFileFieldOverView.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D +// Copyright (C) 2007-2015 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 @@ -23,7 +23,7 @@ #include "MEDLoaderDefines.hxx" -#include "MEDCouplingAutoRefCountObjectPtr.hxx" +#include "MCAuto.hxx" #include "MEDCouplingRefCountObject.hxx" #include "MEDCoupling1GTUMesh.hxx" @@ -32,7 +32,7 @@ #include -namespace ParaMEDMEM +namespace MEDCoupling { class DataArrayInt; class MEDCouplingMesh; @@ -51,7 +51,7 @@ namespace ParaMEDMEM public: MEDLOADER_EXPORT static MEDFileMeshStruct *New(const MEDFileMesh *mesh); std::size_t getHeapMemorySizeWithoutChildren() const; - std::vector getDirectChildren() const; + std::vector getDirectChildrenWithNull() const; const MEDFileMesh *getTheMesh() const { return _mesh; } int getNumberOfNodes() const { return _nb_nodes; } bool doesManageGeoType(INTERP_KERNEL::NormalizedCellType t) const; @@ -76,7 +76,7 @@ namespace ParaMEDMEM { public: std::size_t getHeapMemorySizeWithoutChildren() const; - std::vector getDirectChildren() const; + std::vector getDirectChildrenWithNull() const; public: static MEDMeshMultiLev *New(const MEDFileMesh *m, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); static MEDMeshMultiLev *New(const MEDFileMesh *m, const std::vector& levs); @@ -89,11 +89,12 @@ namespace ParaMEDMEM MEDLOADER_EXPORT void retrieveNumberIdsOnCells(DataArrayInt *& numIds, bool& isWithoutCopy) const; MEDLOADER_EXPORT void retrieveFamilyIdsOnNodes(DataArrayInt *& famIds, bool& isWithoutCopy) const; MEDLOADER_EXPORT void retrieveNumberIdsOnNodes(DataArrayInt *& numIds, bool& isWithoutCopy) const; + MEDLOADER_EXPORT DataArrayInt *retrieveGlobalNodeIdsIfAny() const; MEDLOADER_EXPORT std::vector< INTERP_KERNEL::NormalizedCellType > getGeoTypes() const; - void setFamilyIdsOnCells(DataArrayInt *famIds, bool isNoCopy); - void setNumberIdsOnCells(DataArrayInt *numIds, bool isNoCopy); - void setFamilyIdsOnNodes(DataArrayInt *famIds, bool isNoCopy); - void setNumberIdsOnNodes(DataArrayInt *numIds, bool isNoCopy); + void setFamilyIdsOnCells(DataArrayInt *famIds); + void setNumberIdsOnCells(DataArrayInt *numIds); + void setFamilyIdsOnNodes(DataArrayInt *famIds); + void setNumberIdsOnNodes(DataArrayInt *numIds); virtual void selectPartOfNodes(const DataArrayInt *pflNodes) = 0; virtual MEDMeshMultiLev *prepare() const = 0; int getNumberOfCells(INTERP_KERNEL::NormalizedCellType t) const; @@ -108,24 +109,20 @@ namespace ParaMEDMEM MEDMeshMultiLev(const MEDFileMesh *mesh, int nbNodes, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); protected: const MEDFileMesh *_mesh; - std::vector< MEDCouplingAutoRefCountObjectPtr > _pfls; + std::vector< MCAuto > _pfls; std::vector< INTERP_KERNEL::NormalizedCellType > _geo_types; std::vector _nb_entities; - MEDCouplingAutoRefCountObjectPtr _node_reduction; + MCAuto _node_reduction; int _nb_nodes; // - MEDCouplingAutoRefCountObjectPtr _cell_fam_ids; - bool _cell_fam_ids_nocpy; - MEDCouplingAutoRefCountObjectPtr _cell_num_ids; - bool _cell_num_ids_nocpy; - MEDCouplingAutoRefCountObjectPtr _node_fam_ids; - bool _node_fam_ids_nocpy; - MEDCouplingAutoRefCountObjectPtr _node_num_ids; - bool _node_num_ids_nocpy; + MCAuto _cell_fam_ids; + MCAuto _cell_num_ids; + MCAuto _node_fam_ids; + MCAuto _node_num_ids; 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; @@ -137,20 +134,20 @@ namespace ParaMEDMEM static MEDUMeshMultiLev *New(const MEDFileUMesh *m, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); void selectPartOfNodes(const DataArrayInt *pflNodes); MEDMeshMultiLev *prepare() const; - MEDUMeshMultiLev(const MEDStructuredMeshMultiLev& other, const MEDCouplingAutoRefCountObjectPtr& part); + MEDUMeshMultiLev(const MEDStructuredMeshMultiLev& other, const MCAuto& part); MEDLOADER_EXPORT bool buildVTUArrays(DataArrayDouble *& coords, DataArrayByte *&types, DataArrayInt *&cellLocations, DataArrayInt *& cells, DataArrayInt *&faceLocations, DataArrayInt *&faces) const; protected: void appendVertices(const DataArrayInt *verticesToAdd, DataArrayInt *nr); private: - void reorderNodesIfNecessary(MEDCouplingAutoRefCountObjectPtr& coords, DataArrayInt *nodalConnVTK, DataArrayInt *polyhedNodalConnVTK) const; + void reorderNodesIfNecessary(MCAuto& coords, DataArrayInt *nodalConnVTK, DataArrayInt *polyhedNodalConnVTK) const; private: MEDUMeshMultiLev(const MEDUMeshMultiLev& other); MEDUMeshMultiLev(const MEDFileUMesh *m, const std::vector& levs); MEDUMeshMultiLev(const MEDFileUMesh *m, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); private: - std::vector< MEDCouplingAutoRefCountObjectPtr > _parts; + std::vector< MCAuto > _parts; //! this attribute is used only for mesh with no cells but having coordinates. For classical umeshes those pointer is equal to pointer of coordinates of instances in this->_parts. - MEDCouplingAutoRefCountObjectPtr _coords; + MCAuto _coords; }; class MEDStructuredMeshMultiLev : public MEDMeshMultiLev @@ -170,10 +167,8 @@ namespace ParaMEDMEM 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; + MCAuto _face_fam_ids; + MCAuto _face_num_ids; }; class MEDCMeshMultiLev : public MEDStructuredMeshMultiLev @@ -189,7 +184,7 @@ namespace ParaMEDMEM MEDCMeshMultiLev(const MEDFileCMesh *m, const std::vector& levs); MEDCMeshMultiLev(const MEDFileCMesh *m, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); private: - std::vector< MEDCouplingAutoRefCountObjectPtr > _coords; + std::vector< MCAuto > _coords; }; class MEDCurveLinearMeshMultiLev : public MEDStructuredMeshMultiLev @@ -205,7 +200,7 @@ namespace ParaMEDMEM MEDCurveLinearMeshMultiLev(const MEDFileCurveLinearMesh *m, const std::vector& levs); MEDCurveLinearMeshMultiLev(const MEDFileCurveLinearMesh *m, const std::vector& gts, const std::vector& pfls, const std::vector& nbEntities); private: - MEDCouplingAutoRefCountObjectPtr _coords; + MCAuto _coords; std::vector _structure; }; @@ -219,7 +214,7 @@ namespace ParaMEDMEM void checkWithMeshStructForGaussPT(const MEDFileMeshStruct *mst, const MEDFileFieldGlobsReal *globs); // MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; - MEDLOADER_EXPORT std::vector getDirectChildren() const; + MEDLOADER_EXPORT std::vector getDirectChildrenWithNull() const; // const DataArrayInt *getPfl(const MEDFileFieldGlobsReal *globs) const; INTERP_KERNEL::NormalizedCellType getGeo() const { return _geo_type; } @@ -239,7 +234,7 @@ namespace ParaMEDMEM private: INTERP_KERNEL::NormalizedCellType _geo_type; std::pair _start_end; - MEDCouplingAutoRefCountObjectPtr _pfl; + MCAuto _pfl; std::string _loc; int _nb_of_entity; }; @@ -247,12 +242,12 @@ namespace ParaMEDMEM class MEDFileField1TSStructItem : public BigMemoryObject { public: - MEDFileField1TSStructItem() { } + MEDFileField1TSStructItem():_computed(false),_type(ON_CELLS) { } MEDFileField1TSStructItem(TypeOfField a, const std::vector< MEDFileField1TSStructItem2 >& b); void checkWithMeshStruct(const MEDFileMeshStruct *mst, const MEDFileFieldGlobsReal *globs); bool operator==(const MEDFileField1TSStructItem& other) const; MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; - MEDLOADER_EXPORT std::vector getDirectChildren() const; + MEDLOADER_EXPORT std::vector getDirectChildrenWithNull() const; bool isEntityCell() const; bool isComputed() const { return _computed; } TypeOfField getType() const { return _type; } @@ -279,7 +274,7 @@ namespace ParaMEDMEM static MEDFileField1TSStruct *New(const MEDFileAnyTypeField1TS *ref, MEDFileMeshStruct *mst); void checkWithMeshStruct(MEDFileMeshStruct *mst, const MEDFileFieldGlobsReal *globs); std::size_t getHeapMemorySizeWithoutChildren() const; - std::vector getDirectChildren() const; + std::vector getDirectChildrenWithNull() const; bool isEqualConsideringThePast(const MEDFileAnyTypeField1TS *other, const MEDFileMeshStruct *mst) const; bool isSupportSameAs(const MEDFileAnyTypeField1TS *other, const MEDFileMeshStruct *meshSt); bool isCompatibleWithNodesDiscr(const MEDFileAnyTypeField1TS *other, const MEDFileMeshStruct *meshSt); @@ -305,12 +300,12 @@ namespace ParaMEDMEM bool isEqual(const MEDFileAnyTypeFieldMultiTS *other); bool isCompatibleWithNodesDiscr(const MEDFileAnyTypeFieldMultiTS *other); std::size_t getHeapMemorySizeWithoutChildren() const; - std::vector getDirectChildren() const; + std::vector getDirectChildrenWithNull() const; private: MEDFileFastCellSupportComparator(const MEDFileMeshStruct *m, const MEDFileAnyTypeFieldMultiTS *ref); private: - MEDCouplingAutoRefCountObjectPtr _mesh_comp; - std::vector< MEDCouplingAutoRefCountObjectPtr > _f1ts_cmps; + MCAuto _mesh_comp; + std::vector< MCAuto > _f1ts_cmps; }; }