Salome HOME
Fix computation height of isocel triangle with base equal zero : NaN
[tools/medcoupling.git] / src / MEDLoader / MEDFileJoint.hxx
index 81ab0698f8abbfe28fe9be3730d5bb5b271ff4c1..12a928b665e9301d0fe523b0440b5e1a54336843 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2023  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #define __MEDFILEJOINT_HXX__
 
 #include "MEDLoaderDefines.hxx"
-#include "MEDFileUtilities.hxx"
+#include "MEDFileUtilities.txx"
 #include "MEDCouplingMemArray.hxx"
 #include "MCAuto.hxx"
 
+#include "NormalizedGeometricTypes"
+
 namespace MEDCoupling
 {
 /*!
@@ -37,10 +39,11 @@ class MEDFileJointCorrespondence : public RefCountObject, public MEDFileWritable
 {
 public:
   MEDLOADER_EXPORT static MEDFileJointCorrespondence *New();
-  MEDLOADER_EXPORT static MEDFileJointCorrespondence *New(DataArrayInt* correspondence); // nodes
-  MEDLOADER_EXPORT static MEDFileJointCorrespondence *New(DataArrayInt* correspondence,  // cells
+  MEDLOADER_EXPORT static MEDFileJointCorrespondence *New(DataArrayIdType* correspondence); // nodes
+  MEDLOADER_EXPORT static MEDFileJointCorrespondence *New(DataArrayIdType* correspondence,  // cells
                                                           INTERP_KERNEL::NormalizedCellType loc_geo_type,
                                                           INTERP_KERNEL::NormalizedCellType rem_geo_type);
+  MEDLOADER_EXPORT std::string getClassName() const override { return std::string("MEDFileJointCorrespondence"); }
   MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
   MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
   MEDLOADER_EXPORT MEDFileJointCorrespondence *deepCopy() const;
@@ -52,15 +55,15 @@ public:
   MEDLOADER_EXPORT INTERP_KERNEL::NormalizedCellType getLocalGeometryType() const { return _loc_geo_type; }
   MEDLOADER_EXPORT void setRemoteGeometryType(INTERP_KERNEL::NormalizedCellType type) { _rem_geo_type=type; }
   MEDLOADER_EXPORT INTERP_KERNEL::NormalizedCellType getRemoteGeometryType() const { return _rem_geo_type; }
-  MEDLOADER_EXPORT void setCorrespondence(DataArrayInt *corr);
-  MEDLOADER_EXPORT const DataArrayInt *getCorrespondence() const { return _correspondence; }
+  MEDLOADER_EXPORT void setCorrespondence(DataArrayIdType *corr);
+  MEDLOADER_EXPORT const DataArrayIdType *getCorrespondence() const { return _correspondence; }
   MEDLOADER_EXPORT void write(const std::string& fileName, int mode, const std::string& localMeshName, const std::string& jointName, int order, int iteration) const;
 
   MEDLOADER_EXPORT std::string simpleRepr() const;
   MEDLOADER_EXPORT void writeLL(med_idt fid, const std::string& localMeshName, const std::string& jointName, int order, int iteration) const;
 private:
   MEDFileJointCorrespondence();
-  MEDFileJointCorrespondence(DataArrayInt*                     correspondence,
+  MEDFileJointCorrespondence(DataArrayIdType*                     correspondence,
                              bool                              is_nodal = true,
                              INTERP_KERNEL::NormalizedCellType loc_geo_type = INTERP_KERNEL::NORM_ERROR,
                              INTERP_KERNEL::NormalizedCellType rem_geo_type = INTERP_KERNEL::NORM_ERROR);
@@ -68,7 +71,7 @@ private:
   bool                                           _is_nodal;
   INTERP_KERNEL::NormalizedCellType              _loc_geo_type;
   INTERP_KERNEL::NormalizedCellType              _rem_geo_type;
-  MCAuto<DataArrayInt> _correspondence;
+  MCAuto<DataArrayIdType> _correspondence;
 };
 
 /*!
@@ -80,6 +83,7 @@ public:
   MEDLOADER_EXPORT static MEDFileJointOneStep *New(int dt=-1, int it=-1);
   MEDLOADER_EXPORT static MEDFileJointOneStep *New(const std::string& fileName, const std::string& mName, const std::string& jointName, int number=1);
   MEDLOADER_EXPORT static MEDFileJointOneStep *New(med_idt fid, const std::string& mName, const std::string& jointName, int number=1);
+  MEDLOADER_EXPORT std::string getClassName() const override { return std::string("MEDFileJointOneStep"); }
   MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
   MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
   MEDLOADER_EXPORT MEDFileJointOneStep *deepCopy() const;
@@ -90,6 +94,7 @@ public:
   MEDLOADER_EXPORT void setIteration(int it) { _iteration=it; }
   MEDLOADER_EXPORT int getIteration() const { return _iteration; }
   MEDLOADER_EXPORT void pushCorrespondence(MEDFileJointCorrespondence* correspondence);
+  MEDLOADER_EXPORT void clearCorrespondences();
   MEDLOADER_EXPORT int getNumberOfCorrespondences() const;
   MEDLOADER_EXPORT MEDFileJointCorrespondence *getCorrespondenceAtPos(int i) const;
 
@@ -112,13 +117,14 @@ private:
  * \brief Joint holds a sequence of joints of different iterations relating to
  *        a pair of mesh domains: a local one and a distant one
  */
-class MEDFileJoint : public RefCountObject, public MEDFileWritable
+class MEDFileJoint : public RefCountObject, public MEDFileWritableStandAlone
 {
 public:
     MEDLOADER_EXPORT static MEDFileJoint *New();
     MEDLOADER_EXPORT static MEDFileJoint *New(const std::string& fileName, const std::string& mName, int num);
     MEDLOADER_EXPORT static MEDFileJoint *New(med_idt fid, const std::string& mName, int num);
     MEDLOADER_EXPORT static MEDFileJoint *New(const std::string& jointName, const std::string& locMeshName, const std::string& remoteMeshName, int remoteMeshNum );
+    MEDLOADER_EXPORT std::string getClassName() const override { return std::string("MEDFileJoint"); }
     MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
     MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
     MEDLOADER_EXPORT MEDFileJoint *deepCopy() const;
@@ -139,8 +145,7 @@ public:
     MEDLOADER_EXPORT int getNumberOfSteps() const;
     MEDLOADER_EXPORT MEDFileJointOneStep *getStepAtPos(int i) const;
 
-    MEDLOADER_EXPORT void write(const std::string& fileName, int mode) const;
-    MEDLOADER_EXPORT void write(med_idt fid) const;
+    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
 
     MEDLOADER_EXPORT std::string simpleRepr() const;
   private:
@@ -158,19 +163,19 @@ public:
   /*!
    * \brief Joints of a mesh domain relating to all other mesh domains
    */
-  class MEDFileJoints : public RefCountObject, public MEDFileWritable
+  class MEDFileJoints : public RefCountObject, public MEDFileWritableStandAlone
   {
   public:
     MEDLOADER_EXPORT static MEDFileJoints *New();
     MEDLOADER_EXPORT static MEDFileJoints *New(const std::string& fileName, const std::string& meshName);
     MEDLOADER_EXPORT static MEDFileJoints *New(med_idt fid, const std::string& meshName);
+    MEDLOADER_EXPORT std::string getClassName() const override { return std::string("MEDFileJoints"); }
     MEDLOADER_EXPORT MEDFileJoints *deepCopy() const;
     MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
     MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
     MEDLOADER_EXPORT std::string simpleRepr() const;
     MEDLOADER_EXPORT void simpleReprWithoutHeader(std::ostream& oss) const;
-    MEDLOADER_EXPORT void write(const std::string& fileName, int mode) const;
-    MEDLOADER_EXPORT void write(med_idt fid) const;
+    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
     MEDLOADER_EXPORT std::string getMeshName() const;
     MEDLOADER_EXPORT int getNumberOfJoints() const;
     MEDLOADER_EXPORT MEDFileJoint *getJointAtPos(int i) const;