- while ( myElemIt && myElemIt->more() ) {
- myElem = myElemIt->next();
- if ( myElem && myElem->GetType() == myType )
- break;
- else
- myElem = 0;
- }
+
+ if ( myElemIt )
+ while ( myElemIt->more() ) {
+ myElem = myElemIt->next();
+ if ( myElem && myElem->GetType() == myType )
+ break;
+ else
+ myElem = 0;
+ }
+
+ if ( !myElem && myNodeIt ) // look for a 0D element
+ while ( myNodeIt->more() ) {
+ const SMDS_MeshNode* n = myNodeIt->next();
+ if (( myElemIt = n->GetInverseElementIterator( myType )) &&
+ ( myElemIt->more() ))
+ {
+ myElem = myElemIt->next();
+ break;
+ }
+ }
+