Redotted
The Redotted operation involves recoloring all dots in the mesh, leaving lines and triangles untouched. In particular, you can either apply a universal albedo, or apply a linear gradient.
Linear gradients in the recoloring process don't generally look that good (in particular, they might not actually appear all that linear. I am hoping to fix this process, but be aware of these issues in the meantime).
mesh | Represents the mesh-tree containing meshes with dots to be recolored. All provided meshes' dots will undergo recoloring. |
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 recoloring operation based on the provided tag. |
albedo | A 4-vector that represents the albedo color for the dots. |
start_color | A 4-vector that represents the start color for the gradient, used when the gradient coloring is applied. |
end_color | A 4-vector that represents the end color for the gradient, used when the gradient coloring is applied. |
start_vec | A 3-vector that represents the start position for the gradient, used when the gradient coloring is applied. |
end_vec | A 3-vector that epresents the end position for the gradient, used when the gradient coloring is applied. |
If the complete mesh set is provided, all meshes' dots will be individually recolored. The return value is the mesh-tree of all the recolored meshes. However, if only a subset is chosen, the returned value will comprise a mesh-tree of the recolored 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 recoloring).
func Redotted([mesh_tree] {[full] {mesh}, [tag_pred] {root, tag_predicate(tag)}}, [color] {[albedo] {albedo}, [gradient] {start_color, end_color, start_vec, end_vec}})