{
list< TopoDS_Face >::iterator faceIt = wallFaces.begin();
for ( ; faceIt != wallFaces.end(); ++faceIt )
- for (TopExp_Explorer edge(*faceIt, TopAbs_EDGE); edge.More(); edge.Next()) {
- if ( !helper->IsSubShape( edge.Current(), topSM->GetSubShape() ))
- return error(COMPERR_BAD_SHAPE);
- }
+ {
+ bool hasCommon = false;
+ for (TopExp_Explorer edge(*faceIt, TopAbs_EDGE); !hasCommon && edge.More(); edge.Next())
+ if ( helper->IsSubShape( edge.Current(), topSM->GetSubShape() ))
+ hasCommon = true;
+ if ( !hasCommon )
+ return error(COMPERR_BAD_SHAPE);
+ }
}
// Find columns of wall nodes and calculate edges' lengths