From 331cc524a8e943bb1d1b008b30848308d06ce0e0 Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 18 Mar 2010 09:42:08 +0000 Subject: [PATCH] 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen * In GetOrderedEdges(), preview presence of the internal vertex within the face --- src/SMESH/SMESH_Block.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SMESH/SMESH_Block.cxx b/src/SMESH/SMESH_Block.cxx index 14b373536..c84d6413c 100644 --- a/src/SMESH/SMESH_Block.cxx +++ b/src/SMESH/SMESH_Block.cxx @@ -981,10 +981,13 @@ int SMESH_Block::GetOrderedEdges (const TopoDS_Face& theFace, TopoDS_Wire anOuterWire = theShapeAnalysisAlgo ? ShapeAnalysis::OuterWire( theFace ) : BRepTools::OuterWire( theFace ); for ( TopoDS_Iterator wIt (theFace); wIt.More(); wIt.Next() ) - if ( !anOuterWire.IsSame( wIt.Value() )) - aWireList.push_back( TopoDS::Wire( wIt.Value() )); - else - aWireList.push_front( TopoDS::Wire( wIt.Value() )); + if ( wIt.Value().ShapeType() == TopAbs_WIRE ) // it can be internal vertex! + { + if ( !anOuterWire.IsSame( wIt.Value() )) + aWireList.push_back( TopoDS::Wire( wIt.Value() )); + else + aWireList.push_front( TopoDS::Wire( wIt.Value() )); + } // loop on edges of wires theNbVertexInWires.clear(); -- 2.30.2