Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormano-wii <germano.costa@ig.com.br>2019-08-21 01:18:25 +0300
committermano-wii <germano.costa@ig.com.br>2019-08-21 01:18:50 +0300
commitdd08d68df835e54ccd1fdf24ae154e461faab685 (patch)
tree482d5148ed69275a85cffa441a9d68c348214233 /source/blender/editors/space_view3d/view3d_gizmo_ruler.c
parent2db09212fc7fb2506e7c582aedf08f94e3fff8d7 (diff)
Transform: New Snap Option: Edge Perpendicular
Part of T66420 Option for snapping to the nearest point of a reference coordinate. The patch also adds Edge Center and Perpendicular snaps to the ruler. {F7675906} Reviewers: campbellbarton, brecht Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D5543
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_gizmo_ruler.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_gizmo_ruler.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c
index 97a12c7100e..f4e3dc85447 100644
--- a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c
+++ b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c
@@ -343,6 +343,7 @@ static bool view3d_ruler_item_mousemove(RulerInfo *ruler_info,
.use_object_edit_cage = true,
},
mval_fl,
+ NULL,
&dist_px,
co,
ray_normal)) {
@@ -363,16 +364,31 @@ static bool view3d_ruler_item_mousemove(RulerInfo *ruler_info,
}
else if (do_snap) {
const float mval_fl[2] = {UNPACK2(mval)};
+ float *prev_point = NULL;
+
+ if (inter->co_index != 1) {
+ if (ruler_item->flag & RULERITEM_USE_ANGLE) {
+ prev_point = ruler_item->co[1];
+ }
+ else if (inter->co_index == 0) {
+ prev_point = ruler_item->co[2];
+ }
+ else {
+ prev_point = ruler_item->co[0];
+ }
+ }
if (ED_transform_snap_object_project_view3d(
ruler_info->snap_context,
- (SCE_SNAP_MODE_VERTEX | SCE_SNAP_MODE_EDGE | SCE_SNAP_MODE_FACE),
+ (SCE_SNAP_MODE_VERTEX | SCE_SNAP_MODE_EDGE | SCE_SNAP_MODE_FACE |
+ SCE_SNAP_MODE_EDGE_MIDPOINT | SCE_SNAP_MODE_EDGE_PERPENDICULAR),
&(const struct SnapObjectParams){
.snap_select = SNAP_ALL,
.use_object_edit_cage = true,
.use_occlusion_test = true,
},
mval_fl,
+ prev_point,
&dist_px,
co,
NULL)) {