From ba906fcdb559f37ecb62f0a766f3e65dce5041e9 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 28 Apr 2010 07:35:15 +0000 Subject: [PATCH] 0020850: EDF 1330 NETGENPLUGIN: Netgen cannot mesh a face partitionned with 3 edges * take into account that same internal vertex can be twice in a face --- src/NETGENPlugin/NETGENPlugin_Mesher.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx index d7e27dd..3707a8d 100644 --- a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx +++ b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx @@ -828,8 +828,7 @@ void NETGENPlugin_Mesher::addIntVerticesInFaces(const netgen::OCCGeometry& o netgen::MeshPoint mp( netgen::Point<3> (P.X(), P.Y(), P.Z())); ngMesh.AddPoint ( mp, 1, netgen::EDGEPOINT ); segEnd2 = ngMesh.GetNP(); -// cout << "Middle " << r << " uv " << uvP.X() << "," << uvP.Y() -// << "( " << ngMesh.Point(segEnd2).X()<<","< intVV; // issue 0020850 where same vertex is twice in a face for ( TopoDS_Iterator fSub( f.Current() ); fSub.More(); fSub.Next()) if ( fSub.Value().ShapeType() == TopAbs_VERTEX ) - _f2v[ faceID ].push_back( meshDS->ShapeToIndex( fSub.Value() )); - + { + int vID = meshDS->ShapeToIndex( fSub.Value() ); + if ( intVV.insert( vID ).second ) + _f2v[ faceID ].push_back( vID ); + } if ( is3D ) { -- 2.39.2