X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDriverUNV%2FDriverUNV_W_SMDS_Mesh.cxx;h=9fddfca59d60fc9c34165395d6fd7af9ab79ea81;hb=062f1da5dde14e9ca8755c2eda44cbe8850f1d3a;hp=7a4da5e92370de5accf86158924f1cf11a6196ac;hpb=c13e1f70bc794a88fdb95d66b133c7d0f7ae3cdc;p=modules%2Fsmesh.git diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index 7a4da5e92..9fddfca59 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-2011 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" @@ -36,6 +37,8 @@ #include "UNV2417_Structure.hxx" #include "UNV_Utilities.hxx" +#include + using namespace std; using namespace UNV; @@ -43,7 +46,7 @@ namespace{ typedef std::vector TConnect; int GetConnect(const SMDS_ElemIteratorPtr& theNodesIter, - TConnect& theConnect) + TConnect& theConnect) { theConnect.clear(); for(; theNodesIter->more();){ @@ -57,6 +60,7 @@ namespace{ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() { + Kernel_Utils::Localizer loc; Status aResult = DRS_OK; std::ofstream out_stream(myFile.c_str()); try{ @@ -68,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(); @@ -103,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)) @@ -169,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() = "<