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:
authorGermano Cavalcante <germano.costa@ig.com.br>2022-04-28 17:28:22 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2022-04-28 17:28:37 +0300
commit22f5c05cb39a0296db55e3bb5e45d26e5670f7c1 (patch)
tree5794fccba38ad9a4d3c0bea884de46afa630004a
parent17769489d920f86310464297e8906f34d5ec61b9 (diff)
Snap Cursor: split 'ED_view3d_cursor_snap_data_get'
Split 'ED_view3d_cursor_snap_data_get' into 'update' and 'get' functions Sometimes we just want to update and sometimes we just get the result. Make it clear.
-rw-r--r--source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c24
-rw-r--r--source/blender/editors/include/ED_view3d.h9
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c3
-rw-r--r--source/blender/editors/space_view3d/view3d_cursor_snap.c36
-rw-r--r--source/blender/editors/space_view3d/view3d_placement.c4
5 files changed, 39 insertions, 37 deletions
diff --git a/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
index 5c8e70d1d97..27e9207aa07 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
@@ -81,13 +81,13 @@ bool ED_gizmotypes_snap_3d_flag_test(struct wmGizmo *UNUSED(gz), int flag)
bool ED_gizmotypes_snap_3d_invert_snap_get(struct wmGizmo *UNUSED(gz))
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
return snap_data->is_snap_invert;
}
bool ED_gizmotypes_snap_3d_is_enabled(const wmGizmo *UNUSED(gz))
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
return snap_data->is_enabled;
}
@@ -98,7 +98,6 @@ void ED_gizmotypes_snap_3d_data_get(const struct bContext *C,
int r_elem_index[3],
int *r_snap_elem)
{
- V3DSnapCursorData *snap_data = NULL;
if (C) {
/* Snap values are updated too late at the cursor. Be sure to update ahead of time. */
wmWindowManager *wm = CTX_wm_manager(C);
@@ -107,12 +106,12 @@ void ED_gizmotypes_snap_3d_data_get(const struct bContext *C,
ARegion *region = CTX_wm_region(C);
int x = event->xy[0] - region->winrct.xmin;
int y = event->xy[1] - region->winrct.ymin;
- snap_data = ED_view3d_cursor_snap_data_get(NULL, C, x, y);
+
+ ED_view3d_cursor_snap_data_update(NULL, C, x, y);
}
}
- if (!snap_data) {
- snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
- }
+
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
if (r_loc) {
copy_v3_v3(r_loc, snap_data->loc);
@@ -171,7 +170,7 @@ static void gizmo_snap_rna_location_get_fn(struct PointerRNA *UNUSED(ptr),
struct PropertyRNA *UNUSED(prop),
float *values)
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
copy_v3_v3(values, snap_data->loc);
}
@@ -179,7 +178,7 @@ static void gizmo_snap_rna_location_set_fn(struct PointerRNA *UNUSED(ptr),
struct PropertyRNA *UNUSED(prop),
const float *values)
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
copy_v3_v3(snap_data->loc, values);
}
@@ -187,7 +186,7 @@ static void gizmo_snap_rna_normal_get_fn(struct PointerRNA *UNUSED(ptr),
struct PropertyRNA *UNUSED(prop),
float *values)
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
copy_v3_v3(values, snap_data->nor);
}
@@ -195,7 +194,7 @@ static void gizmo_snap_rna_snap_elem_index_get_fn(struct PointerRNA *UNUSED(ptr)
struct PropertyRNA *UNUSED(prop),
int *values)
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
copy_v3_v3_int(values, snap_data->elem_index);
}
@@ -246,7 +245,8 @@ static int snap_gizmo_test_select(bContext *C, wmGizmo *gz, const int mval[2])
y = mval[1];
}
}
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(snap_gizmo->snap_state, C, x, y);
+ ED_view3d_cursor_snap_data_update(snap_gizmo->snap_state, C, x, y);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
if (snap_data->snap_elem) {
return 0;
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 3f9f26560b2..1e9b68c0920 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -332,10 +332,11 @@ V3DSnapCursorState *ED_view3d_cursor_snap_state_get(void);
V3DSnapCursorState *ED_view3d_cursor_snap_active(void);
void ED_view3d_cursor_snap_deactive(V3DSnapCursorState *state);
void ED_view3d_cursor_snap_prevpoint_set(V3DSnapCursorState *state, const float prev_point[3]);
-V3DSnapCursorData *ED_view3d_cursor_snap_data_get(V3DSnapCursorState *state,
- const struct bContext *C,
- int x,
- int y);
+void ED_view3d_cursor_snap_data_update(V3DSnapCursorState *state,
+ const struct bContext *C,
+ int x,
+ int y);
+V3DSnapCursorData *ED_view3d_cursor_snap_data_get(void);
struct SnapObjectContext *ED_view3d_cursor_snap_context_ensure(struct Scene *scene);
void ED_view3d_cursor_snap_draw_util(struct RegionView3D *rv3d,
const float loc_prev[3],
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 50d288af0e0..b39557929f8 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -692,8 +692,7 @@ static void view3d_ob_drop_matrix_from_snap(V3DSnapCursorState *snap_state,
Object *ob,
float obmat_final[4][4])
{
- V3DSnapCursorData *snap_data;
- snap_data = ED_view3d_cursor_snap_data_get(snap_state, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
BLI_assert(snap_state->draw_box || snap_state->draw_plane);
copy_m4_m3(obmat_final, snap_data->plane_omat);
copy_v3_v3(obmat_final[3], snap_data->loc);
diff --git a/source/blender/editors/space_view3d/view3d_cursor_snap.c b/source/blender/editors/space_view3d/view3d_cursor_snap.c
index f3e45a14565..210ec767924 100644
--- a/source/blender/editors/space_view3d/view3d_cursor_snap.c
+++ b/source/blender/editors/space_view3d/view3d_cursor_snap.c
@@ -956,28 +956,30 @@ void ED_view3d_cursor_snap_prevpoint_set(V3DSnapCursorState *state, const float
}
}
-V3DSnapCursorData *ED_view3d_cursor_snap_data_get(V3DSnapCursorState *state,
- const bContext *C,
- const int x,
- const int y)
+void ED_view3d_cursor_snap_data_update(V3DSnapCursorState *state,
+ const bContext *C,
+ const int x,
+ const int y)
{
SnapCursorDataIntern *data_intern = &g_data_intern;
- if (C) {
- wmWindowManager *wm = CTX_wm_manager(C);
- if (v3d_cursor_eventstate_has_changed(data_intern, state, wm, x, y)) {
- Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
- Scene *scene = DEG_get_input_scene(depsgraph);
- ScrArea *area = CTX_wm_area(C);
- ARegion *region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW);
- View3D *v3d = CTX_wm_view3d(C);
-
- if (!state) {
- state = ED_view3d_cursor_snap_state_get();
- }
- v3d_cursor_snap_update(state, C, wm, depsgraph, scene, region, v3d, x, y);
+ wmWindowManager *wm = CTX_wm_manager(C);
+ if (v3d_cursor_eventstate_has_changed(data_intern, state, wm, x, y)) {
+ Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
+ Scene *scene = DEG_get_input_scene(depsgraph);
+ ScrArea *area = CTX_wm_area(C);
+ ARegion *region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW);
+ View3D *v3d = CTX_wm_view3d(C);
+
+ if (!state) {
+ state = ED_view3d_cursor_snap_state_get();
}
+ v3d_cursor_snap_update(state, C, wm, depsgraph, scene, region, v3d, x, y);
}
+}
+V3DSnapCursorData *ED_view3d_cursor_snap_data_get()
+{
+ SnapCursorDataIntern *data_intern = &g_data_intern;
return &data_intern->snap_data;
}
diff --git a/source/blender/editors/space_view3d/view3d_placement.c b/source/blender/editors/space_view3d/view3d_placement.c
index 298de9b8730..eefc085bdf8 100644
--- a/source/blender/editors/space_view3d/view3d_placement.c
+++ b/source/blender/editors/space_view3d/view3d_placement.c
@@ -684,7 +684,7 @@ static bool view3d_interactive_add_calc_snap(bContext *UNUSED(C),
bool *r_is_enabled,
bool *r_is_snap_invert)
{
- V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get(NULL, NULL, 0, 0);
+ V3DSnapCursorData *snap_data = ED_view3d_cursor_snap_data_get();
copy_v3_v3(r_co_src, snap_data->loc);
if (r_matrix_orient) {
copy_m3_m3(r_matrix_orient, snap_data->plane_omat);
@@ -741,7 +741,7 @@ static void view3d_interactive_add_begin(bContext *C, wmOperator *op, const wmEv
/* Be sure to also compute the #V3DSnapCursorData.plane_omat. */
snap_state->draw_plane = true;
- ED_view3d_cursor_snap_data_get(snap_state_new, C, mval[0], mval[1]);
+ ED_view3d_cursor_snap_data_update(snap_state_new, C, mval[0], mval[1]);
snap_state_new->flag = flag_orig;
}
}