This could get pretty tricky after we have #3 and #5, since we'd need to track the 'origin' of each triangle throughout the CSG transformations (#22 would probably come in handy too).
But it would still be very cool if the user could e.g. drag/scale/rotate the objects in real-time in the preview as the code updates automatically (and perhaps snap it to the grid (optionally?)).
Note that this might also require inverting the entire tranformation stack. E.g. if the cube dragged by the user is inside a
Translate(...) {
Rotate(...) {
...
}
}
we'd have to compute how the original position/scales would have to be modified.
This could get pretty tricky after we have #3 and #5, since we'd need to track the 'origin' of each triangle throughout the CSG transformations (#22 would probably come in handy too).
But it would still be very cool if the user could e.g. drag/scale/rotate the objects in real-time in the preview as the code updates automatically (and perhaps snap it to the grid (optionally?)).
Note that this might also require inverting the entire tranformation stack. E.g. if the cube dragged by the user is inside a
we'd have to compute how the original position/scales would have to be modified.