{'fraction_non_alphanumeric': 0.026701119724375538, 'fraction_numerical': 0.0017226528854435831, 'mean_word_length': 5.564971751412429, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Surface Meshes Incremental Decimation Framework

When dealing with meshes, it is often preferable to work with a lower resolution mesh for computational time purpose, display. The process of reducing a given mesh, mesh decimation, is thus an important step in most of pipeline dealing with meshes. Incremental decimation algorithms, the most popular ones, consists of iteratively removing one point of the mesh, by Euler operations such as vertex removal or edge collapse. Here we focus on edge collapse based decimation approaches and propose a general framework based on a surface mesh data structure (itk::QuadEdgeMesh [3]). Our implementation intends to be as general and as flexible as possible. Indeed it can theoretically be applied on any polygonal mesh1; the measure, functional to be optimized at each iteration, the objective to be reached, and optional methods like point relocation to enhance the geometry of the resulting mesh, are given by the user. We provide here two specific implementations: itk::QuadEdgeMeshSquaredEdgeLengthDecimation and itk::QuadEdgeMeshQuadricDecimation, that could be used as example to implement additional algorithms.