- for ( size_t iE = 0; iE < edges.size(); ++iE )
- if ( helper.CheckNodeU( edges[iE], n, u=0, projTol, /*force=*/true ))
- {
- BRep_Tool::Range(edges[iE],f,l);
- if ( Abs(u-f) < 2 * faceTol || Abs(u-l) < 2 * faceTol )
- // duplicated node on vertex
- return error("Source elements overlap one another");
- tgtFaceSM->RemoveNode( n, /*isNodeDeleted=*/false );
- tgtMesh->SetNodeOnEdge( n, edges[iE], u );
- break;
- }
+ TopoDS_Shape edge;
+ if ( onEdgeClassifier.IsSatisfy( n, &edge ))
+ {
+ tgtFaceSM->RemoveNode( n );
+ double u, v;
+ onEdgeClassifier.GetParams( u, v );
+ tgtMesh->SetNodeOnEdge( n, TopoDS::Edge(edge), u );
+ }