Downrank
The downranking process involves converting a mesh of rank n to rank n - 1, by only include the boundary of that mesh (say a disk will be turned into a circle). This operation is applicable to meshes with higher ranks (lines or triangles) and reduces their complexity by downranking them to lower ranks (lines or dots, respectively). However, an empty mesh (rank -1) cannot be further downranked.
Downranking can be useful to select only the border of a mesh. It's most often used to convert a planar mesh to its boundary. However, the most important part is knowing what it does, and how meshes with equal visual representations can have extremely different topologies.
mesh | Represents the mesh-tree containing meshes to be downranked. All provided meshes will undergo downranking. |
root | The root of the mesh-tree, serving as the container for mesh selection. |
tag_predicate(tag) | Determines whether a mesh should be included in the downranking operation based on the provided tag. |
If the complete mesh set is provided, all meshes will be individually downranked, and the return value is the mesh-tree of all the down ranked meshes. However, if only a subset is chosen, the returned value will comprise a mesh-tree of the downranked selected meshes, while the unselected meshes will remain unchanged. Crucially, all meshes you didn't select will still be included in the result mesh_tree, but be provided as is (i.e. no downranking).
func Downrank([mesh_tree] {[full] {mesh}, [tag_pred] {root, tag_predicate(tag)}})