]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
a useful method in DataArray
authorAnthony Geay <anthony.geay@edf.fr>
Mon, 25 Jul 2016 16:51:31 +0000 (18:51 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Mon, 25 Jul 2016 16:51:31 +0000 (18:51 +0200)
src/MEDCoupling/MEDCouplingMemArray.cxx
src/MEDCoupling/MEDCouplingMemArray.hxx
src/MEDCoupling_Swig/MEDCouplingMemArray.i

index 8ccb92e540131fdcca2c70e82283e1ee8d3d361d..9a41ce72992c9fd71392027553664b00a958fb75 100644 (file)
@@ -3061,6 +3061,15 @@ void DataArrayDouble::useExternalArrayWithRWAccess(const double *array, int nbOf
   declareAsNew();
 }
 
+void DataArrayDouble::aggregate(const DataArrayDouble *other)
+{
+  if(!other)
+    throw INTERP_KERNEL::Exception("DataArrayDouble::aggregate : null pointer !");
+  if(getNumberOfComponents()!=other->getNumberOfComponents())
+    throw INTERP_KERNEL::Exception("DataArrayDouble::aggregate : mismatch number of components !");
+  _mem.insertAtTheEnd(other->begin(),other->end());
+}
+
 /*!
  * Checks if 0.0 value is present in \a this array. If it is the case, an exception
  * is thrown.
@@ -7159,6 +7168,15 @@ void DataArrayInt::useExternalArrayWithRWAccess(const int *array, int nbOfTuple,
   declareAsNew();
 }
 
+void DataArrayInt::aggregate(const DataArrayInt *other)
+{
+  if(!other)
+    throw INTERP_KERNEL::Exception("DataArrayInt::aggregate : null pointer !");
+  if(getNumberOfComponents()!=other->getNumberOfComponents())
+    throw INTERP_KERNEL::Exception("DataArrayInt::aggregate : mismatch number of components !");
+  _mem.insertAtTheEnd(other->begin(),other->end());
+}
+
 /*!
  * Returns a new DataArrayInt holding the same values as \a this array but differently
  * arranged in memory. If \a this array holds 2 components of 3 values:
index 725d3d121e69af1c1972150c1031650a136285e1..a4eb5f7cb9b3eaf3fdc56a4b634ba3ae218bcccf 100644 (file)
@@ -308,6 +308,7 @@ namespace MEDCoupling
     MEDCOUPLING_EXPORT void useExternalArrayWithRWAccess(const double *array, int nbOfTuple, int nbOfCompo);
     template<class InputIterator>
     void insertAtTheEnd(InputIterator first, InputIterator last);
+    MEDCOUPLING_EXPORT void aggregate(const DataArrayDouble *other);
     MEDCOUPLING_EXPORT void writeOnPlace(std::size_t id, double element0, const double *others, int sizeOfOthers) { _mem.writeOnPlace(id,element0,others,sizeOfOthers); }
     MEDCOUPLING_EXPORT void checkNoNullValues() const;
     MEDCOUPLING_EXPORT void getMinMaxPerComponent(double *bounds) const;
@@ -626,6 +627,7 @@ namespace MEDCoupling
     MEDCOUPLING_EXPORT void useExternalArrayWithRWAccess(const int *array, int nbOfTuple, int nbOfCompo);
     template<class InputIterator>
     void insertAtTheEnd(InputIterator first, InputIterator last);
+    MEDCOUPLING_EXPORT void aggregate(const DataArrayInt *other);
     MEDCOUPLING_EXPORT void writeOnPlace(std::size_t id, int element0, const int *others, int sizeOfOthers) { _mem.writeOnPlace(id,element0,others,sizeOfOthers); }
     MEDCOUPLING_EXPORT static DataArrayInt *Add(const DataArrayInt *a1, const DataArrayInt *a2);
     MEDCOUPLING_EXPORT void addEqual(const DataArrayInt *other);
index 81516f01c36f1251c0aa42de7769bcd6cabbbb1f..7beeb58a45a6483136e5a15f52fa88a2b8698809 100644 (file)
@@ -532,6 +532,7 @@ namespace MEDCoupling
     static DataArrayDouble *New();
     double doubleValue() const throw(INTERP_KERNEL::Exception);
     bool empty() const throw(INTERP_KERNEL::Exception);
+    void aggregate(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception);
     DataArrayDouble *performCopyOrIncrRef(bool deepCopy) const throw(INTERP_KERNEL::Exception);
     void deepCopyFrom(const DataArrayDouble& other) throw(INTERP_KERNEL::Exception);
     void reserve(std::size_t nbOfElems) throw(INTERP_KERNEL::Exception);
@@ -2587,6 +2588,7 @@ namespace MEDCoupling
     int intValue() const throw(INTERP_KERNEL::Exception);
     int getHashCode() const throw(INTERP_KERNEL::Exception);
     bool empty() const throw(INTERP_KERNEL::Exception);
+    void aggregate(const DataArrayInt *other) throw(INTERP_KERNEL::Exception);
     DataArrayInt *performCopyOrIncrRef(bool deepCopy) const throw(INTERP_KERNEL::Exception);
     void deepCopyFrom(const DataArrayInt& other) throw(INTERP_KERNEL::Exception);
     void reserve(std::size_t nbOfElems) throw(INTERP_KERNEL::Exception);