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=cf7778300ca677beb810a70466de94f0d09c4395;hp=7b3a4d22ba4fd1d2439af5ae88f725f4407dab1f;hb=aa67cc96d730566d202d1014d97b7f0b3a4d71f4;hpb=64be032249f21ff884326a9b1d5e6b1a6eed93dc diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index 7b3a4d22b..cf7778300 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2010 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 @@ -19,6 +19,7 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #include #include "DriverUNV_W_SMDS_Mesh.h" @@ -45,7 +46,7 @@ namespace{ typedef std::vector TConnect; int GetConnect(const SMDS_ElemIteratorPtr& theNodesIter, - TConnect& theConnect) + TConnect& theConnect) { theConnect.clear(); for(; theNodesIter->more();){ @@ -71,13 +72,13 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() MESSAGE("Perform - myMesh->NbNodes() = "<NbNodes()); SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator(); for(; aNodesIter->more();){ - const SMDS_MeshNode* aNode = aNodesIter->next(); - TRecord aRec; - aRec.coord[0] = aNode->X(); - aRec.coord[1] = aNode->Y(); - aRec.coord[2] = aNode->Z(); - const TNodeLab& aLabel = aNode->GetID(); - aDataSet2411.insert(TDataSet::value_type(aLabel,aRec)); + const SMDS_MeshNode* aNode = aNodesIter->next(); + TRecord aRec; + aRec.coord[0] = aNode->X(); + aRec.coord[1] = aNode->Y(); + aRec.coord[2] = aNode->Z(); + const TNodeLab& aLabel = aNode->GetID(); + aDataSet2411.insert(TDataSet::value_type(aLabel,aRec)); } MESSAGE("Perform - aDataSet2411.size() = "<NbEdges() = "<NbEdges()); if(myMesh->NbEdges()){ - SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator(); - for(; anIter->more();){ - const SMDS_MeshEdge* anElem = anIter->next(); - TElementLab aLabel = anElem->GetID(); - int aNbNodes = anElem->NbNodes(); - TRecord aRec; - aRec.node_labels.reserve(aNbNodes); - SMDS_ElemIteratorPtr aNodesIter; + SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator(); + for(; anIter->more();){ + const SMDS_MeshEdge* anElem = anIter->next(); + TElementLab aLabel = anElem->GetID(); + int aNbNodes = anElem->NbNodes(); + TRecord aRec; + aRec.node_labels.reserve(aNbNodes); + SMDS_ElemIteratorPtr aNodesIter; if( anElem->IsQuadratic() ) { aNodesIter = static_cast ( anElem )->interlacedNodesElemIterator(); @@ -106,64 +107,64 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aNodesIter = anElem->nodesIterator(); aRec.fe_descriptor_id = 11; } - for(; aNodesIter->more();){ - const SMDS_MeshElement* aNode = aNodesIter->next(); - aRec.node_labels.push_back(aNode->GetID()); - } - aDataSet2412.insert(TDataSet::value_type(aLabel,aRec)); - } - MESSAGE("Perform - aDataSet2412.size() = "<more();){ + const SMDS_MeshElement* aNode = aNodesIter->next(); + aRec.node_labels.push_back(aNode->GetID()); + } + aDataSet2412.insert(TDataSet::value_type(aLabel,aRec)); + } + MESSAGE("Perform - aDataSet2412.size() = "<NbFaces() = "<NbFaces()); if(myMesh->NbFaces()){ - SMDS_FaceIteratorPtr anIter = myMesh->facesIterator(); - for(; anIter->more();){ - const SMDS_MeshFace* anElem = anIter->next(); - TElementLab aLabel = anElem->GetID(); - int aNbNodes = anElem->NbNodes(); - TRecord aRec; - aRec.node_labels.reserve(aNbNodes); - SMDS_ElemIteratorPtr aNodesIter; + SMDS_FaceIteratorPtr anIter = myMesh->facesIterator(); + for(; anIter->more();){ + const SMDS_MeshFace* anElem = anIter->next(); + TElementLab aLabel = anElem->GetID(); + int aNbNodes = anElem->NbNodes(); + TRecord aRec; + aRec.node_labels.reserve(aNbNodes); + SMDS_ElemIteratorPtr aNodesIter; if( anElem->IsQuadratic() ) aNodesIter = static_cast ( anElem )->interlacedNodesElemIterator(); else aNodesIter = anElem->nodesIterator(); - for(; aNodesIter->more();){ - const SMDS_MeshElement* 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; - default: - continue; - } - aDataSet2412.insert(TDataSet::value_type(aLabel,aRec)); - } - MESSAGE("Perform - aDataSet2412.size() = "<more();){ + const SMDS_MeshElement* 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; + default: + continue; + } + aDataSet2412.insert(TDataSet::value_type(aLabel,aRec)); + } + MESSAGE("Perform - aDataSet2412.size() = "<NbVolumes() = "<NbVolumes()); if(myMesh->NbVolumes()){ - SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator(); - for(; anIter->more();){ - const SMDS_MeshVolume* anElem = anIter->next(); - TElementLab aLabel = anElem->GetID(); + SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator(); + for(; anIter->more();){ + const SMDS_MeshVolume* anElem = anIter->next(); + TElementLab aLabel = anElem->GetID(); - int aNbNodes = anElem->NbNodes(); - SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator(); + int aNbNodes = anElem->NbNodes(); + SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator(); if ( anElem->IsPoly() ) { if ( const SMDS_PolyhedralVolumeOfNodes* ph = dynamic_cast (anElem)) @@ -172,138 +173,138 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() aNodesIter = ph->uniqueNodesIterator(); } } - aConnect.resize(aNbNodes); - GetConnect(aNodesIter,aConnect); + aConnect.resize(aNbNodes); + GetConnect(aNodesIter,aConnect); - int anId = -1; - int* aConn = NULL; - switch(aNbNodes){ - case 4: { - static int anIds[] = {0,2,1,3}; - aConn = anIds; - anId = 111; - break; - } - case 6: { - static int anIds[] = {0,2,1,3,5,4}; - aConn = anIds; - anId = 112; - break; - } - case 8: { - static int anIds[] = {0,3,2,1,4,7,6,5}; - aConn = anIds; - anId = 115; - break; - } - case 10: { - static int anIds[] = {0,4,2,9,5,3, 1,6,8, 7}; - aConn = anIds; - anId = 118; - break; - } - case 13: { - static int anIds[] = {0,6,4,2,7,5,3,1,8,11,10,9,12}; - aConn = anIds; - anId = 114; - break; - } - case 15: { - static int anIds[] = {0,4,2,9,13,11,5,3,1,14,12,10,6,8,7}; - aConn = anIds; - anId = 113; - break; - } - case 20: { - static int anIds[] = {0,6, 4,2, 12,18,16,14,7, 5, 3, 1, 19,17,15,13,8, 11,10,9}; - aConn = anIds; - anId = 116; - break; - } - default: - continue; - } - if(aConn){ - TRecord aRec; - aRec.fe_descriptor_id = anId; - aRec.node_labels.resize(aNbNodes); - for(int aNodeId = 0; aNodeId < aNbNodes; aNodeId++){ - aRec.node_labels[aConn[aNodeId]] = aConnect[aNodeId]; - } - aDataSet2412.insert(TDataSet::value_type(aLabel,aRec)); - } - } - MESSAGE("Perform - aDataSet2412.size() = "<