Lagrange
SelectFacetsByNormalSimilarityOptions Struct Reference

Option struct for selecting facets based on normal similarity. More...

#include <lagrange/select_facets_by_normal_similarity.h>

Public Types

enum class  SearchType { BFS = 0 , DFS = 1 }
 select_facets_by_normal_similarity uses either BFS or DFS in its flooding search More...
 

Public Attributes

double flood_error_limit = std::numeric_limits<double>::max()
 Increasing this would select a larger region.
 
double flood_second_to_first_order_limit_ratio = 1.0 / 6.0
 There are two types of error limits when flood-search goes from one facet to its neighboring facet: More...
 
std::string_view facet_normal_attribute_name = "@facet_normal"
 The attribute name for the facet normal.
 
std::optional< std::string_view > is_facet_selectable_attribute_name
 Users can specify whether a facet is selectable by an uint8 attribute. More...
 
std::string_view output_attribute_name = "@is_selected"
 The attribute name for the selection output.
 
SearchType search_type = SearchType::DFS
 The search type (BFS or DFS)
 
int num_smooth_iterations = 3
 Smoothing boundary of selected region (reduce ears)
 

Detailed Description

Option struct for selecting facets based on normal similarity.

Member Enumeration Documentation

◆ SearchType

enum class SearchType
strong

select_facets_by_normal_similarity uses either BFS or DFS in its flooding search

Enumerator
BFS 

Breadth-First Search.

DFS 

Depth-First Search.

Member Data Documentation

◆ flood_second_to_first_order_limit_ratio

double flood_second_to_first_order_limit_ratio = 1.0 / 6.0

There are two types of error limits when flood-search goes from one facet to its neighboring facet:

  1. first-order-limit := difference(seed normal, neighboring facet normal)
  2. second-order-limit := difference(the one facet's normal, neighboring facet normal)

Setting flood_second_to_first_order_limit_ratio > 0.0 allows the selected region to grow on low-curvature areas even though the normals differ from the seed normal.

◆ is_facet_selectable_attribute_name

std::optional<std::string_view> is_facet_selectable_attribute_name

Users can specify whether a facet is selectable by an uint8 attribute.

e.g. "@is_facet_selectable"


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