X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FINTERP_KERNEL%2FInterpolation3D.txx;h=8d4f7dd32a04ca4847b671776d6db58bfb9a9de9;hb=b307fa3ee9c6d9e08082e2ccc832b28a17fd6d2c;hp=c78f2a059b5f2e412b20579b15032134c4d145e6;hpb=9fda818a38b3b3350b25d22e17176cc7f0d52e81;p=tools%2Fmedcoupling.git diff --git a/src/INTERP_KERNEL/Interpolation3D.txx b/src/INTERP_KERNEL/Interpolation3D.txx old mode 100644 new mode 100755 index c78f2a059..8d4f7dd32 --- a/src/INTERP_KERNEL/Interpolation3D.txx +++ b/src/INTERP_KERNEL/Interpolation3D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2021 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 @@ -75,24 +75,24 @@ namespace INTERP_KERNEL * */ template - int Interpolation3D::interpolateMeshes(const MyMeshType& srcMesh, const MyMeshType& targetMesh, MatrixType& result, const std::string& method) + typename MyMeshType::MyConnType Interpolation3D::interpolateMeshes(const MyMeshType& srcMesh, const MyMeshType& targetMesh, MatrixType& result, const std::string& method) { typedef typename MyMeshType::MyConnType ConnType; // create MeshElement objects corresponding to each element of the two meshes - const unsigned long numSrcElems = srcMesh.getNumberOfElements(); - const unsigned long numTargetElems = targetMesh.getNumberOfElements(); + const ConnType numSrcElems = srcMesh.getNumberOfElements(); + const ConnType numTargetElems = targetMesh.getNumberOfElements(); LOG(2, "Source mesh has " << numSrcElems << " elements and target mesh has " << numTargetElems << " elements "); std::vector*> srcElems(numSrcElems); std::vector*> targetElems(numTargetElems); - std::map*, int> indices; + std::map*, ConnType> indices; - for(unsigned long i = 0 ; i < numSrcElems ; ++i) + for(ConnType i = 0 ; i < numSrcElems ; ++i) srcElems[i] = new MeshElement(i, srcMesh); - for(unsigned long i = 0 ; i < numTargetElems ; ++i) + for(ConnType i = 0 ; i < numTargetElems ; ++i) targetElems[i] = new MeshElement(i, targetMesh); Intersector3D* intersector=0; @@ -163,7 +163,7 @@ namespace INTERP_KERNEL } } else - throw Exception("Invalid method choosed must be in \"P0P0\", \"P0P1\", \"P1P0\" or \"P1P1\"."); + throw Exception("Invalid method chosen must be in \"P0P0\", \"P0P1\", \"P1P0\" or \"P1P1\"."); // create empty maps for all source elements result.resize(intersector->getNumberOfRowsOfResMatrix()); @@ -186,14 +186,14 @@ namespace INTERP_KERNEL MeshRegion& srcRegion = firstNode->getSrcRegion(); - for(unsigned long i = 0 ; i < numSrcElems ; ++i) + for(ConnType i = 0 ; i < numSrcElems ; ++i) { srcRegion.addElement(srcElems[i], srcMesh); } MeshRegion& targetRegion = firstNode->getTargetRegion(); - for(unsigned long i = 0 ; i < numTargetElems ; ++i) + for(ConnType i = 0 ; i < numTargetElems ; ++i) { if(!srcRegion.isDisjointWithElementBoundingBox( *(targetElems[i]) )) { @@ -252,8 +252,8 @@ namespace INTERP_KERNEL // add source elements of current node that overlap the target regions of the new nodes LOG(5, " -- Adding source elements"); - int numLeftElements = 0; - int numRightElements = 0; + ConnType numLeftElements = 0; + ConnType numRightElements = 0; for(typename std::vector*>::const_iterator iter = currNode->getSrcRegion().getBeginElements() ; iter != currNode->getSrcRegion().getEndElements() ; ++iter) { @@ -307,8 +307,8 @@ namespace INTERP_KERNEL // create BBTree structure // - get bounding boxes double* bboxes = new double[6 * numSrcElems]; - int* srcElemIdx = new int[numSrcElems]; - for(unsigned long i = 0; i < numSrcElems ; ++i) + ConnType* srcElemIdx = new ConnType[numSrcElems]; + for(ConnType i = 0; i < numSrcElems ; ++i) { // get source bboxes in right order const BoundingBox* box = srcElems[i]->getBoundingBox(); @@ -327,10 +327,10 @@ namespace INTERP_KERNEL // for each target element, get source elements with which to calculate intersection // - calculate intersection by calling intersectCells - for(unsigned long i = 0; i < numTargetElems; ++i) + for(ConnType i = 0; i < numTargetElems; ++i) { const BoundingBox* box = targetElems[i]->getBoundingBox(); - const int targetIdx = targetElems[i]->getIndex(); + const ConnType targetIdx = targetElems[i]->getIndex(); // get target bbox in right order double targetBox[6]; @@ -354,15 +354,15 @@ namespace INTERP_KERNEL #endif // free allocated memory - int ret=intersector->getNumberOfColsOfResMatrix(); + ConnType ret=intersector->getNumberOfColsOfResMatrix(); delete intersector; - for(unsigned long i = 0 ; i < numSrcElems ; ++i) + for(ConnType i = 0 ; i < numSrcElems ; ++i) { delete srcElems[i]; } - for(unsigned long i = 0 ; i < numTargetElems ; ++i) + for(ConnType i = 0 ; i < numTargetElems ; ++i) { delete targetElems[i]; }