Classes | |
| class | MR::DetectTunnelSettings |
Functions | |
| MRMESH_API Expected< std::vector< EdgeLoop > > | MR::detectBasisTunnels (const MeshPart &mp, EdgeMetric metric={}, ProgressCallback progressCallback={}) |
| MRMESH_API Expected< EdgeLoop > | MR::findSmallestMetricCoLoop (const MeshTopology &topology, const EdgeLoop &loop, const EdgeMetric &metric, const FaceBitSet *region=nullptr) |
| MRMESH_API Expected< EdgeLoop > | MR::findShortestCoLoop (const MeshPart &mp, const EdgeLoop &loop) |
| same as findMinimalCoLoop with euclidean edge length metric | |
| MRMESH_API Expected< FaceBitSet > | MR::detectTunnelFaces (const MeshPart &mp, const DetectTunnelSettings &settings={}) |
| MRMESH_API Expected< std::vector< EdgeLoop > > MR::detectBasisTunnels | ( | const MeshPart & | mp, |
| EdgeMetric | metric = {}, | ||
| ProgressCallback | progressCallback = {} ) |
detects all not-contractible-in-point and not-equivalent tunnel loops on the mesh; trying to include in the loops the edges with the smallest metric; if no metric is given then discreteMinusAbsMeanCurvatureMetric will be used
| MRMESH_API Expected< FaceBitSet > MR::detectTunnelFaces | ( | const MeshPart & | mp, |
| const DetectTunnelSettings & | settings = {} ) |
returns tunnels as a number of faces; if you remove these faces and patch every boundary with disk, then the surface will be topology equivalent to sphere
| MRMESH_API Expected< EdgeLoop > MR::findShortestCoLoop | ( | const MeshPart & | mp, |
| const EdgeLoop & | loop ) |
same as findMinimalCoLoop with euclidean edge length metric
| MRMESH_API Expected< EdgeLoop > MR::findSmallestMetricCoLoop | ( | const MeshTopology & | topology, |
| const EdgeLoop & | loop, | ||
| const EdgeMetric & | metric, | ||
| const FaceBitSet * | region = nullptr ) |
given not-trivial loop on input, finds the loop that 1) goes from left side of input loop 2) returns to the input loop from its right side 3) goes along the input loop to become closed such that the resulting loop has minimal sum of given metric for its edges; edges 1) and 2) can be only inner or boundary to the given region (they must have region from left or from right)