Transform: use a threshold for UV snapping

Unlike 3Dview snapping, UV snapping is always done to the UV closest to
the mouse cursor, no matter the distance.

From the user's point of view, this appears to be an inconsistency (See
{T93538}).

Therefore, set a minimum distance for snapping and, as in 3D View and
highlight the snap with a drawing of a circle.

Release Note: https://wiki.blender.org/wiki/Reference/Release_Notes/3.3/Modeling

Reviewed By: #uv_editing, campbellbarton

Maniphest Tasks: T93538

Differential Revision: https://developer.blender.org/D13873
This commit is contained in:
Germano Cavalcante
2022-05-03 10:09:22 -03:00
committed by Germano Cavalcante
parent 08daeb9472
commit d2271cf939
3 changed files with 72 additions and 31 deletions

View File

@@ -24,6 +24,7 @@ struct Object;
struct Scene;
struct SpaceImage;
struct ToolSettings;
struct View2D;
struct ViewLayer;
struct bContext;
struct bNode;
@@ -242,15 +243,12 @@ void uvedit_deselect_flush(const struct Scene *scene, struct BMEditMesh *em);
*/
void uvedit_select_flush(const struct Scene *scene, struct BMEditMesh *em);
bool ED_uvedit_nearest_uv(const struct Scene *scene,
struct Object *obedit,
const float co[2],
float *dist_sq,
float r_uv[2]);
bool ED_uvedit_nearest_uv_multi(const struct Scene *scene,
bool ED_uvedit_nearest_uv_multi(const struct View2D *v2d,
const struct Scene *scene,
struct Object **objects,
uint objects_len,
const float co[2],
const int mval[2],
const bool ignore_selected,
float *dist_sq,
float r_uv[2]);