| 8 | { |
| 9 | |
| 10 | FaceBitSet patchMesh( Mesh& mesh, const FaceBitSet& patchBS, const FillHoleNicelySettings& settings /*= {} */ ) |
| 11 | { |
| 12 | MR_TIMER; |
| 13 | FaceBitSet newFaces; |
| 14 | auto bounds = delRegionKeepBd( mesh, patchBS ); |
| 15 | auto s = settings; |
| 16 | for ( const auto& bd : bounds ) |
| 17 | { |
| 18 | if ( bd.empty() ) |
| 19 | continue; |
| 20 | auto avgLength = calcPathLength( bd, mesh ) / bd.size(); |
| 21 | if ( settings.subdivideSettings.maxEdgeLen <= 0.0f ) |
| 22 | s.subdivideSettings.maxEdgeLen = float( avgLength ) * 1.5f; |
| 23 | if ( !mesh.topology.left( bd[0] ) ) |
| 24 | newFaces |= fillHoleNicely( mesh, bd[0], s ); |
| 25 | } |
| 26 | return newFaces; |
| 27 | } |
| 28 | |
| 29 | } |
no test coverage detected