From: eap Date: Wed, 28 Apr 2010 07:35:15 +0000 (+0000) Subject: 0020850: EDF 1330 NETGENPLUGIN: Netgen cannot mesh a face partitionned with 3 edges X-Git-Tag: V5_1_4rc1~1 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=ba906fcdb559f37ecb62f0a766f3e65dce5041e9;p=plugins%2Fnetgenplugin.git 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 --- 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 ) {