Surfaces link and new set of objects
- [ ] Add surface link cable
- [ ] Add basic surface objects (circle, vertex points, rectangle), try different approaches
- [ ] Add advanced surface controlled objects, like particles controller, collision detection, etc..
- [ ] Add surface to texture object
The purpose of this proposal is to provide objects with some kind of awareness of the virtual (and physical if mapped-to) space that they end up being rendered on.
Here's an illustration of the idea:

This is a quite new idea in real-time engines and the proposal is quite drafty yet. I think many objects could benefit of such a feature when this is globally implemented. If not, many duplicate objects might appear. Ex: ImageRenderObject vs ImageRenderObjectOnSurface .
I was thinking about a slightly different approach where we could have a default surface (rect/screen) in Mosaic. Objects that need a surface automatically use it. If the user loaded more surfaces, then they might be assigned to other shapes.
A less global solution would be to use a "shape-accepting-object" which can be bound to the default viewport or a user-created shape, maybe using cables, maybe using some other "binding" logic.