MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::DetectTunnelSettings Struct Reference

#include <MRTunnelDetector.h>

Public Attributes

float maxTunnelLength = FLT_MAX
 maximal euclidean length of tunnel loops to detect
 
int maxIters = 1
 
EdgeMetric metric
 
bool buildCoLoops = true
 
bool filterEquivalentCoLoops = false
 
ProgressCallback progress
 to report algorithm progress and cancel from outside
 

Member Data Documentation

◆ buildCoLoops

bool MR::DetectTunnelSettings::buildCoLoops = true

if true then for every basis loop, findSmallestMetricCoLoop will be called; it typically results in shorter tunnels found, but requires more time per iteration, and more iterations to find all tunnels

◆ filterEquivalentCoLoops

bool MR::DetectTunnelSettings::filterEquivalentCoLoops = false

if ( buildCoLoops ) then some tunnel loops can be equivalent (e.g. they cut the same handle twice), this option activates their filtering out, but it is very slow

◆ maxIters

int MR::DetectTunnelSettings::maxIters = 1

maximal number of iterations to detect all tunnels; on a big mesh with many tunnels even one iteration can take a while

◆ maxTunnelLength

float MR::DetectTunnelSettings::maxTunnelLength = FLT_MAX

maximal euclidean length of tunnel loops to detect

◆ metric

EdgeMetric MR::DetectTunnelSettings::metric

edge metric that will be used in optimizations, if co-loops are enabled then this metric must be not-negative, if no metric is given then either discreteMinusAbsMeanCurvatureMetric (if buildCoLoops = false) or edgeLengthMetric (if buildCoLoops = true) will be used, using caching via edgeTableSymMetric function can improve the performance, especially in buildCoLoops = true mode

◆ progress

ProgressCallback MR::DetectTunnelSettings::progress

to report algorithm progress and cancel from outside


The documentation for this struct was generated from the following file: