Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_gizmo_ruler.c
| Show First 20 Lines • Show All 309 Lines • ▼ Show 20 Lines | #ifndef USE_SNAP_DETECT_FROM_KEYMAP_HACK | ||||
| const bool do_snap | const bool do_snap | ||||
| #endif | #endif | ||||
| ) | ) | ||||
| { | { | ||||
| wmGizmo *snap_gizmo = ruler_info->snap_data.gizmo; | wmGizmo *snap_gizmo = ruler_info->snap_data.gizmo; | ||||
| const float eps_bias = 0.0002f; | const float eps_bias = 0.0002f; | ||||
| float dist_px = MVAL_MAX_PX_DIST * U.pixelsize; /* snap dist */ | float dist_px = MVAL_MAX_PX_DIST * U.pixelsize; /* snap dist */ | ||||
| WM_gizmo_set_flag(snap_gizmo, WM_GIZMO_HIDDEN, true); | |||||
| if (ruler_item) { | if (ruler_item) { | ||||
| RulerInteraction *inter = ruler_item->gz.interaction_data; | RulerInteraction *inter = ruler_item->gz.interaction_data; | ||||
| float *co = ruler_item->co[inter->co_index]; | float *co = ruler_item->co[inter->co_index]; | ||||
| /* restore the initial depth */ | /* restore the initial depth */ | ||||
| copy_v3_v3(co, inter->drag_start_co); | copy_v3_v3(co, inter->drag_start_co); | ||||
| view3d_ruler_item_project(ruler_info, co, mval); | view3d_ruler_item_project(ruler_info, co, mval); | ||||
| if (do_thickness && inter->co_index != 1) { | if (do_thickness && inter->co_index != 1) { | ||||
| Scene *scene = DEG_get_input_scene(depsgraph); | Scene *scene = DEG_get_input_scene(depsgraph); | ||||
| ▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | #endif | ||||
| prev_point = ruler_item->co[0]; | prev_point = ruler_item->co[0]; | ||||
| } | } | ||||
| } | } | ||||
| if (prev_point != NULL) { | if (prev_point != NULL) { | ||||
| RNA_property_float_set_array( | RNA_property_float_set_array( | ||||
| snap_gizmo->ptr, ruler_info->snap_data.prop_prevpoint, prev_point); | snap_gizmo->ptr, ruler_info->snap_data.prop_prevpoint, prev_point); | ||||
| } | } | ||||
| short snap_elem = ED_gizmotypes_snap_3d_update( | ED_gizmotypes_snap_3d_update( | ||||
| snap_gizmo, depsgraph, ruler_info->region, v3d, ruler_info->wm, mval_fl, co, NULL); | snap_gizmo, depsgraph, ruler_info->region, v3d, ruler_info->wm, mval_fl, co, NULL); | ||||
| if (snap_elem) { | |||||
| WM_gizmo_set_flag(snap_gizmo, WM_GIZMO_HIDDEN, false); | |||||
| } | |||||
| } | } | ||||
| return true; | return true; | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| ▲ Show 20 Lines • Show All 664 Lines • ▼ Show 20 Lines | |||||
| static void gizmo_ruler_exit(bContext *C, wmGizmo *gz, const bool cancel) | static void gizmo_ruler_exit(bContext *C, wmGizmo *gz, const bool cancel) | ||||
| { | { | ||||
| wmGizmoGroup *gzgroup = gz->parent_gzgroup; | wmGizmoGroup *gzgroup = gz->parent_gzgroup; | ||||
| RulerInfo *ruler_info = gzgroup->customdata; | RulerInfo *ruler_info = gzgroup->customdata; | ||||
| if (!cancel) { | if (!cancel) { | ||||
| if (ruler_info->state == RULER_STATE_DRAG) { | if (ruler_info->state == RULER_STATE_DRAG) { | ||||
| WM_gizmo_set_flag(ruler_info->snap_data.gizmo, WM_GIZMO_HIDDEN, false); | |||||
| RNA_property_unset(ruler_info->snap_data.gizmo->ptr, ruler_info->snap_data.prop_prevpoint); | RNA_property_unset(ruler_info->snap_data.gizmo->ptr, ruler_info->snap_data.prop_prevpoint); | ||||
| ruler_state_set(ruler_info, RULER_STATE_NORMAL); | ruler_state_set(ruler_info, RULER_STATE_NORMAL); | ||||
| } | } | ||||
| /* We could convert only the current gizmo, for now just re-generate. */ | /* We could convert only the current gizmo, for now just re-generate. */ | ||||
| view3d_ruler_to_gpencil(C, gzgroup); | view3d_ruler_to_gpencil(C, gzgroup); | ||||
| } | } | ||||
| if (gz) { | if (gz) { | ||||
| ▲ Show 20 Lines • Show All 231 Lines • Show Last 20 Lines | |||||