Skip to content

FILT: Add the HierarchicalSmooth triangle mesh smoothing algorithm#1551

Merged
imikejackson merged 2 commits intoBlueQuartzSoftware:developfrom
imikejackson:filt/hierarchical_smooth
Mar 3, 2026
Merged

FILT: Add the HierarchicalSmooth triangle mesh smoothing algorithm#1551
imikejackson merged 2 commits intoBlueQuartzSoftware:developfrom
imikejackson:filt/hierarchical_smooth

Conversation

@imikejackson
Copy link
Copy Markdown
Contributor

Based off the code from https://github.com/siddharth-maddali/HierarchicalSmooth/tree/master.

This was asked for back in 2018. @siddharth-maddali

@imikejackson imikejackson force-pushed the filt/hierarchical_smooth branch 6 times, most recently from e9290a5 to 4d77837 Compare February 26, 2026 13:03
@imikejackson imikejackson deleted the filt/hierarchical_smooth branch February 28, 2026 01:48
@imikejackson imikejackson restored the filt/hierarchical_smooth branch February 28, 2026 03:32
@imikejackson imikejackson reopened this Feb 28, 2026
imikejackson and others added 2 commits February 27, 2026 22:33
Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
- Add const-correctness to function parameters throughout the algorithm
- Remove redundant EdgePairEqual struct (std::pair already has operator==)
- Change fastChainLinkSort windingDict to std::map for cross-platform determinism
- Remove unused Triangulation members (m_Mesh, m_SubTri, m_EdgeList) and accessors
- Use dense Eigen matrices for vertex data instead of sparse (2.7x perf improvement)
- Add throttled messaging and cancel checks in processing loop
- Use std::move for Eigen matrix transfer to avoid copies
- Switch boundary dict to OrderedEdgeDict (std::map) for reproducible results
- Update test to use exemplar-based comparison with correct error threshold

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@imikejackson imikejackson force-pushed the filt/hierarchical_smooth branch from 4d77837 to c9610e4 Compare February 28, 2026 03:33
@imikejackson imikejackson self-assigned this Mar 2, 2026
@imikejackson imikejackson added enhancement New feature or request Filter Adds a new filter labels Mar 2, 2026
@imikejackson imikejackson merged commit f080ee6 into BlueQuartzSoftware:develop Mar 3, 2026
6 checks passed
@imikejackson imikejackson deleted the filt/hierarchical_smooth branch March 3, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Filter Adds a new filter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants