
bulia byak wrote:
Anyway, compare with how arcs are created, for instance. You create an initial circle/arc by a click-drag-release, then you set the wedge angle you want by dragging on a handle. And the last arc angle is remembered by the tool. I think that is how the 3D box should work too.
Agreed. It would be interesting to treat the Z-axis depth of boxes as a property of the box which is to be remembered the way the angle of an arc is remembered. By providing some sensible default value for the depth, this will address the discoverability problem of the Shift+drag technique and will make it much easier to make many boxes of the same depth, which is a common enough use case.
Do I understand you correctly that you propose to let each box already have a certain depth during the creation process (i.e., during dragging)? This is certainly an alternative. However, since we don't have a real 3D model of boxes (that is, "true" z coordinates), it needs to be seen how we can make sure that all boxes have the "same" default depth, regardless of their position on the canvas. I am currently thinking about this problem in the context of moving 3D boxes "in perspective" (which is what I chose to address before making VPs draggable because the infrastructure is already there; I already have an almost working local version ;)). I'm sure that it's possible to achieve a good measuring of perspective lengths and distances this but I am still looking for the numerically most stable solution.
However, we don't need to lose Shift+drag - it can still be used while drawing to change the default depth, so that a box of any depth can still be created with one mouse drag.
I am not quite certain how you imagine Shift+drag to to work when the boxes already have a default depth. For once you press shift and continue dragging along the z axis, the mouse pointer is at a different position than the already extruded (= lower right rear) corner. Should that corner in this case just "snap back" to the position of the mouse pointer so that the box is momentarily collapsed and can then be extruded in the same way as it currently is? Or do you have other alternatives in mind?
/Max