X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingDefinitionTime.hxx;h=d1bff789f9f8d418df972aa8a245cab977696319;hb=90b7c9c73054965b8085ab0ecd2646a3d59f475a;hp=26ef19667d8286f6f2a2b022d7db1a7405e89500;hpb=10f37bf6f33a762626d7f1093b2f5450c1688667;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingDefinitionTime.hxx b/src/MEDCoupling/MEDCouplingDefinitionTime.hxx index 26ef19667..d1bff789f 100644 --- a/src/MEDCoupling/MEDCouplingDefinitionTime.hxx +++ b/src/MEDCoupling/MEDCouplingDefinitionTime.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D +// Copyright (C) 2007-2020 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 @@ -16,47 +16,50 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// Author : Anthony Geay (CEA/DEN) #ifndef __PARAMEDMEM_MEDCOUPLINGDEFINITIONTIME_HXX__ #define __PARAMEDMEM_MEDCOUPLINGDEFINITIONTIME_HXX__ #include "MEDCouplingRefCountObject.hxx" -#include "MEDCouplingAutoRefCountObjectPtr.hxx" +#include "MCAuto.hxx" #include "InterpKernelException.hxx" #include #include -namespace ParaMEDMEM +namespace MEDCoupling { class MEDCouplingFieldDouble; - class MEDCOUPLING_EXPORT MEDCouplingDefinitionTimeSlice : public RefCountObject + class MEDCouplingDefinitionTimeSlice : public RefCountObject { public: - static MEDCouplingDefinitionTimeSlice *New(const MEDCouplingFieldDouble *f, int meshId, const std::vector& arrId, int fieldId) throw(INTERP_KERNEL::Exception); - static MEDCouplingDefinitionTimeSlice *New(TypeOfTimeDiscretization type, const std::vector& tiI, const std::vector& tiD) throw(INTERP_KERNEL::Exception); - int getArrayId() const { return _array_id; } - virtual MEDCouplingDefinitionTimeSlice *copy() const = 0; - virtual bool isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const; - virtual void getHotSpotsTime(std::vector& ret) const = 0; - virtual void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception) = 0; - virtual bool isContaining(double tmp, double eps) const = 0; - virtual int getStartId() const; - virtual int getEndId() const; - virtual void appendRepr(std::ostream& stream) const; - virtual double getStartTime() const = 0; - virtual double getEndTime() const = 0; - virtual void getTinySerializationInformation(std::vector& tiI, std::vector& tiD) const = 0; - virtual TypeOfTimeDiscretization getTimeType() const = 0; - bool isFullyIncludedInMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; - bool isOverllapingWithMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; - bool isAfterMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; - bool isBeforeMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; + MEDCOUPLING_EXPORT static MEDCouplingDefinitionTimeSlice *New(const MEDCouplingFieldDouble *f, int meshId, const std::vector& arrId, int fieldId); + MEDCOUPLING_EXPORT static MEDCouplingDefinitionTimeSlice *New(TypeOfTimeDiscretization type, const std::vector& tiI, const std::vector& tiD); + MEDCOUPLING_EXPORT int getArrayId() const { return _array_id; } + MEDCOUPLING_EXPORT virtual MEDCouplingDefinitionTimeSlice *copy() const = 0; + MEDCOUPLING_EXPORT virtual bool isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const; + MEDCOUPLING_EXPORT virtual void getHotSpotsTime(std::vector& ret) const = 0; + MEDCOUPLING_EXPORT virtual void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const = 0; + MEDCOUPLING_EXPORT virtual bool isContaining(double tmp, double eps) const = 0; + MEDCOUPLING_EXPORT virtual int getStartId() const; + MEDCOUPLING_EXPORT virtual int getEndId() const; + MEDCOUPLING_EXPORT virtual void appendRepr(std::ostream& stream) const; + MEDCOUPLING_EXPORT virtual double getStartTime() const = 0; + MEDCOUPLING_EXPORT virtual double getEndTime() const = 0; + MEDCOUPLING_EXPORT virtual void getTinySerializationInformation(std::vector& tiI, std::vector& tiD) const = 0; + MEDCOUPLING_EXPORT virtual TypeOfTimeDiscretization getTimeType() const = 0; + MEDCOUPLING_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; + MEDCOUPLING_EXPORT std::vector getDirectChildrenWithNull() const; + MEDCOUPLING_EXPORT bool isFullyIncludedInMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; + MEDCOUPLING_EXPORT bool isOverllapingWithMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; + MEDCOUPLING_EXPORT bool isAfterMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; + MEDCOUPLING_EXPORT bool isBeforeMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const; protected: - MEDCouplingDefinitionTimeSlice() { } - MEDCouplingDefinitionTimeSlice(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT MEDCouplingDefinitionTimeSlice() { } + MEDCOUPLING_EXPORT MEDCouplingDefinitionTimeSlice(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId); protected: int _mesh_id; int _array_id; @@ -67,10 +70,11 @@ namespace ParaMEDMEM { public: static MEDCouplingDefinitionTimeSliceInst *New(const std::vector& tiI, const std::vector& tiD); + MEDCOUPLING_EXPORT std::string getClassName() const override { return std::string("MEDCouplingDefinitionTimeSliceInst"); } MEDCouplingDefinitionTimeSlice *copy() const; bool isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const; void getHotSpotsTime(std::vector& ret) const; - void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception); + void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const; bool isContaining(double tmp, double eps) const; void appendRepr(std::ostream& stream) const; double getStartTime() const; @@ -79,7 +83,7 @@ namespace ParaMEDMEM void unserialize(const std::vector& tiI, const std::vector& tiD); TypeOfTimeDiscretization getTimeType() const; public: - MEDCouplingDefinitionTimeSliceInst(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception); + MEDCouplingDefinitionTimeSliceInst(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId); protected: MEDCouplingDefinitionTimeSliceInst() { } protected: @@ -90,10 +94,11 @@ namespace ParaMEDMEM { public: static MEDCouplingDefinitionTimeSliceCstOnTI *New(const std::vector& tiI, const std::vector& tiD); + MEDCOUPLING_EXPORT std::string getClassName() const override { return std::string("MEDCouplingDefinitionTimeSliceCstOnTI"); } MEDCouplingDefinitionTimeSlice *copy() const; bool isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const; void getHotSpotsTime(std::vector& ret) const; - void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception); + void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const; bool isContaining(double tmp, double eps) const; void appendRepr(std::ostream& stream) const; double getStartTime() const; @@ -102,22 +107,23 @@ namespace ParaMEDMEM void unserialize(const std::vector& tiI, const std::vector& tiD); TypeOfTimeDiscretization getTimeType() const; public: - MEDCouplingDefinitionTimeSliceCstOnTI(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception); + MEDCouplingDefinitionTimeSliceCstOnTI(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId); protected: MEDCouplingDefinitionTimeSliceCstOnTI() { } protected: double _start; double _end; }; - + class MEDCouplingDefinitionTimeSliceLT : public MEDCouplingDefinitionTimeSlice { public: static MEDCouplingDefinitionTimeSliceLT *New(const std::vector& tiI, const std::vector& tiD); + std::string getClassName() const override { return std::string("MEDCouplingDefinitionTimeSliceLT"); } MEDCouplingDefinitionTimeSlice *copy() const; bool isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const; void getHotSpotsTime(std::vector& ret) const; - void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception); + void getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const; bool isContaining(double tmp, double eps) const; void appendRepr(std::ostream& stream) const; double getStartTime() const; @@ -127,7 +133,7 @@ namespace ParaMEDMEM void unserialize(const std::vector& tiI, const std::vector& tiD); TypeOfTimeDiscretization getTimeType() const; public: - MEDCouplingDefinitionTimeSliceLT(const MEDCouplingFieldDouble *f, int meshId, int arrId, int arr2Id, int fieldId) throw(INTERP_KERNEL::Exception); + MEDCouplingDefinitionTimeSliceLT(const MEDCouplingFieldDouble *f, int meshId, int arrId, int arr2Id, int fieldId); protected: MEDCouplingDefinitionTimeSliceLT() { } protected: @@ -136,25 +142,27 @@ namespace ParaMEDMEM double _end; }; - class MEDCOUPLING_EXPORT MEDCouplingDefinitionTime + class MEDCouplingDefinitionTime { public: - MEDCouplingDefinitionTime(); - MEDCouplingDefinitionTime(const std::vector& fs, const std::vector& meshRefs, const std::vector >& arrRefs) throw(INTERP_KERNEL::Exception); - void assign(const MEDCouplingDefinitionTime& other); - bool isEqual(const MEDCouplingDefinitionTime& other) const; - double getTimeResolution() const { return _eps; } - void getIdsOnTimeRight(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception); - void getIdsOnTimeLeft(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception); - void getIdsOnTime(double tm, std::vector& meshIds, std::vector& arrIds, std::vector& arrIdsInField, std::vector& fieldIds) const throw(INTERP_KERNEL::Exception); - std::vector getHotSpotsTime() const; - void appendRepr(std::ostream& stream) const; + MEDCOUPLING_EXPORT MEDCouplingDefinitionTime(); + MEDCOUPLING_EXPORT MEDCouplingDefinitionTime(const std::vector& fs, const std::vector& meshRefs, const std::vector >& arrRefs); + MEDCOUPLING_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const; + MEDCOUPLING_EXPORT std::vector getDirectChildrenWithNull() const; + MEDCOUPLING_EXPORT void assign(const MEDCouplingDefinitionTime& other); + MEDCOUPLING_EXPORT bool isEqual(const MEDCouplingDefinitionTime& other) const; + MEDCOUPLING_EXPORT double getTimeResolution() const { return _eps; } + MEDCOUPLING_EXPORT void getIdsOnTimeRight(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const; + MEDCOUPLING_EXPORT void getIdsOnTimeLeft(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const; + MEDCOUPLING_EXPORT void getIdsOnTime(double tm, std::vector& meshIds, std::vector& arrIds, std::vector& arrIdsInField, std::vector& fieldIds) const; + MEDCOUPLING_EXPORT std::vector getHotSpotsTime() const; + MEDCOUPLING_EXPORT void appendRepr(std::ostream& stream) const; public: - void getTinySerializationInformation(std::vector& tinyInfoI, std::vector& tinyInfoD) const; - void unserialize(const std::vector& tinyInfoI, const std::vector& tinyInfoD); + MEDCOUPLING_EXPORT void getTinySerializationInformation(std::vector& tinyInfoI, std::vector& tinyInfoD) const; + MEDCOUPLING_EXPORT void unserialize(const std::vector& tinyInfoI, const std::vector& tinyInfoD); private: double _eps; - std::vector< MEDCouplingAutoRefCountObjectPtr > _slices; + std::vector< MCAuto > _slices; static const double EPS_DFT; }; }