- face = static_cast<const SMDS_MeshFace *>(it1->next());
- if(face->NbNodes()!=8) continue;
- SMDS_ElemIteratorPtr it2 = face->nodesIterator();
- int tmp = 0;
- while(it2->more()) {
- node = it2->next();
- if(node->GetID()==node2->GetID()) tmp++;
- if(node->GetID()==node3->GetID()) tmp++;
- if(node->GetID()==node4->GetID()) tmp++;
- if(node->GetID()==node5->GetID()) tmp++;
- if(node->GetID()==node6->GetID()) tmp++;
- if(node->GetID()==node7->GetID()) tmp++;
- if(node->GetID()==node8->GetID()) tmp++;
- }
- if( tmp==7 )
- return face;
+ const SMDS_MeshElement* f = it1->next();
+ if ( f->NbNodes() == 8 &&
+ f->GetNodeIndex( node2 ) >= 0 &&
+ f->GetNodeIndex( node3 ) >= 0 &&
+ f->GetNodeIndex( node4 ) >= 0 &&
+ f->GetNodeIndex( node5 ) >= 0 &&
+ f->GetNodeIndex( node6 ) >= 0 &&
+ f->GetNodeIndex( node7 ) >= 0 &&
+ f->GetNodeIndex( node8 ) >= 0 )
+ return static_cast<const SMDS_MeshFace *>( f );