X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverGMF%2FDriverGMF_Write.cxx;h=37bc478b8f88cecadbff95cbe2564fd8a2f370b8;hp=510585a5634f7c597243284b357d5506b38290e4;hb=499f29d24922cec66e41b41a0039a954993bc6df;hpb=0fc0831670e27a5611b941c52dc152fd63964515 diff --git a/src/DriverGMF/DriverGMF_Write.cxx b/src/DriverGMF/DriverGMF_Write.cxx index 510585a56..37bc478b8 100644 --- a/src/DriverGMF/DriverGMF_Write.cxx +++ b/src/DriverGMF/DriverGMF_Write.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -57,8 +57,8 @@ extern "C" elemIt = elementIterator( SMDSGeom ); \ if ( elemIt->more() ) \ { \ - int totalNbElems = myMesh->GetMeshInfo().NbElements( SMDSGeom ); \ - int nbLinearElems = myMesh->GetMeshInfo().NbElements( LinType ); \ + smIdType totalNbElems = myMesh->GetMeshInfo().NbElements( SMDSGeom );\ + smIdType nbLinearElems = myMesh->GetMeshInfo().NbElements( LinType ); \ if ( totalNbElems - nbLinearElems > 0 ) \ { \ GmfSetKwd(meshID, GmfKwd, totalNbElems - nbLinearElems); \ @@ -100,6 +100,9 @@ Driver_Mesh::Status DriverGMF_Write::Perform() { Kernel_Utils::Localizer loc; + if ( Driver_Mesh::IsMeshTooLarge< int >( myMesh, /*checkIDs =*/ false)) + return DRS_TOO_LARGE_MESH; + const int dim = 3, version = sizeof(double) < 8 ? 1 : 2; int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim ); @@ -115,7 +118,7 @@ Driver_Mesh::Status DriverGMF_Write::Perform() // nodes std::map< const SMDS_MeshNode* , int > node2IdMap; - int iN = 0, nbNodes = myMesh->NbNodes(); + smIdType iN = 0, nbNodes = myMesh->NbNodes(); GmfSetKwd( meshID, GmfVertices, nbNodes ); double xyz[3]; SMDS_NodeIteratorPtr nodeIt = myMesh->nodesIterator();