X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingField.hxx;h=dc71d95f906e69b0eda615ed99146040ff80da7d;hb=b7e277ad50223814bc479c5bd64cf12abe8fc959;hp=52a2b92c020353dcf29d469e741be28333629933;hpb=2c41aa62fe11582c6fcca44bde487d1e648d3bb9;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingField.hxx b/src/MEDCoupling/MEDCouplingField.hxx index 52a2b92c0..dc71d95f9 100644 --- a/src/MEDCoupling/MEDCouplingField.hxx +++ b/src/MEDCoupling/MEDCouplingField.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2016 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 // 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 @@ -26,14 +26,14 @@ #include "MEDCouplingNatureOfField.hxx" #include "MEDCouplingRefCountObject.hxx" #include "NormalizedUnstructuredMesh.hxx" -#include "MEDCouplingAutoRefCountObjectPtr.hxx" +#include "MCAuto.hxx" #include "MEDCouplingFieldDiscretization.hxx" #include "InterpKernelException.hxx" #include #include -namespace ParaMEDMEM +namespace MEDCoupling { class DataArrayInt; class DataArrayDouble; @@ -41,64 +41,67 @@ namespace ParaMEDMEM class MEDCouplingFieldDouble; class MEDCouplingGaussLocalization; - class MEDCOUPLING_EXPORT MEDCouplingField : public RefCountObject, public TimeLabel + class MEDCouplingField : public RefCountObject, public TimeLabel { public: - virtual void checkCoherency() const throw(INTERP_KERNEL::Exception) = 0; - virtual bool areCompatibleForMerge(const MEDCouplingField *other) const; - virtual bool areStrictlyCompatible(const MEDCouplingField *other) const; - virtual bool isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const throw(INTERP_KERNEL::Exception); - virtual bool isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const; - virtual bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const; - virtual void copyTinyStringsFrom(const MEDCouplingField *other) throw(INTERP_KERNEL::Exception); - void setMesh(const ParaMEDMEM::MEDCouplingMesh *mesh); - const ParaMEDMEM::MEDCouplingMesh *getMesh() const { return _mesh; } - void setName(const char *name) { _name=name; } - const char *getDescription() const { return _desc.c_str(); } - void setDescription(const char *desc) { _desc=desc; } - const char *getName() const { return _name.c_str(); } - TypeOfField getTypeOfField() const; - NatureOfField getNature() const; - virtual void setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception); - DataArrayDouble *getLocalizationOfDiscr() const throw(INTERP_KERNEL::Exception); - MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception); - MEDCouplingMesh *buildSubMeshData(const int *start, const int *end, DataArrayInt *&di) const; - MEDCouplingMesh *buildSubMeshDataRange(int begin, int end, int step, int& beginOut, int& endOut, int& stepOut, DataArrayInt *&di) const; - DataArrayInt *computeTupleIdsToSelectFromCellIds(const int *startCellIds, const int *endCellIds) const; - const MEDCouplingFieldDiscretization *getDiscretization() const { return _type; } - MEDCouplingFieldDiscretization *getDiscretization() { return _type; } - void setDiscretization(MEDCouplingFieldDiscretization *newDisc); - int getNumberOfTuplesExpected() const throw(INTERP_KERNEL::Exception); - int getNumberOfMeshPlacesExpected() const throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT virtual void checkConsistencyLight() const; + MEDCOUPLING_EXPORT virtual bool areCompatibleForMerge(const MEDCouplingField *other) const; + MEDCOUPLING_EXPORT virtual bool areStrictlyCompatible(const MEDCouplingField *other) const; + MEDCOUPLING_EXPORT virtual bool areStrictlyCompatibleForMulDiv(const MEDCouplingField *other) const; + MEDCOUPLING_EXPORT virtual bool isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const; + MEDCOUPLING_EXPORT virtual bool isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const; + MEDCOUPLING_EXPORT virtual bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const; + MEDCOUPLING_EXPORT virtual void copyTinyStringsFrom(const MEDCouplingField *other); + MEDCOUPLING_EXPORT void setMesh(const MEDCoupling::MEDCouplingMesh *mesh); + MEDCOUPLING_EXPORT const MEDCoupling::MEDCouplingMesh *getMesh() const { return _mesh; } + MEDCOUPLING_EXPORT MEDCoupling::MEDCouplingMesh *getMesh() { return const_cast(_mesh); } + MEDCOUPLING_EXPORT void setName(const std::string& name) { _name=name; } + MEDCOUPLING_EXPORT std::string getDescription() const { return _desc; } + MEDCOUPLING_EXPORT void setDescription(const std::string& desc) { _desc=desc; } + MEDCOUPLING_EXPORT std::string getName() const { return _name; } + MEDCOUPLING_EXPORT TypeOfField getTypeOfField() const; + MEDCOUPLING_EXPORT NatureOfField getNature() const; + MEDCOUPLING_EXPORT virtual void setNature(NatureOfField nat); + MEDCOUPLING_EXPORT DataArrayDouble *getLocalizationOfDiscr() const; + MEDCOUPLING_EXPORT MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const; + MEDCOUPLING_EXPORT MEDCouplingMesh *buildSubMeshData(const int *start, const int *end, DataArrayInt *&di) const; + MEDCOUPLING_EXPORT MEDCouplingMesh *buildSubMeshDataRange(int begin, int end, int step, int& beginOut, int& endOut, int& stepOut, DataArrayInt *&di) const; + MEDCOUPLING_EXPORT DataArrayInt *computeTupleIdsToSelectFromCellIds(const int *startCellIds, const int *endCellIds) const; + MEDCOUPLING_EXPORT const MEDCouplingFieldDiscretization *getDiscretization() const { return _type; } + MEDCOUPLING_EXPORT MEDCouplingFieldDiscretization *getDiscretization() { return _type; } + MEDCOUPLING_EXPORT void setDiscretization(MEDCouplingFieldDiscretization *newDisc); + MEDCOUPLING_EXPORT int getNumberOfTuplesExpected() const; + MEDCOUPLING_EXPORT int getNumberOfMeshPlacesExpected() const; // Gauss point specific methods - void setGaussLocalizationOnType(INTERP_KERNEL::NormalizedCellType type, const std::vector& refCoo, - const std::vector& gsCoo, const std::vector& wg) throw(INTERP_KERNEL::Exception); - void setGaussLocalizationOnCells(const int *begin, const int *end, const std::vector& refCoo, - const std::vector& gsCoo, const std::vector& wg) throw(INTERP_KERNEL::Exception); - void clearGaussLocalizations(); - MEDCouplingGaussLocalization& getGaussLocalization(int locId) throw(INTERP_KERNEL::Exception); - int getGaussLocalizationIdOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception); - std::set getGaussLocalizationIdsOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception); - int getNbOfGaussLocalization() const throw(INTERP_KERNEL::Exception); - int getGaussLocalizationIdOfOneCell(int cellId) const throw(INTERP_KERNEL::Exception); - void getCellIdsHavingGaussLocalization(int locId, std::vector& cellIds) const throw(INTERP_KERNEL::Exception); - const MEDCouplingGaussLocalization& getGaussLocalization(int locId) const throw(INTERP_KERNEL::Exception); - void updateTime() const; - std::size_t getHeapMemorySize() const; + MEDCOUPLING_EXPORT void setGaussLocalizationOnType(INTERP_KERNEL::NormalizedCellType type, const std::vector& refCoo, + const std::vector& gsCoo, const std::vector& wg); + MEDCOUPLING_EXPORT void setGaussLocalizationOnCells(const int *begin, const int *end, const std::vector& refCoo, + const std::vector& gsCoo, const std::vector& wg); + MEDCOUPLING_EXPORT void clearGaussLocalizations(); + MEDCOUPLING_EXPORT MEDCouplingGaussLocalization& getGaussLocalization(int locId); + MEDCOUPLING_EXPORT int getGaussLocalizationIdOfOneType(INTERP_KERNEL::NormalizedCellType type) const; + MEDCOUPLING_EXPORT std::set getGaussLocalizationIdsOfOneType(INTERP_KERNEL::NormalizedCellType type) const; + MEDCOUPLING_EXPORT int getNbOfGaussLocalization() const; + MEDCOUPLING_EXPORT int getGaussLocalizationIdOfOneCell(int cellId) const; + MEDCOUPLING_EXPORT void getCellIdsHavingGaussLocalization(int locId, std::vector& cellIds) const; + MEDCOUPLING_EXPORT const MEDCouplingGaussLocalization& getGaussLocalization(int locId) const; + MEDCOUPLING_EXPORT void updateTime() const; + MEDCOUPLING_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; + MEDCOUPLING_EXPORT std::vector getDirectChildrenWithNull() const; // for MED file RW - int getNumberOfTuplesExpectedRegardingCode(const std::vector& code, const std::vector& idsPerType) const throw(INTERP_KERNEL::Exception); - virtual void reprQuickOverview(std::ostream& stream) const throw(INTERP_KERNEL::Exception) = 0; + MEDCOUPLING_EXPORT int getNumberOfTuplesExpectedRegardingCode(const std::vector& code, const std::vector& idsPerType) const; + MEDCOUPLING_EXPORT virtual void reprQuickOverview(std::ostream& stream) const = 0; protected: - MEDCouplingField(TypeOfField type); - MEDCouplingField(const MEDCouplingField& other, bool deepCopy=true); - MEDCouplingField(MEDCouplingFieldDiscretization *type, NatureOfField nature=NoNature); - virtual ~MEDCouplingField(); + MEDCOUPLING_EXPORT MEDCouplingField(TypeOfField type); + MEDCOUPLING_EXPORT MEDCouplingField(const MEDCouplingField& other, bool deepCopy=true); + MEDCOUPLING_EXPORT MEDCouplingField(MEDCouplingFieldDiscretization *type, NatureOfField nature=NoNature); + MEDCOUPLING_EXPORT virtual ~MEDCouplingField(); protected: std::string _name; std::string _desc; NatureOfField _nature; const MEDCouplingMesh *_mesh; - MEDCouplingAutoRefCountObjectPtr _type; + MCAuto _type; }; }