Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_gizmo_ruler.c
| Show First 20 Lines • Show All 332 Lines • ▼ Show 20 Lines | if (do_thickness && inter->co_index != 1) { | ||||
| co_other = ruler_item->co[inter->co_index == 0 ? 2 : 0]; | co_other = ruler_item->co[inter->co_index == 0 ? 2 : 0]; | ||||
| if (ED_transform_snap_object_project_view3d(snap_context, | if (ED_transform_snap_object_project_view3d(snap_context, | ||||
| depsgraph, | depsgraph, | ||||
| 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, | .edit_mode_type = SNAP_GEOM_CAGE, | ||||
| }, | }, | ||||
| mval_fl, | mval_fl, | ||||
| NULL, | 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(snap_context, | ED_transform_snap_object_project_ray(snap_context, | ||||
| depsgraph, | depsgraph, | ||||
| &(const struct SnapObjectParams){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .edit_mode_type = SNAP_GEOM_CAGE, | ||||
| }, | }, | ||||
| ray_start, | ray_start, | ||||
| ray_normal, | ray_normal, | ||||
| NULL, | NULL, | ||||
| co_other, | co_other, | ||||
| NULL); | NULL); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 755 Lines • ▼ Show 20 Lines | static void WIDGETGROUP_ruler_setup(const bContext *C, wmGizmoGroup *gzgroup) | ||||
| RulerInfo *ruler_info = MEM_callocN(sizeof(RulerInfo), __func__); | RulerInfo *ruler_info = MEM_callocN(sizeof(RulerInfo), __func__); | ||||
| wmGizmo *gizmo; | wmGizmo *gizmo; | ||||
| { | { | ||||
| /* The gizmo snap has to be the first gizmo. */ | /* The gizmo snap has to be the first gizmo. */ | ||||
| const wmGizmoType *gzt_snap; | const wmGizmoType *gzt_snap; | ||||
| gzt_snap = WM_gizmotype_find("GIZMO_GT_snap_3d", true); | gzt_snap = WM_gizmotype_find("GIZMO_GT_snap_3d", true); | ||||
| gizmo = WM_gizmo_new_ptr(gzt_snap, gzgroup, NULL); | gizmo = WM_gizmo_new_ptr(gzt_snap, gzgroup, NULL); | ||||
| RNA_enum_set(gizmo->ptr, | RNA_enum_set(gizmo->ptr, | ||||
| "snap_elements_force", | "snap_elements_force", | ||||
| (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_VOLUME | SCE_SNAP_MODE_GRID | SCE_SNAP_MODE_INCREMENT | */ | /* SCE_SNAP_MODE_VOLUME | SCE_SNAP_MODE_GRID | SCE_SNAP_MODE_INCREMENT | */ | ||||
| SCE_SNAP_MODE_EDGE_PERPENDICULAR | SCE_SNAP_MODE_EDGE_MIDPOINT)); | SCE_SNAP_MODE_EDGE_PERPENDICULAR | SCE_SNAP_MODE_EDGE_MIDPOINT)); | ||||
| ED_gizmotypes_snap_3d_flag_set(gizmo, ED_SNAPGIZMO_SNAP_EDIT_GEOM_CAGE); | |||||
| WM_gizmo_set_color(gizmo, (float[4]){1.0f, 1.0f, 1.0f, 1.0f}); | WM_gizmo_set_color(gizmo, (float[4]){1.0f, 1.0f, 1.0f, 1.0f}); | ||||
| wmOperatorType *ot = WM_operatortype_find("VIEW3D_OT_ruler_add", true); | wmOperatorType *ot = WM_operatortype_find("VIEW3D_OT_ruler_add", true); | ||||
| WM_gizmo_operator_set(gizmo, 0, ot, NULL); | WM_gizmo_operator_set(gizmo, 0, ot, NULL); | ||||
| } | } | ||||
| if (view3d_ruler_from_gpencil(C, gzgroup)) { | if (view3d_ruler_from_gpencil(C, gzgroup)) { | ||||
| /* nop */ | /* nop */ | ||||
| ▲ Show 20 Lines • Show All 171 Lines • Show Last 20 Lines | |||||