From: eap Date: Thu, 14 Nov 2019 15:54:58 +0000 (+0300) Subject: LOT2: move mcIdType to INTERP_KERNEL. Care of MEDCouplingNormalizedUnstructuredMesh.hxx X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d8c2833b324394f1ea46203cfb477307a8ab7443;p=tools%2Fmedcoupling.git LOT2: move mcIdType to INTERP_KERNEL. Care of MEDCouplingNormalizedUnstructuredMesh.hxx --- diff --git a/src/INTERP_KERNEL/MCIdType.hxx b/src/INTERP_KERNEL/MCIdType.hxx new file mode 100644 index 000000000..a74f075f8 --- /dev/null +++ b/src/INTERP_KERNEL/MCIdType.hxx @@ -0,0 +1,43 @@ +// Copyright (C) 2017-2019 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// Author : Anthony Geay (EDF R&D) + +#ifndef __IK_MCIDTYPE_HXX__ +#define __IK_MCIDTYPE_HXX__ + +#include +#include +#include + +#ifndef MEDCOUPLING_USE_64BIT_IDS + +typedef std::int32_t mcIdType; + +#else + +typedef std::int64_t mcIdType; + +#endif + +template inline mcIdType ToIdType(T val) +{ + return static_cast(val); +} + +#endif diff --git a/src/MEDCoupling/MCType.hxx b/src/MEDCoupling/MCType.hxx index f7cbce4d2..82a66c9cb 100644 --- a/src/MEDCoupling/MCType.hxx +++ b/src/MEDCoupling/MCType.hxx @@ -21,31 +21,27 @@ #ifndef __MEDCOUPLING_MCTYPE_HXX__ #define __MEDCOUPLING_MCTYPE_HXX__ +#include "MCIdType.hxx" + #include #include #include namespace MEDCoupling { + using mcIdType = ::mcIdType; using Int64 = std::int64_t; using Int32 = std::int32_t; #ifndef MEDCOUPLING_USE_64BIT_IDS - using mcIdType = std::int32_t; #define DataArrayIdType DataArrayInt32 #else - using mcIdType = std::int64_t; #define DataArrayIdType DataArrayInt64 #endif - template inline mcIdType ToIdType(T val) - { - return static_cast(val); - } - #define DataArrayInt DataArrayInt32 #define DataArrayIntIterator DataArrayInt32Iterator } diff --git a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx index 9a9bd6325..bdf3a7e3d 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx +++ b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx @@ -35,26 +35,26 @@ class MEDCouplingNormalizedUnstructuredMesh public: static const int MY_SPACEDIM=SPACEDIM; static const int MY_MESHDIM=MESHDIM; - typedef int MyConnType; + typedef mcIdType MyConnType; static const INTERP_KERNEL::NumberingPolicy My_numPol=INTERP_KERNEL::ALL_C_MODE; public: MEDCouplingNormalizedUnstructuredMesh(const MEDCoupling::MEDCouplingPointSet *mesh); void getBoundingBox(double *boundingBox) const; - INTERP_KERNEL::NormalizedCellType getTypeOfElement(int eltId) const; - int getNumberOfNodesOfElement(int eltId) const; - int getNumberOfElements() const; - int getNumberOfNodes() const; - const int *getConnectivityPtr() const; + INTERP_KERNEL::NormalizedCellType getTypeOfElement(mcIdType eltId) const; + int getNumberOfNodesOfElement(mcIdType eltId) const; + mcIdType getNumberOfElements() const; + mcIdType getNumberOfNodes() const; + const mcIdType *getConnectivityPtr() const; const double *getCoordinatesPtr() const; - const int *getConnectivityIndexPtr() const; + const mcIdType *getConnectivityIndexPtr() const; void releaseTempArrays(); ~MEDCouplingNormalizedUnstructuredMesh(); private: void prepare(); private: const MEDCoupling::MEDCouplingPointSet *_mesh; - int *_conn_for_interp; - int *_conn_index_for_interp; + mcIdType *_conn_for_interp; + mcIdType *_conn_index_for_interp; }; #endif diff --git a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx index 7ca18cb07..c8b059097 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx +++ b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx @@ -48,11 +48,11 @@ void MEDCouplingNormalizedUnstructuredMesh::getBoundingBox(dou } const MEDCoupling::DataArrayDouble *array=_mesh->getCoords(); const double *ptr=array->getConstPointer(); - MEDCoupling::mcIdType nbOfPts=MEDCoupling::ToIdType(array->getNbOfElems())/SPACEDIM; + mcIdType nbOfPts=ToIdType(array->getNbOfElems())/SPACEDIM; for(int j=0;j*work) boundingBox[j]=*work; @@ -63,31 +63,31 @@ void MEDCouplingNormalizedUnstructuredMesh::getBoundingBox(dou } template -INTERP_KERNEL::NormalizedCellType MEDCouplingNormalizedUnstructuredMesh::getTypeOfElement(int eltId) const +INTERP_KERNEL::NormalizedCellType MEDCouplingNormalizedUnstructuredMesh::getTypeOfElement(mcIdType eltId) const { return _mesh->getTypeOfCell(eltId); } template -int MEDCouplingNormalizedUnstructuredMesh::getNumberOfNodesOfElement(int eltId) const +int MEDCouplingNormalizedUnstructuredMesh::getNumberOfNodesOfElement(mcIdType eltId) const { return _mesh->getNumberOfNodesInCell(eltId); } template -int MEDCouplingNormalizedUnstructuredMesh::getNumberOfElements() const +mcIdType MEDCouplingNormalizedUnstructuredMesh::getNumberOfElements() const { - return MEDCoupling::ToIdType(_mesh->getNumberOfCells()); + return ToIdType(_mesh->getNumberOfCells()); } template -int MEDCouplingNormalizedUnstructuredMesh::getNumberOfNodes() const +mcIdType MEDCouplingNormalizedUnstructuredMesh::getNumberOfNodes() const { return _mesh->getNumberOfNodes(); } template -const int *MEDCouplingNormalizedUnstructuredMesh::getConnectivityPtr() const +const mcIdType *MEDCouplingNormalizedUnstructuredMesh::getConnectivityPtr() const { return _conn_for_interp; } @@ -100,7 +100,7 @@ const double *MEDCouplingNormalizedUnstructuredMesh::getCoordi } template -const int *MEDCouplingNormalizedUnstructuredMesh::getConnectivityIndexPtr() const +const mcIdType *MEDCouplingNormalizedUnstructuredMesh::getConnectivityIndexPtr() const { return _conn_index_for_interp; } @@ -129,18 +129,18 @@ void MEDCouplingNormalizedUnstructuredMesh::prepare() const MEDCoupling::MEDCouplingUMesh *m1(dynamic_cast(_mesh)); if(m1) { - MEDCoupling::mcIdType nbOfCell=MEDCoupling::ToIdType(m1->getNumberOfCells()); - MEDCoupling::mcIdType initialConnSize=MEDCoupling::ToIdType(m1->getNodalConnectivity()->getNbOfElems()); - _conn_for_interp=new int[initialConnSize-nbOfCell]; - _conn_index_for_interp=new int[nbOfCell+1]; + mcIdType nbOfCell=ToIdType(m1->getNumberOfCells()); + mcIdType initialConnSize=ToIdType(m1->getNodalConnectivity()->getNbOfElems()); + _conn_for_interp=new mcIdType[initialConnSize-nbOfCell]; + _conn_index_for_interp=new mcIdType[nbOfCell+1]; _conn_index_for_interp[0]=0; - const int *work_conn=m1->getNodalConnectivity()->getConstPointer()+1; - const int *work_conn_index=m1->getNodalConnectivityIndex()->getConstPointer(); - int *work_conn_for_interp=_conn_for_interp; - int *work_conn_index_for_interp=_conn_index_for_interp; - for(int i=0;igetNodalConnectivity()->getConstPointer()+1; + const mcIdType *work_conn_index=m1->getNodalConnectivityIndex()->getConstPointer(); + mcIdType *work_conn_for_interp=_conn_for_interp; + mcIdType *work_conn_index_for_interp=_conn_index_for_interp; + for(mcIdType i=0;i::prepare() const MEDCoupling::MEDCoupling1DGTUMesh *m2(dynamic_cast(_mesh)); if(m2) { - MEDCoupling::mcIdType nbOfCell=MEDCoupling::ToIdType(m2->getNumberOfCells()); - _conn_index_for_interp=new int[nbOfCell+1]; - const int *conni(m2->getNodalConnectivityIndex()->begin()); + mcIdType nbOfCell=ToIdType(m2->getNumberOfCells()); + _conn_index_for_interp=new mcIdType[nbOfCell+1]; + const mcIdType *conni(m2->getNodalConnectivityIndex()->begin()); std::copy(conni,conni+nbOfCell+1,_conn_index_for_interp); - _conn_for_interp=new int[m2->getNodalConnectivity()->getNumberOfTuples()]; + _conn_for_interp=new mcIdType[m2->getNodalConnectivity()->getNumberOfTuples()]; std::copy(m2->getNodalConnectivity()->begin(),m2->getNodalConnectivity()->end(),_conn_for_interp); return ; } const MEDCoupling::MEDCoupling1SGTUMesh *m3(dynamic_cast(_mesh)); if(m3) { - MEDCoupling::mcIdType nbOfCell=MEDCoupling::ToIdType(m3->getNumberOfCells()),nbNodesPerCell(m3->getNumberOfNodesPerCell()); - _conn_index_for_interp=new int[nbOfCell+1]; _conn_index_for_interp[0]=0; - int *work(_conn_index_for_interp); - for(int i=0;igetNumberOfCells()),nbNodesPerCell(m3->getNumberOfNodesPerCell()); + _conn_index_for_interp=new mcIdType[nbOfCell+1]; _conn_index_for_interp[0]=0; + mcIdType *work(_conn_index_for_interp); + for(mcIdType i=0;igetNodalConnectivity()->getNumberOfTuples()]; + _conn_for_interp=new mcIdType[m3->getNodalConnectivity()->getNumberOfTuples()]; std::copy(m3->getNodalConnectivity()->begin(),m3->getNodalConnectivity()->end(),_conn_for_interp); return ; }