X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDriverUNV%2FDriverUNV_W_SMDS_Mesh.cxx;h=b981927bc59b16b9918775cd04c0956378155274;hb=b860f3ffbde63f120fbd9fbd0f98552b25a6c44c;hp=d83601308b18a7a7f1122bdff22caf1a9c4f27e6;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index d83601308..b981927bc 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -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();