From cc2c7dfdc05c6f4b75376f9b66e8b2fb65d892f0 Mon Sep 17 00:00:00 2001 From: cconopoima Date: Thu, 10 Aug 2023 15:52:15 +0100 Subject: [PATCH] bos #36783 [EDF] Use BRepTopAdaptor_FClass2d classifier for edges with tighter tolerance. --- src/StdMeshers/StdMeshers_Import_1D2D.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/StdMeshers/StdMeshers_Import_1D2D.cxx b/src/StdMeshers/StdMeshers_Import_1D2D.cxx index e49933b4a..a58590f67 100644 --- a/src/StdMeshers/StdMeshers_Import_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_Import_1D2D.cxx @@ -203,6 +203,10 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & // BRepClass_FaceClassifier is most time consuming, so minimize its usage const double clsfTol = 1e2 * BRep_Tool::MaxTolerance( geomFace, TopAbs_VERTEX ); BRepTopAdaptor_FClass2d classifier( geomFace, clsfTol ); //Brimless_FaceClassifier classifier; + + const double clsfTolEdge = BRep_Tool::MaxTolerance( geomFace, TopAbs_EDGE ); + BRepTopAdaptor_FClass2d classifierEdge( geomFace, clsfTolEdge ); //Define specific classifier for edges based on TopAbs_EDGE. Solve issue bos #36783 + Bnd_B2d bndBox2d; Bnd_Box bndBox3d; { @@ -425,7 +429,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & { if ( nodeState[i] != TopAbs_UNKNOWN ) continue; gp_XY uv = helper.GetNodeUV( geomFace, newNodes[i] ); - nodeState[i] = classifier.Perform( uv ); //geomFace, uv, clsfTol ); + nodeState[i] = classifierEdge.Perform( uv ); //geomFace, uv, clsfTolEdge ); //nodeState[i] = classifier.State(); isIn = ( nodeState[i] == TopAbs_IN ); } @@ -447,8 +451,8 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & Standard_Real U,V; proj.LowerDistanceParameters(U,V); gp_XY uv( U,V ); - //classifier.Perform( geomFace, uv, clsfTol ); - TopAbs_State state = classifier.Perform( uv ); + //classifier.Perform( geomFace, uv, clsfTolEdge ); + TopAbs_State state = classifierEdge.Perform( uv ); if ( state != TopAbs_IN ) continue; } -- 2.30.2