Here's an overview of how picking should work in Anim8or, in particular for
Points,
Edges and
Faces in the
Point Editor. As usual, comments and suggestions are welcome.
1) If it's not visible you can't pick it. For example, if edges aren't being drawn in flat shaded views, you can't use them as edit targets. The opposite is not always true.
2) If it's not enabled you can't pick it. For example if points, edges or faces are disabled in the left-hand toolbar, you can't use them as edit targets. Points at then end of edges may still highlight when you're selecting the edge even if they aren't themselves enabled. This is used to make the line selection more visible.
3) Points generally have priority, then edges, then faces. Without this rule it would be difficult to select anything other than faces.
4) Closer to the viewer has priority over further. Generally something in front is what you want to select.
5) Closer to the mouse has priority over further. Generally you want the thing closest to your mouse.
There is a conflict between #4 and #5 that increases with the size of the picking area. Recent builds have increased the diameter of the "pick zone" around points and edges. As a result it is much more common that the mouse is closer to point A than point B but point B is closer to the user, and yet both are within the zone. So we have:
6) Points further from the viewer are penalized relative their distance from the viewer. In effect you can be further (on the screen) from points closer to the viewer and they'll still be the one chosen. This rule generally prevents accidental selection of back side points in wireframe mode without requiring them to be disabled.
A similar problem is that there can be edges and faces that are closer to the mouse that the "chosen" point. How to choose the "winner" is not simple. For this, as a start, we have:
7) Minimum Winning Distance. If a point is within a minimum distance it is selected even if an edge is closer or the mouse is over a face. This is true for a "close" edge and a face. I'm considering making the settings for "closeness" a user parameter, and also the size of the "pick zones" but I want to make sure that the underlying scheme is solid before I do this since pushing the boundaries can cause everything to break down.
These rules work fairly well. They are available in
build 1230. Check it out and let me know what you think