X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverUNV%2FDriverUNV_W_SMDS_Mesh.cxx;h=243d9f350a8782ee84666f627c1ae719beaf8b3c;hp=d83601308b18a7a7f1122bdff22caf1a9c4f27e6;hb=ad4fc4d4c9f7b740fa6b7a7e1cacd173915c1bcb;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index d83601308..243d9f350 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -6,7 +6,7 @@ // 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. +// 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 @@ -106,17 +106,16 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() TRecord aRec; aRec.label = anElem->GetID(); aRec.node_labels.reserve(aNbNodes); - SMDS_ElemIteratorPtr aNodesIter; - aNodesIter = anElem->nodesIteratorToUNV(); if( anElem->IsQuadratic() ) { aRec.fe_descriptor_id = 22; } else { aRec.fe_descriptor_id = 11; } + SMDS_NodeIteratorPtr aNodesIter = anElem->nodesIteratorToUNV(); while( aNodesIter->more()) { - const SMDS_MeshElement* aNode = aNodesIter->next(); - aRec.node_labels.push_back(aNode->GetID()); + const SMDS_MeshNode* aNode = aNodesIter->next(); + aRec.node_labels.push_back( aNode->GetID() ); } aDataSet2412.push_back(aRec); } @@ -135,29 +134,18 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() TRecord aRec; aRec.label = anElem->GetID(); aRec.node_labels.reserve(aNbNodes); - SMDS_ElemIteratorPtr aNodesIter; - aNodesIter = anElem->nodesIteratorToUNV(); - for(; aNodesIter->more();){ - const SMDS_MeshElement* aNode = aNodesIter->next(); - aRec.node_labels.push_back(aNode->GetID()); + SMDS_NodeIteratorPtr aNodesIter = anElem->nodesIteratorToUNV(); + while( aNodesIter->more() ) { + const SMDS_MeshNode* aNode = aNodesIter->next(); + aRec.node_labels.push_back( aNode->GetID() ); } - switch(aNbNodes){ - case 3: - aRec.fe_descriptor_id = 41; - break; - case 4: - aRec.fe_descriptor_id = 44; - break; - case 6: - aRec.fe_descriptor_id = 42; - break; - case 8: - aRec.fe_descriptor_id = 45; - break; - case 9: - aRec.fe_descriptor_id = 45; - aRec.node_labels.resize( 8 ); - break; + switch ( aNbNodes ) { + case 3: aRec.fe_descriptor_id = 41; break; + case 4: aRec.fe_descriptor_id = 44; break; + case 6: aRec.fe_descriptor_id = 42; break; + case 7: aRec.fe_descriptor_id = 42; break; + case 8: aRec.fe_descriptor_id = 45; break; + case 9: aRec.fe_descriptor_id = 45; aRec.node_labels.resize( 8 ); break; default: continue; } @@ -173,11 +161,9 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() while ( anIter->more()) { const SMDS_MeshVolume* anElem = anIter->next(); - int aNbNodes = anElem->NbNodes(); - SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIteratorToUNV(); - if ( anElem->IsPoly() ) { + if ( anElem->IsPoly() ) continue; - } + int aNbNodes = anElem->NbNodes(); int anId = -1; switch(aNbNodes) { case 4: anId = 111; break; @@ -196,6 +182,7 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aRec.label = anElem->GetID(); aRec.fe_descriptor_id = anId; aRec.node_labels.reserve(aNbNodes); + SMDS_NodeIteratorPtr aNodesIter = anElem->nodesIteratorToUNV(); while ( aNodesIter->more() && aRec.node_labels.size() < aNbNodes ) { const SMDS_MeshElement* aNode = aNodesIter->next();