]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
WIP
authorAnthony Geay <anthony.geay@edf.fr>
Wed, 29 Apr 2020 12:15:00 +0000 (14:15 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Wed, 29 Apr 2020 12:15:00 +0000 (14:15 +0200)
src/ParaMEDMEM/ParaDataArray.cxx
src/ParaMEDMEM/ParaDataArray.hxx
src/ParaMEDMEM_Swig/ParaMEDMEM.i
src/ParaMEDMEM_Swig/ParaMEDMEMCommon.i

index 8f1c73c07dce62b0f25e747d748d0a2780173be4..f0f16ef1190024005d04c72a13cf45519d6877ed 100644 (file)
@@ -24,3 +24,13 @@ using namespace MEDCoupling;
 
 template class ParaDataArrayTemplate<Int32>;
 template class ParaDataArrayTemplate<Int64>;
+
+ParaDataArrayInt32 *ParaDataArrayInt32::New(DataArrayInt32 *seqDa)
+{
+    return new ParaDataArrayInt32(seqDa);
+}
+
+ParaDataArrayInt64 *ParaDataArrayInt64::New(DataArrayInt64 *seqDa)
+{
+    return new ParaDataArrayInt64(seqDa);
+}
index af77007387121d166620ccc14d03f57cd02daf7d..e06f714ef111dc8aa7f9b3b1a9ff85037e4ef975 100644 (file)
@@ -57,6 +57,8 @@ namespace MEDCoupling
 
   class ParaDataArrayInt32 : public ParaDataArrayDiscrete<Int32>
   {
+  public:
+    static ParaDataArrayInt32 *New(DataArrayInt32 *seqDa);
   private:
     ParaDataArrayInt32(DataArrayInt32 *seqDa):ParaDataArrayDiscrete<Int32>(seqDa) { }
     std::string getClassName() const override { return "ParaDataArrayInt32"; }
@@ -64,6 +66,8 @@ namespace MEDCoupling
 
   class ParaDataArrayInt64 : public ParaDataArrayDiscrete<Int64>
   {
+  public:
+    static ParaDataArrayInt64 *New(DataArrayInt64 *seqDa);
   private:
     ParaDataArrayInt64(DataArrayInt64 *seqDa):ParaDataArrayDiscrete<Int64>(seqDa) { }
     std::string getClassName() const override { return "ParaDataArrayInt64"; }
index 5ba926d7fc34034ecfa478a1c857eaae75413c58..dbe2a6000ca83334120222a85035e81450b8b41f 100644 (file)
@@ -173,6 +173,13 @@ def MEDCouplingDenseMatrixIadd(self,*args):
 def MEDCouplingDenseMatrixIsub(self,*args):
     import _ParaMEDMEM
     return _ParaMEDMEM.DenseMatrix____isub___(self, self, *args)
+
+if MEDCouplingUse64BitIDs():
+  ParaDataArrayInt = ParaDataArrayInt64
+else:
+  ParaDataArrayInt = ParaDataArrayInt32
+pass
+
 %}
 
 %include "MEDCouplingFinalize.i"
index d2eb770f41dfcdb014366aa57aeffaf70cb26e6c..2c685f7c142dbd22712af7f5a1b13229bf49c73a 100644 (file)
@@ -36,6 +36,7 @@
 #include "ComponentTopology.hxx"
 #include "ParaUMesh.hxx"
 #include "ParaSkyLineArray.hxx"
+#include "ParaDataArray.hxx"
 
 using namespace INTERP_KERNEL;
 using namespace MEDCoupling;
@@ -66,6 +67,10 @@ using namespace ICoCo;
 %newobject MEDCoupling::ParaUMesh::redistributeCells;
 %newobject MEDCoupling::ParaUMesh::redistributeCellField;
 %newobject MEDCoupling::ParaUMesh::redistributeNodeField;
+%newobject MEDCoupling::ParaDataArrayInt32::New;
+%newobject MEDCoupling::ParaDataArrayInt32::buildComplement;
+%newobject MEDCoupling::ParaDataArrayInt64::New;
+%newobject MEDCoupling::ParaDataArrayInt64::buildComplement;
 %newobject MEDCoupling::ParaSkyLineArray::New;
 %newobject MEDCoupling::ParaSkyLineArray::equiRedistribute;
 %newobject MEDCoupling::ParaSkyLineArray::getSkyLineArray;
@@ -73,6 +78,8 @@ using namespace ICoCo;
 
 %feature("unref") ParaSkyLineArray "$this->decrRef();"
 %feature("unref") ParaUMesh "$this->decrRef();"
+%feature("unref") ParaDataArrayInt32 "$this->decrRef();"
+%feature("unref") ParaDataArrayInt64 "$this->decrRef();"
 
 %nodefaultctor;
 
@@ -202,6 +209,38 @@ namespace MEDCoupling
     }
   };
 
+  class ParaDataArray : public RefCountObject
+  {
+  };
+
+  class ParaDataArrayInt32 : public ParaDataArray
+  {
+  public:
+    static ParaDataArrayInt32 *New(DataArrayInt32 *seqDa);
+    DataArrayInt32 *buildComplement(int nbOfElems) const;
+    %extend
+    {
+      ParaDataArrayInt32(DataArrayInt32 *seqDa)
+      {
+        return ParaDataArrayInt32::New(seqDa);
+      }
+    }
+  };
+
+  class ParaDataArrayInt64 : public ParaDataArray
+  {
+  public:
+    static ParaDataArrayInt64 *New(DataArrayInt64 *seqDa);
+    DataArrayInt64 *buildComplement(long nbOfElems) const;
+    %extend
+    {
+      ParaDataArrayInt64(DataArrayInt64 *seqDa)
+      {
+        return ParaDataArrayInt64::New(seqDa);
+      }
+    }
+  };
+
   class ParaSkyLineArray : public RefCountObject
   {
   public: