]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
*** empty log message *** FistStepOK2
authorageay <ageay>
Mon, 14 Mar 2011 07:16:08 +0000 (07:16 +0000)
committerageay <ageay>
Mon, 14 Mar 2011 07:16:08 +0000 (07:16 +0000)
src/MEDCoupling/MEDCouplingCMesh.cxx
src/MEDCoupling/MEDCouplingCMesh.hxx
src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx
src/MEDCoupling/MEDCouplingPointSet.cxx
src/MEDCoupling/MEDCouplingPointSet.hxx
src/MEDCoupling/MEDCouplingUMesh.cxx
src/MEDCoupling/MEDCouplingUMesh.hxx
src/MEDCoupling_Swig/MEDCoupling.i
src/MEDLoader/MEDFileMesh.cxx
src/MEDLoader/MEDLoader.cxx

index 5ba8b865760a91b9766aa52b84f963561c5d306b..baabc6570433fb5b32b5d055a26f3d46925dbcec 100644 (file)
@@ -396,7 +396,7 @@ std::string MEDCouplingCMesh::advancedRepr() const
   return simpleRepr();
 }
 
-DataArrayDouble *MEDCouplingCMesh::getCoordsAt(int i) const throw(INTERP_KERNEL::Exception)
+const DataArrayDouble *MEDCouplingCMesh::getCoordsAt(int i) const throw(INTERP_KERNEL::Exception)
 {
   switch(i)
     {
@@ -411,7 +411,22 @@ DataArrayDouble *MEDCouplingCMesh::getCoordsAt(int i) const throw(INTERP_KERNEL:
     }
 }
 
-void MEDCouplingCMesh::setCoordsAt(int i, DataArrayDouble *arr) throw(INTERP_KERNEL::Exception)
+DataArrayDouble *MEDCouplingCMesh::getCoordsAt(int i) throw(INTERP_KERNEL::Exception)
+{
+  switch(i)
+    {
+    case 0:
+      return _x_array;
+    case 1:
+      return _y_array;
+    case 2:
+      return _z_array;
+    default:
+      throw INTERP_KERNEL::Exception("Invalid rank specified must be 0 or 1 or 2.");
+    }
+}
+
+void MEDCouplingCMesh::setCoordsAt(int i, const DataArrayDouble *arr) throw(INTERP_KERNEL::Exception)
 {
   DataArrayDouble **thisArr[3]={&_x_array,&_y_array,&_z_array};
   if(i<0 || i>2)
@@ -420,28 +435,28 @@ void MEDCouplingCMesh::setCoordsAt(int i, DataArrayDouble *arr) throw(INTERP_KER
     {
       if(*(thisArr[i]))
         (*(thisArr[i]))->decrRef();
-      (*(thisArr[i]))=arr;
+      (*(thisArr[i]))=const_cast<DataArrayDouble *>(arr);
       if(*(thisArr[i]))
         (*(thisArr[i]))->incrRef();
       declareAsNew();
     }
 }
 
-void MEDCouplingCMesh::setCoords(DataArrayDouble *coordsX, DataArrayDouble *coordsY, DataArrayDouble *coordsZ)
+void MEDCouplingCMesh::setCoords(const DataArrayDouble *coordsX, const DataArrayDouble *coordsY, const DataArrayDouble *coordsZ)
 {
   if(_x_array)
     _x_array->decrRef();
-  _x_array=coordsX;
+  _x_array=const_cast<DataArrayDouble *>(coordsX);
   if(_x_array)
     _x_array->incrRef();
   if(_y_array)
     _y_array->decrRef();
-  _y_array=coordsY;
+  _y_array=const_cast<DataArrayDouble *>(coordsY);
   if(_y_array)
     _y_array->incrRef();
   if(_z_array)
     _z_array->decrRef();
-  _z_array=coordsZ;
+  _z_array=const_cast<DataArrayDouble *>(coordsZ);
   if(_z_array)
     _z_array->incrRef();
   declareAsNew();
@@ -534,7 +549,7 @@ void MEDCouplingCMesh::getBoundingBox(double *bbox) const
   int j=0;
   for (int idim=0; idim<dim; idim++)
     {
-      DataArrayDouble *c=getCoordsAt(idim);
+      const DataArrayDouble *c=getCoordsAt(idim);
       if(c)
         {
           const double *coords=c->getConstPointer();
@@ -675,7 +690,7 @@ DataArrayDouble *MEDCouplingCMesh::getCoordinatesAndOwner() const
   double *pt=ret->getPointer();
   int tmp[3];
   getSplitNodeValues(tmp);
-  DataArrayDouble *tabs[3]={getCoordsAt(0),getCoordsAt(1),getCoordsAt(2)};
+  const DataArrayDouble *tabs[3]={getCoordsAt(0),getCoordsAt(1),getCoordsAt(2)};
   const double *tabsPtr[3];
   for(int j=0;j<spaceDim;j++)
     {
@@ -701,7 +716,7 @@ DataArrayDouble *MEDCouplingCMesh::getBarycenterAndOwner() const
   double *pt=ret->getPointer();
   int tmp[3];
   getSplitCellValues(tmp);
-  DataArrayDouble *tabs[3]={getCoordsAt(0),getCoordsAt(1),getCoordsAt(2)};
+  const DataArrayDouble *tabs[3]={getCoordsAt(0),getCoordsAt(1),getCoordsAt(2)};
   std::vector<double> tabsPtr[3];
   for(int j=0;j<spaceDim;j++)
     {
index 28ec3d392a25398b3ae0d1daa489d81b24086548..a2b8356d7f634d4eeda31209020b2243c5f35f93 100644 (file)
@@ -57,11 +57,12 @@ namespace ParaMEDMEM
     void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
     std::string simpleRepr() const;
     std::string advancedRepr() const;
-    DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception);
-    void setCoordsAt(int i, DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
-    void setCoords(DataArrayDouble *coordsX,
-                   DataArrayDouble *coordsY=0,
-                   DataArrayDouble *coordsZ=0);
+    const DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception);
+    DataArrayDouble *getCoordsAt(int i) throw(INTERP_KERNEL::Exception);
+    void setCoordsAt(int i, const DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
+    void setCoords(const DataArrayDouble *coordsX,
+                   const DataArrayDouble *coordsY=0,
+                   const DataArrayDouble *coordsZ=0);
     // tools
     DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const throw(INTERP_KERNEL::Exception);
     MEDCouplingUMesh *buildUnstructured() const throw(INTERP_KERNEL::Exception);
index e279727d319bf27f68b26dcdedcefe3233302fc6..902efb2a8657d20fe5436cca7ef7b4a27964b3cc 100644 (file)
@@ -42,7 +42,7 @@ void MEDCouplingNormalizedUnstructuredMesh<SPACEDIM,MESHDIM>::getBoundingBox(dou
       boundingBox[i]=std::numeric_limits<double>::max();
       boundingBox[SPACEDIM+i]=-std::numeric_limits<double>::max();
     }
-  ParaMEDMEM::DataArrayDouble *array=_mesh->getCoords();
+  const ParaMEDMEM::DataArrayDouble *array=_mesh->getCoords();
   const double *ptr=array->getConstPointer();
   int nbOfPts=array->getNbOfElems()/SPACEDIM;
   for(int j=0;j<SPACEDIM;j++)
@@ -91,7 +91,7 @@ const int *MEDCouplingNormalizedUnstructuredMesh<SPACEDIM,MESHDIM>::getConnectiv
 template<int SPACEDIM,int MESHDIM>
 const double *MEDCouplingNormalizedUnstructuredMesh<SPACEDIM,MESHDIM>::getCoordinatesPtr() const
 {
-  ParaMEDMEM::DataArrayDouble *array=_mesh->getCoords();
+  const ParaMEDMEM::DataArrayDouble *array=_mesh->getCoords();
   return array->getConstPointer();
 }
 
index 816023a9bc0458c627bba1b9266ddd4eb00fb95a..588013a2c35cf4d82e6df3169d2184a4e7e1f1bd 100644 (file)
@@ -73,13 +73,13 @@ void MEDCouplingPointSet::updateTime() const
     }
 }
 
-void MEDCouplingPointSet::setCoords(DataArrayDouble *coords)
+void MEDCouplingPointSet::setCoords(const DataArrayDouble *coords)
 {
   if( coords != _coords )
     {
       if (_coords)
         _coords->decrRef();
-      _coords=coords;
+      _coords=const_cast<DataArrayDouble *>(coords);
       if(_coords)
         _coords->incrRef();
       declareAsNew();
@@ -642,7 +642,7 @@ void MEDCouplingPointSet::serialize(DataArrayInt *&a1, DataArrayDouble *&a2) con
 {
   if(_coords)
     {
-      a2=getCoords();
+      a2=const_cast<DataArrayDouble *>(getCoords());
       a2->incrRef();
     }
   else
index f18a77b0fa55212def47b89c40a1ed855cef50a1..7367d9ca89b369d081970e64399dbc0e0daba710 100644 (file)
@@ -45,8 +45,9 @@ namespace ParaMEDMEM
     void updateTime() const;
     int getNumberOfNodes() const;
     int getSpaceDimension() const;
-    void setCoords(DataArrayDouble *coords);
-    DataArrayDouble *getCoords() const { return _coords; }
+    void setCoords(const DataArrayDouble *coords);
+    const DataArrayDouble *getCoords() const { return _coords; }
+    DataArrayDouble *getCoords() { return _coords; }
     DataArrayDouble *getCoordinatesAndOwner() const;
     void copyTinyStringsFrom(const MEDCouplingMesh *other) throw(INTERP_KERNEL::Exception);
     bool isEqual(const MEDCouplingMesh *other, double prec) const;
index b7c59e5ba9f038cea1278b565b1e109e820214fe..ec4ae02723224dd8fb82f4f3414ea6574746d253 100644 (file)
@@ -980,7 +980,7 @@ DataArrayInt *MEDCouplingUMesh::mergeNodes2(double precision, bool& areNodesMerg
  */
 void MEDCouplingUMesh::tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon) throw(INTERP_KERNEL::Exception)
 {
-  DataArrayDouble *coords=other.getCoords();
+  const DataArrayDouble *coords=other.getCoords();
   if(!coords)
     throw INTERP_KERNEL::Exception("tryToShareSameCoordsPermute : No coords specified in other !");
   if(!_coords)
@@ -3742,7 +3742,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshesOnSameCoords(const std::vector<c
 {
   if(meshes.empty())
     throw INTERP_KERNEL::Exception("meshes input parameter is expected to be non empty.");
-  DataArrayDouble *coords=meshes.front()->getCoords();
+  const DataArrayDouble *coords=meshes.front()->getCoords();
   int meshDim=meshes.front()->getMeshDimension();
   std::vector<const MEDCouplingUMesh *>::const_iterator iter=meshes.begin();
   int meshLgth=0;
index 5e33d1382292c7ea25fb3a2f0f5e5cd1d01f95b4..6e47ce83e8f4ad54d65bf2f0af4757b15df7aa96 100644 (file)
@@ -52,8 +52,10 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT const std::set<INTERP_KERNEL::NormalizedCellType>& getAllTypes() const { return _types; }
     MEDCOUPLING_EXPORT std::set<INTERP_KERNEL::NormalizedCellType> getTypesOfPart(const int *begin, const int *end) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void setConnectivity(DataArrayInt *conn, DataArrayInt *connIndex, bool isComputingTypes=true);
-    MEDCOUPLING_EXPORT DataArrayInt *getNodalConnectivity() const { return _nodal_connec; }
-    MEDCOUPLING_EXPORT DataArrayInt *getNodalConnectivityIndex() const { return _nodal_connec_index; }
+    MEDCOUPLING_EXPORT const DataArrayInt *getNodalConnectivity() const { return _nodal_connec; }
+    MEDCOUPLING_EXPORT const DataArrayInt *getNodalConnectivityIndex() const { return _nodal_connec_index; }
+    MEDCOUPLING_EXPORT DataArrayInt *getNodalConnectivity() { return _nodal_connec; }
+    MEDCOUPLING_EXPORT DataArrayInt *getNodalConnectivityIndex() { return _nodal_connec_index; }
     MEDCOUPLING_EXPORT INTERP_KERNEL::NormalizedCellType getTypeOfCell(int cellId) const;
     MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
index 66170e99b7f213e7e9d50fc799c3f41c649741f2..948becb315ec249d71db56695c0e64cce33a4c4b 100644 (file)
@@ -246,7 +246,6 @@ using namespace INTERP_KERNEL;
 %rename(assign) *::operator=;
 %ignore ParaMEDMEM::MemArray::operator=;
 %ignore ParaMEDMEM::MemArray::operator[];
-%ignore ParaMEDMEM::MEDCouplingPointSet::getCoords();
 %ignore ParaMEDMEM::MEDCouplingGaussLocalization::pushTinySerializationIntInfo;
 %ignore ParaMEDMEM::MEDCouplingGaussLocalization::pushTinySerializationDblInfo;
 %ignore ParaMEDMEM::MEDCouplingGaussLocalization::fillWithValues;
@@ -541,7 +540,7 @@ namespace ParaMEDMEM
     {
     public:
       void updateTime() const;
-      void setCoords(DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
+      void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
       DataArrayDouble *getCoordinatesAndOwner() const throw(INTERP_KERNEL::Exception);
       bool areCoordsEqual(const MEDCouplingPointSet& other, double prec) const throw(INTERP_KERNEL::Exception);
       void zipCoords() throw(INTERP_KERNEL::Exception);
@@ -588,7 +587,7 @@ namespace ParaMEDMEM
              return res;
            }
            
-           PyObject *getCoords() const throw(INTERP_KERNEL::Exception)
+           PyObject *getCoords() throw(INTERP_KERNEL::Exception)
            {
              DataArrayDouble *ret1=self->getCoords();
              ret1->incrRef();
@@ -832,14 +831,14 @@ namespace ParaMEDMEM
         INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&sz);
         self->insertNextCell(type,size,tmp);
       }
-      DataArrayInt *getNodalConnectivity() const throw(INTERP_KERNEL::Exception)
+      DataArrayInt *getNodalConnectivity() throw(INTERP_KERNEL::Exception)
       {
         DataArrayInt *ret=self->getNodalConnectivity();
         if(ret)
           ret->incrRef();
         return ret;
       }
-      DataArrayInt *getNodalConnectivityIndex() const throw(INTERP_KERNEL::Exception)
+      DataArrayInt *getNodalConnectivityIndex() throw(INTERP_KERNEL::Exception)
       {
         DataArrayInt *ret=self->getNodalConnectivityIndex();
         if(ret)
@@ -1155,16 +1154,16 @@ namespace ParaMEDMEM
   {
   public:
     static MEDCouplingCMesh *New();
-    void setCoords(DataArrayDouble *coordsX,
-                   DataArrayDouble *coordsY=0,
-                   DataArrayDouble *coordsZ=0) throw(INTERP_KERNEL::Exception);
-    void setCoordsAt(int i, DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
+    void setCoords(const DataArrayDouble *coordsX,
+                   const DataArrayDouble *coordsY=0,
+                   const DataArrayDouble *coordsZ=0) throw(INTERP_KERNEL::Exception);
+    void setCoordsAt(int i, const DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
     %extend {
       std::string __str__() const
       {
         return self->simpleRepr();
       }
-      DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception)
+      DataArrayDouble *getCoordsAt(int i) throw(INTERP_KERNEL::Exception)
       {
         DataArrayDouble *ret=self->getCoordsAt(i);
         if(ret)
index 49221aea0e57663c6114c20cfbe9fb027f723a01..6a026ac2471e146586b9c206ba769050bbc73faf 100644 (file)
@@ -1280,7 +1280,7 @@ void MEDFileUMesh::setGroupsOnSetMesh(int meshDimRelToMax, const std::vector<con
 
 DataArrayDouble *MEDFileUMesh::checkMultiMesh(const std::vector<const MEDCouplingUMesh *>& ms) const throw(INTERP_KERNEL::Exception)
 {
-  DataArrayDouble *ret=ms[0]->getCoords();
+  const DataArrayDouble *ret=ms[0]->getCoords();
   int mdim=ms[0]->getMeshDimension();
   for(unsigned int i=1;i<ms.size();i++)
     {
@@ -1290,7 +1290,7 @@ DataArrayDouble *MEDFileUMesh::checkMultiMesh(const std::vector<const MEDCouplin
       if(ms[i]->getMeshDimension()!=mdim)
         throw INTERP_KERNEL::Exception("MEDFileUMesh::checkMultiMesh : meshes have not same mesh dimension !");
     }
-  return ret;
+  return const_cast<DataArrayDouble *>(ret);
 }
 
 void MEDFileUMesh::setFamilyFieldArr(int meshDimRelToMaxExt, DataArrayInt *famArr) throw(INTERP_KERNEL::Exception)
@@ -1631,7 +1631,7 @@ void MEDFileCMesh::write(const char *fileName, int mode) const throw(INTERP_KERN
   MEDmeshGridTypeWr(fid,maa,MED_CARTESIAN_GRID);
   for(int i=0;i<spaceDim;i++)
     {
-      DataArrayDouble *da=_cmesh->getCoordsAt(i);
+      const DataArrayDouble *da=_cmesh->getCoordsAt(i);
       MEDmeshGridIndexCoordinateWr(fid,maa,_iteration,_order,_time,i+1,da->getNumberOfTuples(),da->getConstPointer());
     }
   if((const DataArrayInt *)_fam_cells)
index 1c92710b831f75a78b47320f2ab1e23020426ecc..4fbfe38c929e79e63b812db8f10ffffd6c801e78 100644 (file)
@@ -2103,7 +2103,7 @@ void MEDLoaderNS::writeUMeshesDirectly(const char *fileName, const std::vector<c
   MEDLoaderBase::safeStrCpy(mesh[0]->getDescription(),MED_COMMENT_SIZE,desc,MEDLoader::_TOO_LONG_STR);
   const int spaceDim=mesh[0]->getSpaceDimension();
   const int meshDim=mesh[0]->getMeshDimension();
-  DataArrayDouble *arr=mesh[0]->getCoords();
+  const DataArrayDouble *arr=mesh[0]->getCoords();
   INTERP_KERNEL::AutoPtr<char> comp=MEDLoaderBase::buildEmptyString(spaceDim*MED_SNAME_SIZE);
   INTERP_KERNEL::AutoPtr<char> unit=MEDLoaderBase::buildEmptyString(spaceDim*MED_SNAME_SIZE);
   for(int i=0;i<spaceDim;i++)
@@ -2621,7 +2621,7 @@ void MEDLoader::WriteUMeshesPartition(const char *fileName, const char *meshName
     }
   if(meshes.empty())
     throw INTERP_KERNEL::Exception("List of meshes must be not empty !");
-  DataArrayDouble *coords=meshes.front()->getCoords();
+  const DataArrayDouble *coords=meshes.front()->getCoords();
   for(std::vector<const ParaMEDMEM::MEDCouplingUMesh *>::const_iterator iter=meshes.begin();iter!=meshes.end();iter++)
     if(coords!=(*iter)->getCoords())
       throw INTERP_KERNEL::Exception("Meshes does not not share the same coordinates : try method MEDCouplingPointSet::tryToShareSameCoords !");
@@ -2671,7 +2671,7 @@ void MEDLoader::WriteUMeshesPartitionDep(const char *fileName, const char *meshN
     }
   if(meshes.empty())
     throw INTERP_KERNEL::Exception("List of meshes must be not empty !");
-  DataArrayDouble *coords=meshes.front()->getCoords();
+  const DataArrayDouble *coords=meshes.front()->getCoords();
   for(std::vector<const ParaMEDMEM::MEDCouplingUMesh *>::const_iterator iter=meshes.begin();iter!=meshes.end();iter++)
     if(coords!=(*iter)->getCoords())
       throw INTERP_KERNEL::Exception("Meshes does not not share the same coordinates : try method MEDCouplingPointSet::tryToShareSameCoords !");
@@ -2713,7 +2713,7 @@ void MEDLoader::WriteUMeshes(const char *fileName, const std::vector<const ParaM
   std::string meshName(meshes[0]->getName());
   if(meshName.empty())
     throw INTERP_KERNEL::Exception("Trying to write a unstructured mesh with no name ! MED file format needs a not empty mesh name : change name of first element of 2nd parameter !");
-  DataArrayDouble *coords=meshes.front()->getCoords();
+  const DataArrayDouble *coords=meshes.front()->getCoords();
   for(std::vector<const ParaMEDMEM::MEDCouplingUMesh *>::const_iterator iter=meshes.begin();iter!=meshes.end();iter++)
     if(coords!=(*iter)->getCoords())
       throw INTERP_KERNEL::Exception("Meshes does not not share the same coordinates : try method MEDCouplingPointSet::tryToShareSameCoords !");