-// Copyright (C) 2007-2013 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
// 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
using namespace std;
using namespace UNV;
-namespace{
- typedef std::vector<size_t> 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;
{
using namespace UNV2412;
TDataSet aDataSet2412;
- TConnect aConnect;
// Storing SMDS Edges
MESSAGE("Perform - myMesh->NbEdges() = "<<myMesh->NbEdges());
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);
}
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;
}
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;
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());