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
This commit is contained in:
parent
066c4c8dca
commit
ba906fcdb5
@ -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()<<","<<ngMesh.Point(segEnd2).Y()<<","<<ngMesh.Point(segEnd2).Z()<<" )"<< endl;
|
||||
//cout << "Middle " << r << " uv " << uvP.X() << "," << uvP.Y() << "( " << ngMesh.Point(segEnd2).X()<<","<<ngMesh.Point(segEnd2).Y()<<","<<ngMesh.Point(segEnd2).Z()<<" )"<< endl;
|
||||
SMDS_MeshNode * nP = helper.AddNode(P.X(), P.Y(), P.Z());
|
||||
nodeVec.push_back( nP );
|
||||
}
|
||||
@ -1994,10 +1993,14 @@ NETGENPlugin_Internals::NETGENPlugin_Internals( SMESH_Mesh& mesh,
|
||||
}
|
||||
|
||||
// find internal vertices in a face
|
||||
set<int> 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 )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user