[Bf-blender-cvs] [4fe223a] pie-menus: Simplify some 2d vector use
Campbell Barton
noreply at git.blender.org
Fri Aug 1 20:29:50 CEST 2014
Commit: 4fe223ab0eb7b2d4d6d7135fb73495bc84f51d43
Author: Campbell Barton
Date: Sat Aug 2 04:28:02 2014 +1000
Branches: pie-menus
https://developer.blender.org/rB4fe223ab0eb7b2d4d6d7135fb73495bc84f51d43
Simplify some 2d vector use
===================================================================
M source/blender/editors/interface/interface_handlers.c
M source/blender/editors/interface/interface_intern.h
M source/blender/editors/interface/interface_regions.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 125c07c..c35ed75 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -7983,7 +7983,7 @@ static int ui_handle_menu_button(bContext *C, const wmEvent *event, uiPopupBlock
return retval;
}
-void ui_block_calculate_pie_segment(uiBlock *block, const float mx, const float my)
+void ui_block_calculate_pie_segment(uiBlock *block, const float event_xy[2])
{
float seg1[2];
float seg2[2];
@@ -7996,8 +7996,7 @@ void ui_block_calculate_pie_segment(uiBlock *block, const float mx, const float
copy_v2_v2(seg1, block->pie_data.pie_center_spawned);
}
- seg2[0] = mx - seg1[0];
- seg2[1] = my - seg1[1];
+ sub_v2_v2v2(seg2, event_xy, seg1);
len = normalize_v2_v2(block->pie_data.pie_dir, seg2);
@@ -8611,7 +8610,7 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
ARegion *ar;
uiBlock *block;
uiBut *but;
- int mx, my;
+ float event_xy[2];
double duration;
bool is_click_style;
@@ -8676,12 +8675,12 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
}
}
- mx = event->x;
- my = event->y;
+ event_xy[0] = event->x;
+ event_xy[1] = event->y;
- ui_window_to_block(ar, block, &mx, &my);
+ ui_window_to_block_fl(ar, block, &event_xy[0], &event_xy[1]);
- ui_block_calculate_pie_segment(block, mx, my);
+ ui_block_calculate_pie_segment(block, event_xy);
if (block->pie_data.flags & UI_PIE_FINISHED) {
if ((event->type == block->pie_data.event && event->val == KM_RELEASE) ||
@@ -8703,11 +8702,8 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
ED_region_tag_redraw(ar);
}
else {
- /* calculate distance from initial poit */
- float seg[2] = {(float)mx, (float)my};
- sub_v2_v2(seg, block->pie_data.pie_center_init);
-
- if (len_squared_v2(seg) < PIE_CLICK_THRESHOLD) {
+ /* distance from initial point */
+ if (len_squared_v2v2(event_xy, block->pie_data.pie_center_init) < PIE_CLICK_THRESHOLD) {
block->pie_data.flags |= UI_PIE_CLICK_STYLE;
}
else if (!is_click_style) {
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 71219c8..65f533c 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -599,7 +599,7 @@ extern bool ui_button_is_active(struct ARegion *ar) ATTR_WARN_UNUSED_RESULT;
extern int ui_button_open_menu_direction(uiBut *but);
extern void ui_button_text_password_hide(char password_str[UI_MAX_DRAW_STR], uiBut *but, const bool restore);
extern uiBut *ui_but_find_activated(struct ARegion *ar);
-void ui_block_calculate_pie_segment(struct uiBlock *block, const float mx, const float my);
+void ui_block_calculate_pie_segment(struct uiBlock *block, const float event_xy[2]);
void ui_button_clipboard_free(void);
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 5f60acc..956cc9e 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -1745,13 +1745,13 @@ uiBlock *ui_popup_block_refresh(
ar->winrct.ymin = 0;
ar->winrct.ymax = winy;
- ui_block_calculate_pie_segment(block, block->pie_data.pie_center_init[0], block->pie_data.pie_center_init[1]);
+ ui_block_calculate_pie_segment(block, block->pie_data.pie_center_init);
/* lastly set the buttons at the center of the pie menu, ready for animation */
if (U.pie_animation_timeout > 0) {
for (but = block->buttons.first; but; but = but->next) {
if (but->pie_dir) {
- BLI_rctf_recenter(&but->rect, block->pie_data.pie_center_spawned[0], block->pie_data.pie_center_spawned[1]);
+ BLI_rctf_recenter(&but->rect, UNPACK2(block->pie_data.pie_center_spawned));
}
}
}
More information about the Bf-blender-cvs
mailing list