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=02ec7588ba394e0240ddb864feb2e4cbc98e75d8;hp=a33d10b3886a00cf8f056aaedd05632c1932f294;hb=d8bc11015235c68631ac85d7e8cf278edc9809d1;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index a33d10b38..02ec7588b 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -25,9 +25,6 @@ #include "DriverUNV_W_SMDS_Mesh.h" #include "SMDS_Mesh.hxx" -#include "SMDS_QuadraticEdge.hxx" -#include "SMDS_QuadraticFaceOfNodes.hxx" -#include "SMDS_PolyhedralVolumeOfNodes.hxx" #include "SMESHDS_GroupBase.hxx" #include "utilities.h" @@ -44,22 +41,6 @@ using namespace std; using namespace UNV; -namespace{ - typedef std::vector TConnect; - - int GetConnect(const SMDS_ElemIteratorPtr& theNodesIter, - TConnect& theConnect) - { - theConnect.clear(); - for(; theNodesIter->more();){ - const SMDS_MeshElement* anElem = theNodesIter->next(); - theConnect.push_back(anElem->GetID()); - } - return theConnect.size(); - } - -} - Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() { Kernel_Utils::Localizer loc; @@ -75,7 +56,6 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() TDataSet aDataSet2411; // Storing SMDS nodes to the UNV file //----------------------------------- - MESSAGE("Perform - myMesh->NbNodes() = "<NbNodes()); SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator(); TRecord aRec; while ( aNodesIter->more() ) @@ -87,16 +67,13 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aRec.coord[2] = aNode->Z(); aDataSet2411.push_back( aRec ); } - MESSAGE("Perform - aDataSet2411.size() = "<NbEdges() = "<NbEdges()); if(myMesh->NbEdges()){ SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator(); while( anIter->more() ) @@ -106,24 +83,21 @@ 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); } - MESSAGE("Perform - aDataSet2412.size() = "<NbFaces() = "<NbFaces()); if ( myMesh->NbFaces() ) { SMDS_FaceIteratorPtr anIter = myMesh->facesIterator(); @@ -135,49 +109,34 @@ 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; } aDataSet2412.push_back(aRec); } - MESSAGE("Perform - aDataSet2412.size() = "<NbVolumes() = "<NbVolumes()); if ( myMesh->NbVolumes() ) { SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator(); 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,7 +155,8 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aRec.label = anElem->GetID(); aRec.fe_descriptor_id = anId; aRec.node_labels.reserve(aNbNodes); - while ( aNodesIter->more() && aRec.node_labels.size() < aNbNodes ) + SMDS_NodeIteratorPtr aNodesIter = anElem->nodesIteratorToUNV(); + while ( aNodesIter->more() && (int)aRec.node_labels.size() < aNbNodes ) { const SMDS_MeshElement* aNode = aNodesIter->next(); aRec.node_labels.push_back(aNode->GetID()); @@ -204,7 +164,6 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aDataSet2412.push_back(aRec); } } - MESSAGE("Perform - aDataSet2412.size() = "<