Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_gizmo_ruler.c
| Show First 20 Lines • Show All 337 Lines • ▼ Show 20 Lines | if (do_thickness && inter->co_index != 1) { | ||||
| if (ED_transform_snap_object_project_view3d(ruler_info->snap_context, | if (ED_transform_snap_object_project_view3d(ruler_info->snap_context, | ||||
| SCE_SNAP_MODE_FACE, | SCE_SNAP_MODE_FACE, | ||||
| &(const struct SnapObjectParams){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .use_object_edit_cage = true, | ||||
| }, | }, | ||||
| mval_fl, | mval_fl, | ||||
| NULL, | |||||
| &dist_px, | &dist_px, | ||||
| co, | co, | ||||
| ray_normal)) { | ray_normal)) { | ||||
| negate_v3(ray_normal); | negate_v3(ray_normal); | ||||
| /* add some bias */ | /* add some bias */ | ||||
| madd_v3_v3v3fl(ray_start, co, ray_normal, eps_bias); | madd_v3_v3v3fl(ray_start, co, ray_normal, eps_bias); | ||||
| ED_transform_snap_object_project_ray(ruler_info->snap_context, | ED_transform_snap_object_project_ray(ruler_info->snap_context, | ||||
| &(const struct SnapObjectParams){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .use_object_edit_cage = true, | ||||
| }, | }, | ||||
| ray_start, | ray_start, | ||||
| ray_normal, | ray_normal, | ||||
| NULL, | NULL, | ||||
| co_other, | co_other, | ||||
| NULL); | NULL); | ||||
| } | } | ||||
| } | } | ||||
| else if (do_snap) { | else if (do_snap) { | ||||
| const float mval_fl[2] = {UNPACK2(mval)}; | 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( | if (ED_transform_snap_object_project_view3d( | ||||
| ruler_info->snap_context, | 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){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .use_object_edit_cage = true, | ||||
| .use_occlusion_test = true, | .use_occlusion_test = true, | ||||
| }, | }, | ||||
| mval_fl, | mval_fl, | ||||
| prev_point, | |||||
| &dist_px, | &dist_px, | ||||
| co, | co, | ||||
| NULL)) { | NULL)) { | ||||
| ruler_info->snap_flag |= RULER_SNAP_OK; | ruler_info->snap_flag |= RULER_SNAP_OK; | ||||
| } | } | ||||
| } | } | ||||
| return true; | return true; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 798 Lines • Show Last 20 Lines | |||||