Projected
ABSTRACT
The Projected operation maps meshes from 3D space onto another mesh by projecting each point onto another mesh along a given ray
PARAMETERS
| mesh | Represents the mesh-tree containing meshes to be projected. All provided meshes will undergo projection. |
| 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 projection based on the provided tag. |
| screen | Represents the mesh-tree of the screen, dictating the entire screen |
| screen_root | The root of the mesh-tree of the screen, providing the container for screen selection. |
| screen_predicate(tag) | Determines whether a mesh should be included in the screen, based on the provided tag. |
| ray | A ray (3-vector) in 3D space defining the direction for the projection. |
RETURN
If the complete mesh set is provided, all meshes will be individually projected onto the 2D screen. The return value is the mesh-tree of all the projected meshes. However, if only a subset is chosen, the returned value will comprise a mesh-tree of the projected 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 projected).
DECLARATION
func Projected([mesh_tree] {[full] {mesh}, [tag_pred] {root, tag_predicate(tag)}}, [screen_tree] {[root] {screen}, [tag_pred] {screen_root, screen_predicate(tag)}}, ray)