-
Maxence Reberol authored
setTransfiniteAutomatic() automatically sets the transfinite attribute on curves, surfaces and volumes when possible. The objective is to automate a task (setting transfinite) which is very tedious on large CAD models (hundreds of curves), and to help automatic quad meshers by preprocessing the trivial patches. The number of points on curves is automatically determined according to the sizing constraints (same number as when generating the vertices on curves). The number of points is kept coherent between adjacent quadrilateral surfaces by computing the topological chords where possible, and using the averaged values on the independent chords. Some limitations: - It is not possible to automatically and robustly deal with faces with more than 4 edges, even if we could choose 4 corners, as it would create T-junctions and then the automatically propagated constraints may become inconsistent (limit cycles). It is still possible to deal with a subset of these cases, but it is lot of work, much more than this commit. - In the quadrilateral faces, the angle corners are computed from the curve tangents but do not use the face normal, so large concave corners are not rejected with the current approach. - Currently, the points are uniformly distributed on the transfinite curves. It should be possible to detect existing transfinite curves with non-uniform distributions and propagate them.
0a0b8b6b