PointMapped
The PointMapped operation maps points (of vertices) in a mesh-tree to new locations based on a provided point map function. This map is topology preserving in that the starting and ending meshes have the exact same topology.
PointMapped is useful for creating parameteric surfaces (or explicit surfaces) and in general applying topological transformations
mesh | Represents the mesh-tree containing points to be mapped. All provided meshes' points will undergo mapping. |
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 point mapping based on the provided tag. |
point_map(point) | A function that defines the mapping for each point. In particular, a 3-vector is given as input (representing a vertex of the mesh), and 3-vector is given as output. |
If the complete mesh set is provided, all meshes' points will be individually mapped according to the specified point map function. The return value is the mesh-tree of all the mapped meshes. However, if only a subset is chosen, the returned value will comprise a mesh-tree of the mapped 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. not mapped).
func PointMapped([mesh_tree] {[full] {mesh}, [tag_pred] {root, tag_predicate(tag)}}, point_map(point))