Faceter Release Notes/R23
Faster Faceting with Multithreading
The Faceter has been enhanced to support the use of multiple threads to speed up faceting. The existing Faceter API functions, api_facet_entities and api_facet_entity, have been multithreaded so that the iterations over faces for meshing are performed in parallel. A new API function, api_facet_bodies, has been introduced for faceting multiple bodies in parallel. Multithreading for all Faceter API functions can be disabled using the option faceter_allow_multithreading.
Refer to Initializing the Thread Manager Example for information regarding how to activate multiple threads in your application. Also, refer to Multithreaded Faceting for information on what to expect and the limitations of the multithreaded faceting algorithm.
Flipping Algorithm Revised
The Faceter subdivides faces into grid cells (which are rectangles in uv space). Within each grid cell, there are various ways to triangulate. In R23, we revised the flipping algorithm so that the triangles within each grid cell would approximately satisfy the Delaunay incircle condition on the tangent plane to the surface. This algorithm does not alter the location of grid points and does not allow aspect ratio guarantees to be made. The behavior can be toggled using the option_header facet_del_flipping. Our measurements indicate that this algorithmic change does not cause a performance change (that is, a change in the speed or number of triangles) and that the new flipping algorithm generally gives better quality triangulations.