Tuesday, October 19, 2010

Shape editing handles

Implemented shape dragging handles for rectangle, circle, line and box.
Beside vertex dragging and side arrow dragging added also a handle in the center that allows the user to drag the shape.

Will continue with adding some translate Gizmo on these shapes.

One big usability problem still exists: if I click on the top face of the box (like in the screenshot above) top face is selected as drawing/sketching plane (also floating toolbar appears for this face) and the 3D mouse coordinates are generated on the top face. Because handles are on bottom face they can't be picked with the mouse points generated on top face, they only work when the user picks the bottom face. Will have to add some code where shapes like handles, datum geometry are detected anywhere in space not being related with the 3D mouse coordinates.

With the problem above our selection container has the following problems:
- due to OpenCascade local contexts opening closing for subshape selection makes some flickering effect,
- the same flickering effect appears for gradient background when local contexts are opened closed,
- Shape picking is made in 3D coordinates after the 2D mouse is projected on the 3D picked face.
It seems that we have to implement a smarter selection algorithm and if possible avoid Local Contexts or at least use them in a mode that doesn't affect the Neutral Point.

No comments: