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:
authorCampbell Barton <ideasman42@gmail.com>2012-08-20 19:29:02 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-20 19:29:02 +0400
commit26f073b327ac31d683e1719ce8371b6e28bf01d6 (patch)
treefecb4fdc3f279436ab3814e60266633ba02de50a
parent831eaf2d7feb63ee6df55a2b00e1d76f793c0a5c (diff)
macros for rectangle center and size
-rw-r--r--source/blender/blenfont/intern/blf_font.c6
-rw-r--r--source/blender/blenfont/intern/blf_glyph.c2
-rw-r--r--source/blender/blenkernel/intern/mask_rasterize.c4
-rw-r--r--source/blender/blenlib/BLI_rect.h9
-rw-r--r--source/blender/blenlib/intern/rct.c8
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c6
-rw-r--r--source/blender/editors/animation/anim_markers.c3
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c4
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c4
-rw-r--r--source/blender/editors/interface/interface.c12
-rw-r--r--source/blender/editors/interface/interface_draw.c8
-rw-r--r--source/blender/editors/interface/interface_handlers.c4
-rw-r--r--source/blender/editors/interface/interface_regions.c6
-rw-r--r--source/blender/editors/interface/interface_widgets.c16
-rw-r--r--source/blender/editors/interface/view2d.c8
-rw-r--r--source/blender/editors/interface/view2d_ops.c12
-rw-r--r--source/blender/editors/screen/area.c20
-rw-r--r--source/blender/editors/space_logic/logic_buttons.c8
-rw-r--r--source/blender/editors/space_node/drawnode.c6
-rw-r--r--source/blender/editors/space_node/node_edit.c4
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c2
-rw-r--r--source/blender/editors/space_text/text_ops.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c8
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c5
-rw-r--r--source/blender/editors/transform/transform_conversions.c4
-rw-r--r--source/blender/render/intern/source/pipeline.c9
-rw-r--r--source/blender/render/intern/source/render_result.c9
-rw-r--r--source/blender/windowmanager/intern/wm_gesture.c4
-rw-r--r--source/blender/windowmanager/intern/wm_window.c8
29 files changed, 106 insertions, 97 deletions
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index dcefcc68d23..751c2f5043b 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -425,8 +425,8 @@ void blf_font_width_and_height(FontBLF *font, const char *str, float *width, flo
}
blf_font_boundbox(font, str, &box);
- *width = ((box.xmax - box.xmin) * xa);
- *height = ((box.ymax - box.ymin) * ya);
+ *width = (BLI_RCT_SIZE_X(&box) * xa);
+ *height = (BLI_RCT_SIZE_Y(&box) * ya);
}
float blf_font_width(FontBLF *font, const char *str)
@@ -440,7 +440,7 @@ float blf_font_width(FontBLF *font, const char *str)
xa = 1.0f;
blf_font_boundbox(font, str, &box);
- return (box.xmax - box.xmin) * xa;
+ return BLI_RCT_SIZE_X(&box) * xa;
}
float blf_font_height(FontBLF *font, const char *str)
diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c
index 39945bf19b0..3e871fefff8 100644
--- a/source/blender/blenfont/intern/blf_glyph.c
+++ b/source/blender/blenfont/intern/blf_glyph.c
@@ -412,7 +412,7 @@ int blf_glyph_render(FontBLF *font, GlyphBLF *g, float x, float y)
g->uv[1][1] = ((float)(g->yoff + g->height)) / ((float)gc->p2_height);
/* update the x offset for the next glyph. */
- gc->x_offs += (int)(g->box.xmax - g->box.xmin + gc->pad);
+ gc->x_offs += (int)(BLI_RCT_SIZE_X(&g->box) + gc->pad);
gc->rem_glyphs--;
g->build_tex = 1;
diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c
index 1fde1168999..6f7cf43be69 100644
--- a/source/blender/blenkernel/intern/mask_rasterize.c
+++ b/source/blender/blenkernel/intern/mask_rasterize.c
@@ -370,8 +370,8 @@ static void layer_bucket_init(MaskRasterLayer *layer, const float pixel_size)
{
MemArena *arena = BLI_memarena_new(1 << 16, __func__);
- const float bucket_dim_x = layer->bounds.xmax - layer->bounds.xmin;
- const float bucket_dim_y = layer->bounds.ymax - layer->bounds.ymin;
+ const float bucket_dim_x = BLI_RCT_SIZE_X(&layer->bounds);
+ const float bucket_dim_y = BLI_RCT_SIZE_Y(&layer->bounds);
layer->buckets_x = (bucket_dim_x / pixel_size) / (float)BUCKET_PIXELS_PER_CELL;
layer->buckets_y = (bucket_dim_y / pixel_size) / (float)BUCKET_PIXELS_PER_CELL;
diff --git a/source/blender/blenlib/BLI_rect.h b/source/blender/blenlib/BLI_rect.h
index d6579afcd0d..43639b141e1 100644
--- a/source/blender/blenlib/BLI_rect.h
+++ b/source/blender/blenlib/BLI_rect.h
@@ -75,6 +75,15 @@ void BLI_rctf_rcti_copy(struct rctf *dst, const struct rcti *src);
void print_rctf(const char *str, const struct rctf *rect);
void print_rcti(const char *str, const struct rcti *rect);
+#define BLI_RCT_SIZE_X(rct) ((rct)->xmax - (rct)->xmin)
+#define BLI_RCT_SIZE_Y(rct) ((rct)->ymax - (rct)->ymin)
+
+#define BLI_RCT_CENTER_X(rct) (((rct)->xmin + (rct)->xmax) / 2)
+#define BLI_RCT_CENTER_Y(rct) (((rct)->ymin + (rct)->ymax) / 2)
+
+#define BLI_RCT_CENTER_X_FL(rct) ((float)((rct)->xmin + (rct)->xmax) / 2.0f)
+#define BLI_RCT_CENTER_Y_FL(rct) ((float)((rct)->ymin + (rct)->ymax) / 2.0f)
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenlib/intern/rct.c b/source/blender/blenlib/intern/rct.c
index 9c65c26c72b..61408610520 100644
--- a/source/blender/blenlib/intern/rct.c
+++ b/source/blender/blenlib/intern/rct.c
@@ -252,8 +252,8 @@ void BLI_rctf_translate(rctf *rect, float x, float y)
/* change width & height around the central location */
void BLI_rcti_resize(rcti *rect, int x, int y)
{
- rect->xmin = rect->xmax = (rect->xmax + rect->xmin) / 2;
- rect->ymin = rect->ymax = (rect->ymax + rect->ymin) / 2;
+ rect->xmin = rect->xmax = BLI_RCT_CENTER_X(rect);
+ rect->ymin = rect->ymax = BLI_RCT_CENTER_Y(rect);
rect->xmin -= x / 2;
rect->ymin -= y / 2;
rect->xmax = rect->xmin + x;
@@ -262,8 +262,8 @@ void BLI_rcti_resize(rcti *rect, int x, int y)
void BLI_rctf_resize(rctf *rect, float x, float y)
{
- rect->xmin = rect->xmax = (rect->xmax + rect->xmin) * 0.5f;
- rect->ymin = rect->ymax = (rect->ymax + rect->ymin) * 0.5f;
+ rect->xmin = rect->xmax = BLI_RCT_CENTER_X(rect);
+ rect->ymin = rect->ymax = BLI_RCT_CENTER_Y(rect);
rect->xmin -= x * 0.5f;
rect->ymin -= y * 0.5f;
rect->xmax = rect->xmin + x;
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 837230d9719..16168888573 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -3067,9 +3067,9 @@ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float
break;
}
}
-
+
/* check if there's enough space for the toggles if the sliders are drawn too */
- if (!(draw_sliders) || ((v2d->mask.xmax - v2d->mask.xmin) > ACHANNEL_BUTTON_WIDTH / 2) ) {
+ if (!(draw_sliders) || (BLI_RCT_SIZE_X(&v2d->mask) > ACHANNEL_BUTTON_WIDTH / 2) ) {
/* protect... */
if (acf->has_setting(ac, ale, ACHANNEL_SETTING_PROTECT))
offset += ICON_WIDTH;
@@ -3461,7 +3461,7 @@ void ANIM_channel_draw_widgets(bContext *C, bAnimContext *ac, bAnimListElem *ale
}
/* check if there's enough space for the toggles if the sliders are drawn too */
- if (!(draw_sliders) || ((v2d->mask.xmax - v2d->mask.xmin) > ACHANNEL_BUTTON_WIDTH / 2) ) {
+ if (!(draw_sliders) || (BLI_RCT_SIZE_X(&v2d->mask) > ACHANNEL_BUTTON_WIDTH / 2) ) {
/* protect... */
if (acf->has_setting(ac, ale, ACHANNEL_SETTING_PROTECT)) {
offset += ICON_WIDTH;
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index a8daf852dda..c75024a469e 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -773,8 +773,7 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
if (hasNumInput(&mm->num))
break;
- dx = v2d->mask.xmax - v2d->mask.xmin;
- dx = (v2d->cur.xmax - v2d->cur.xmin) / dx;
+ dx = BLI_RCT_SIZE_X(&v2d->cur) / BLI_RCT_SIZE_X(&v2d->mask);
if (evt->x != mm->evtx) { /* XXX maybe init for first time */
int a, offs, totmark = 0;
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 949f92c68e9..5d67b63af18 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -422,8 +422,8 @@ static void gp_strokepoint_convertcoords(bContext *C, bGPDstroke *gps, bGPDspoin
}
else {
if (subrect) {
- mvalf[0] = (((float)pt->x / 100.0f) * (subrect->xmax - subrect->xmin)) + subrect->xmin;
- mvalf[1] = (((float)pt->y / 100.0f) * (subrect->ymax - subrect->ymin)) + subrect->ymin;
+ mvalf[0] = (((float)pt->x / 100.0f) * BLI_RCT_SIZE_X(subrect)) + subrect->xmin;
+ mvalf[1] = (((float)pt->y / 100.0f) * BLI_RCT_SIZE_Y(subrect)) + subrect->ymin;
}
else {
mvalf[0] = (float)pt->x / 100.0f * ar->winx;
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index d98f4891dc5..1f317fa4f04 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -300,8 +300,8 @@ static void gp_stroke_convertcoords(tGPsdata *p, const int mval[2], float out[3]
out[1] = (float)(mval[1]) / (float)(p->ar->winy) * 100;
}
else { /* camera view, use subrect */
- out[0] = ((mval[0] - p->subrect->xmin) / ((p->subrect->xmax - p->subrect->xmin))) * 100;
- out[1] = ((mval[1] - p->subrect->ymin) / ((p->subrect->ymax - p->subrect->ymin))) * 100;
+ out[0] = ((mval[0] - p->subrect->xmin) / BLI_RCT_SIZE_X(p->subrect)) * 100;
+ out[1] = ((mval[1] - p->subrect->ymin) / BLI_RCT_SIZE_Y(p->subrect)) * 100;
}
}
}
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 62b26f5a8c1..f728e999667 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -300,8 +300,8 @@ static void ui_centered_bounds_block(const bContext *C, uiBlock *block)
ui_bounds_block(block);
- width = block->rect.xmax - block->rect.xmin;
- height = block->rect.ymax - block->rect.ymin;
+ width = BLI_RCT_SIZE_X(&block->rect);
+ height = BLI_RCT_SIZE_Y(&block->rect);
startx = (xmax * 0.5f) - (width * 0.5f);
starty = (ymax * 0.5f) - (height * 0.5f);
@@ -488,10 +488,10 @@ static void ui_draw_linkline(uiLinkLine *line, int highlightActiveLines)
if (line->from == NULL || line->to == NULL) return;
- rect.xmin = (line->from->rect.xmin + line->from->rect.xmax) / 2.0f;
- rect.ymin = (line->from->rect.ymin + line->from->rect.ymax) / 2.0f;
- rect.xmax = (line->to->rect.xmin + line->to->rect.xmax) / 2.0f;
- rect.ymax = (line->to->rect.ymin + line->to->rect.ymax) / 2.0f;
+ rect.xmin = BLI_RCT_CENTER_X(&line->from->rect);
+ rect.ymin = BLI_RCT_CENTER_Y(&line->from->rect);
+ rect.xmax = BLI_RCT_CENTER_X(&line->to->rect);
+ rect.ymax = BLI_RCT_CENTER_Y(&line->to->rect);
if (line->flag & UI_SELECT)
glColor3ub(100, 100, 100);
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index 41a827bbda9..109978780c2 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -439,8 +439,8 @@ void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *but, uiWidgetColors *UNUSED(w
//glColor4f(1.0, 0.f, 0.f, 1.f);
//fdrawbox(rect->xmin, rect->ymin, rect->xmax, rect->ymax)
- w = (rect->xmax - rect->xmin);
- h = (rect->ymax - rect->ymin);
+ w = BLI_RCT_SIZE_X(rect);
+ h = BLI_RCT_SIZE_Y(rect);
/* prevent drawing outside widget area */
glGetIntegerv(GL_SCISSOR_BOX, scissor);
glScissor(ar->winrct.xmin + rect->xmin, ar->winrct.ymin + rect->ymin, w, h);
@@ -732,8 +732,8 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
rect.ymin = (float)recti->ymin + SCOPE_RESIZE_PAD + 2;
rect.ymax = (float)recti->ymax - 1;
- w = rect.xmax - rect.xmin;
- h = (rect.ymax - rect.ymin) * hist->ymax;
+ w = BLI_RCT_SIZE_X(&rect);
+ h = BLI_RCT_SIZE_Y(&rect) * hist->ymax;
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 4010274f687..50b6de5ce46 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -693,7 +693,7 @@ static int ui_but_mouse_inside_icon(uiBut *but, ARegion *ar, wmEvent *event)
rect.xmax = rect.xmin + (rect.ymax - rect.ymin);
}
else {
- int delta = (rect.xmax - rect.xmin) - (rect.ymax - rect.ymin);
+ int delta = BLI_RCT_SIZE_X(&rect) - BLI_RCT_SIZE_Y(&rect);
rect.xmin += delta / 2;
rect.xmax -= delta / 2;
}
@@ -2763,7 +2763,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
}
/* alt-click on sides to get "arrows" like in NUM buttons, and match wheel usage above */
else if (event->type == LEFTMOUSE && event->alt) {
- int halfpos = (but->rect.xmin + but->rect.xmax) / 2;
+ int halfpos = BLI_RCT_CENTER_X(&but->rect);
click = 2;
if (mx < halfpos)
mx = but->rect.xmin;
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index be118e1982e..c44a45c2150 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -1181,7 +1181,7 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
data->bbox.ymax = (ar->winrct.ymax - ar->winrct.ymin) - MENU_SHADOW_BOTTOM;
/* check if button is lower half */
- if (but->rect.ymax < (but->block->rect.ymin + but->block->rect.ymax) / 2) {
+ if (but->rect.ymax < BLI_RCT_CENTER_Y(&but->block->rect)) {
data->bbox.ymin += (but->rect.ymax - but->rect.ymin);
}
else {
@@ -1495,8 +1495,8 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
/* safety calculus */
if (but) {
- float midx = (butrct.xmin + butrct.xmax) / 2.0f;
- float midy = (butrct.ymin + butrct.ymax) / 2.0f;
+ const float midx = BLI_RCT_CENTER_X(&butrct);
+ const float midy = BLI_RCT_CENTER_Y(&butrct);
/* when you are outside parent button, safety there should be smaller */
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index aebdb349bd5..3c944781d80 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -1843,8 +1843,8 @@ static void ui_hsv_cursor(float x, float y)
void ui_hsvcircle_vals_from_pos(float *valrad, float *valdist, rcti *rect, float mx, float my)
{
/* duplication of code... well, simple is better now */
- float centx = (float)(rect->xmin + rect->xmax) / 2;
- float centy = (float)(rect->ymin + rect->ymax) / 2;
+ float centx = BLI_RCT_CENTER_X_FL(rect);
+ float centy = BLI_RCT_CENTER_Y_FL(rect);
float radius, dist;
if (rect->xmax - rect->xmin > rect->ymax - rect->ymin)
@@ -1876,8 +1876,8 @@ static void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
color_profile = BLI_PR_NONE;
radstep = 2.0f * (float)M_PI / (float)tot;
- centx = (float)(rect->xmin + rect->xmax) / 2;
- centy = (float)(rect->ymin + rect->ymax) / 2;
+ centx = BLI_RCT_CENTER_X_FL(rect);
+ centy = BLI_RCT_CENTER_Y_FL(rect);
if (rect->xmax - rect->xmin > rect->ymax - rect->ymin)
radius = (float)(rect->ymax - rect->ymin) / 2;
@@ -2438,8 +2438,8 @@ static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, in
UI_ThemeColor(TH_TEXT_HI);
- rectlink.xmin = (rect->xmin + rect->xmax) / 2;
- rectlink.ymin = (rect->ymin + rect->ymax) / 2;
+ rectlink.xmin = BLI_RCT_CENTER_X(rect);
+ rectlink.ymin = BLI_RCT_CENTER_Y(rect);
rectlink.xmax = but->linkto[0];
rectlink.ymax = but->linkto[1];
@@ -3269,12 +3269,12 @@ void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
if (block->flag & UI_BLOCK_CLIPTOP) {
/* XXX no scaling for UI here yet */
glColor3ubv((unsigned char *)wt->wcol.text);
- UI_DrawTriIcon((rect->xmax + rect->xmin) / 2, rect->ymax - 8, 't');
+ UI_DrawTriIcon(BLI_RCT_CENTER_X(rect), rect->ymax - 8, 't');
}
if (block->flag & UI_BLOCK_CLIPBOTTOM) {
/* XXX no scaling for UI here yet */
glColor3ubv((unsigned char *)wt->wcol.text);
- UI_DrawTriIcon((rect->xmax + rect->xmin) / 2, rect->ymin + 10, 'v');
+ UI_DrawTriIcon(BLI_RCT_CENTER_X(rect), rect->ymin + 10, 'v');
}
}
}
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 8ae08c08693..d498f57e8e3 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -508,7 +508,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
cur->xmax += width - (cur->xmax - cur->xmin);
}
else {
- temp = (cur->xmax + cur->xmin) * 0.5f;
+ temp = BLI_RCT_CENTER_X(cur);
dh = width * 0.5f;
cur->xmin = temp - dh;
@@ -526,7 +526,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
cur->ymax += height - (cur->ymax - cur->ymin);
}
else {
- temp = (cur->ymax + cur->ymin) * 0.5f;
+ temp = BLI_RCT_CENTER_Y(cur);
dh = height * 0.5f;
cur->ymin = temp - dh;
@@ -592,7 +592,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
*/
if ((cur->xmin < tot->xmin) && (cur->xmax > tot->xmax)) {
/* outside boundaries on both sides, so take middle-point of tot, and place in balanced way */
- temp = (tot->xmax + tot->xmin) * 0.5f;
+ temp = BLI_RCT_CENTER_X(tot);
diff = curheight * 0.5f;
cur->xmin = temp - diff;
@@ -642,7 +642,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
*/
if ((cur->ymin < tot->ymin) && (cur->ymax > tot->ymax)) {
/* outside boundaries on both sides, so take middle-point of tot, and place in balanced way */
- temp = (tot->ymax + tot->ymin) * 0.5f;
+ temp = BLI_RCT_CENTER_Y(tot);
diff = curheight * 0.5f;
cur->ymin = temp - diff;
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index 33b72b34784..f12a9e06312 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -1139,7 +1139,7 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0) {
size = (cur_new.xmax - cur_new.xmin);
zoom = size / (rect.xmax - rect.xmin);
- center = (cur_new.xmax + cur_new.xmin) * 0.5f;
+ center = BLI_RCT_CENTER_X(&cur_new);
cur_new.xmin = center - (size * zoom);
cur_new.xmax = center + (size * zoom);
@@ -1147,7 +1147,7 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0) {
size = (cur_new.ymax - cur_new.ymin);
zoom = size / (rect.ymax - rect.ymin);
- center = (cur_new.ymax + cur_new.ymin) * 0.5f;
+ center = BLI_RCT_CENTER_Y(&cur_new);
cur_new.ymin = center - (size * zoom);
cur_new.ymax = center + (size * zoom);
@@ -1201,10 +1201,10 @@ static float smooth_view_rect_to_fac(const rctf *rect_a, const rctf *rect_b)
rect_a->ymax - rect_a->ymin};
float size_b[2] = {rect_b->xmax - rect_b->xmin,
rect_b->ymax - rect_b->ymin};
- float cent_a[2] = {(rect_a->xmax + rect_a->xmin) * 0.5f,
- (rect_a->ymax + rect_a->ymin) * 0.5f};
- float cent_b[2] = {(rect_b->xmax + rect_b->xmin) * 0.5f,
- (rect_b->ymax + rect_b->ymin) * 0.5f};
+ float cent_a[2] = {BLI_RCT_CENTER_X(rect_a),
+ BLI_RCT_CENTER_Y(rect_a)};
+ float cent_b[2] = {BLI_RCT_CENTER_X(rect_b),
+ BLI_RCT_CENTER_Y(rect_b)};
float fac_max = 0.0f;
float tfac;
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 6f5f5c7dfa3..2c32295fe36 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1010,7 +1010,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
if (alignment == RGN_ALIGN_HSPLIT) {
if (rct_fits(remainder, 'h', prefsizex) > 4) {
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
+ ar->winrct.xmax = BLI_RCT_CENTER_X(remainder);
remainder->xmin = ar->winrct.xmax + 1;
}
else {
@@ -1019,7 +1019,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
}
else {
if (rct_fits(remainder, 'v', prefsizey) > 4) {
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.ymax = BLI_RCT_CENTER_Y(remainder);
remainder->ymin = ar->winrct.ymax + 1;
}
else {
@@ -1051,20 +1051,20 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
}
if (quad) {
if (quad == 1) { /* left bottom */
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmax = BLI_RCT_CENTER_X(remainder);
+ ar->winrct.ymax = BLI_RCT_CENTER_Y(remainder);
}
else if (quad == 2) { /* left top */
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymin = 1 + (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmax = BLI_RCT_CENTER_X(remainder);
+ ar->winrct.ymin = BLI_RCT_CENTER_Y(remainder) + 1;
}
else if (quad == 3) { /* right bottom */
- ar->winrct.xmin = 1 + (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmin = BLI_RCT_CENTER_X(remainder) + 1;
+ ar->winrct.ymax = BLI_RCT_CENTER_Y(remainder);
}
else { /* right top */
- ar->winrct.xmin = 1 + (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymin = 1 + (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmin = BLI_RCT_CENTER_X(remainder) + 1;
+ ar->winrct.ymin = BLI_RCT_CENTER_Y(remainder) + 1;
BLI_rcti_init(remainder, 0, 0, 0, 0);
}
diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c
index 999a8baf34b..abffb955405 100644
--- a/source/blender/editors/space_logic/logic_buttons.c
+++ b/source/blender/editors/space_logic/logic_buttons.c
@@ -84,10 +84,10 @@ static int cut_links_intersect(uiLinkLine *line, float mcoords[][2], int tot)
int i, b;
rcti rectlink;
- rectlink.xmin = (int) (line->from->rect.xmin + line->from->rect.xmax) / 2;
- rectlink.ymin = (int) (line->from->rect.ymin + line->from->rect.ymax) / 2;
- rectlink.xmax = (int) (line->to->rect.xmin + line->to->rect.xmax) / 2;
- rectlink.ymax = (int) (line->to->rect.ymin + line->to->rect.ymax) / 2;
+ rectlink.xmin = (int)BLI_RCT_CENTER_X(&line->from->rect);
+ rectlink.ymin = (int)BLI_RCT_CENTER_Y(&line->from->rect);
+ rectlink.xmax = (int)BLI_RCT_CENTER_X(&line->to->rect);
+ rectlink.ymax = (int)BLI_RCT_CENTER_Y(&line->to->rect);
if (ui_link_bezier_points(&rectlink, coord_array, LINK_RESOL)) {
for (i=0; i<tot-1; i++)
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 615c4fb4b46..68286554093 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -522,7 +522,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
rect->ymax += NODE_DY;
/* input sockets */
- dy = 0.5f * (rect->ymin + rect->ymax) + NODE_DY * (BLI_countlist(&gnode->inputs) - 1);
+ dy = BLI_RCT_CENTER_Y(rect) + (NODE_DY * (BLI_countlist(&gnode->inputs) - 1));
gsock = ngroup->inputs.first;
sock = gnode->inputs.first;
while (gsock || sock) {
@@ -570,7 +570,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
}
/* output sockets */
- dy = 0.5f * (rect->ymin + rect->ymax) + NODE_DY * (BLI_countlist(&gnode->outputs) - 1);
+ dy = BLI_RCT_CENTER_Y(rect) + (NODE_DY * (BLI_countlist(&gnode->outputs) - 1));
gsock = ngroup->outputs.first;
sock = gnode->outputs.first;
while (gsock || sock) {
@@ -979,7 +979,7 @@ static void node_draw_frame_label(bNode *node, const float aspect)
ascender = BLF_ascender(fontid);
/* 'x' doesn't need aspect correction */
- x = 0.5f * (rct->xmin + rct->xmax) - 0.5f * width;
+ x = BLI_RCT_CENTER_X(rct) - (0.5f * width);
y = rct->ymax - (((NODE_DY / 4) / aspect) + (ascender * aspect));
BLF_position(fontid, x, y, 0);
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 245c9cefd1f..4423b340d77 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -2063,8 +2063,8 @@ static int node_clipboard_paste_exec(bContext *C, wmOperator *op)
/* calculate "barycenter" for placing on mouse cursor */
zero_v2(center);
for (node = clipboard_nodes_lb->first, num_nodes = 0; node; node = node->next, num_nodes++) {
- center[0] += 0.5f * (node->totr.xmin + node->totr.xmax);
- center[1] += 0.5f * (node->totr.ymin + node->totr.ymax);
+ center[0] += BLI_RCT_CENTER_X(&node->totr);
+ center[1] += BLI_RCT_CENTER_Y(&node->totr);
}
mul_v2_fl(center, 1.0 / num_nodes);
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 5bb3f710133..144de1f9d5e 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -2256,7 +2256,7 @@ static int sequencer_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
/* only zoom out vertically */
if (orig_height > cur_new.ymax - cur_new.ymin) {
- ymid = (cur_new.ymax + cur_new.ymin) / 2;
+ ymid = BLI_RCT_CENTER_Y(&cur_new);
cur_new.ymin = ymid - (orig_height / 2);
cur_new.ymax = ymid + (orig_height / 2);
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index df90ce24dda..5af44f93d06 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -2409,8 +2409,8 @@ static int text_scroll_bar_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* jump scroll, works in v2d but needs to be added here too :S */
if (event->type == MIDDLEMOUSE) {
- tsc->old[0] = ar->winrct.xmin + (st->txtbar.xmax + st->txtbar.xmin) / 2;
- tsc->old[1] = ar->winrct.ymin + (st->txtbar.ymax + st->txtbar.ymin) / 2;
+ tsc->old[0] = ar->winrct.xmin + BLI_RCT_CENTER_X(&st->txtbar);
+ tsc->old[1] = ar->winrct.ymin + BLI_RCT_CENTER_Y(&st->txtbar);
tsc->delta[0] = 0;
tsc->delta[1] = 0;
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index e5730e0f69b..4fe859adf45 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -382,9 +382,9 @@ static void calctrackballvec(rcti *rect, int mx, int my, float vec[3])
radius = TRACKBALLSIZE;
/* normalize x and y */
- x = (rect->xmax + rect->xmin) / 2 - mx;
+ x = BLI_RCT_CENTER_X(rect) - mx;
x /= (float)((rect->xmax - rect->xmin) / 4);
- y = (rect->ymax + rect->ymin) / 2 - my;
+ y = BLI_RCT_CENTER_Y(rect) - my;
y /= (float)((rect->ymax - rect->ymin) / 2);
d = sqrt(x * x + y * y);
@@ -1666,8 +1666,8 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom,
int ctr[2], len1, len2;
/* method which zooms based on how far you move the mouse */
- ctr[0] = (vod->ar->winrct.xmax + vod->ar->winrct.xmin) / 2;
- ctr[1] = (vod->ar->winrct.ymax + vod->ar->winrct.ymin) / 2;
+ ctr[0] = BLI_RCT_CENTER_X(&vod->ar->winrct);
+ ctr[1] = BLI_RCT_CENTER_Y(&vod->ar->winrct);
len1 = (int)sqrt((ctr[0] - x) * (ctr[0] - x) + (ctr[1] - y) * (ctr[1] - y)) + 5;
len2 = (int)sqrt((ctr[0] - vod->origx) * (ctr[0] - vod->origx) + (ctr[1] - vod->origy) * (ctr[1] - vod->origy)) + 5;
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 69fa42b0abb..8ef1b481143 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -765,9 +765,8 @@ static void do_lasso_select_node(int mcords[][2], short moves, short select)
/* store selection in temp test flag */
for (node = snode->edittree->nodes.first; node; node = node->next) {
-
- node_centf[0] = (node->totr.xmin + node->totr.xmax) / 2;
- node_centf[1] = (node->totr.ymin + node->totr.ymax) / 2;
+ node_centf[0] = BLI_RCT_CENTER_X(&node->totr);
+ node_centf[1] = BLI_RCT_CENTER_Y(&node->totr);
ipoco_to_areaco_noclip(G.v2d, node_centf, node_cent);
if (BLI_in_rcti_v(&rect, node_cent) && BLI_lasso_is_point_inside(mcords, moves, node_cent[0], node_cent[1])) {
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index c22a645eb53..120394aa7c1 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -5548,8 +5548,8 @@ static void createTransObject(bContext *C, TransInfo *t)
static void NodeToTransData(TransData *td, TransData2D *td2d, bNode *node)
{
/* hold original location */
- float locxy[2] = {(node->totr.xmax + node->totr.xmin) / 2.0f,
- (node->totr.ymax + node->totr.ymin) / 2.0f};
+ float locxy[2] = {BLI_RCT_CENTER_X(&node->totr),
+ BLI_RCT_CENTER_Y(&node->totr)};
copy_v2_v2(td2d->loc, locxy);
td2d->loc[2] = 0.0f;
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 3d2b1608906..01b1f00ff98 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -59,6 +59,7 @@
#include "BKE_writeavi.h" /* <------ should be replaced once with generic movie module */
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_path_util.h"
@@ -739,8 +740,8 @@ static RenderPart *find_next_part(Render *re, int minx)
/* find center of rendered parts, image center counts for 1 too */
for (pa = re->parts.first; pa; pa = pa->next) {
if (pa->ready) {
- centx += (pa->disprect.xmin + pa->disprect.xmax) / 2;
- centy += (pa->disprect.ymin + pa->disprect.ymax) / 2;
+ centx += BLI_RCT_CENTER_X(&pa->disprect);
+ centy += BLI_RCT_CENTER_Y(&pa->disprect);
tot++;
}
}
@@ -750,8 +751,8 @@ static RenderPart *find_next_part(Render *re, int minx)
/* closest of the non-rendering parts */
for (pa = re->parts.first; pa; pa = pa->next) {
if (pa->ready == 0 && pa->nr == 0) {
- long long int distx = centx - (pa->disprect.xmin + pa->disprect.xmax) / 2;
- long long int disty = centy - (pa->disprect.ymin + pa->disprect.ymax) / 2;
+ long long int distx = centx - BLI_RCT_CENTER_X(&pa->disprect);
+ long long int disty = centy - BLI_RCT_CENTER_Y(&pa->disprect);
distx = (long long int)sqrt(distx * distx + disty * disty);
if (distx < mindist) {
if (re->r.mode & R_PANORAMA) {
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 5da661e7182..ce200b34d39 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -43,6 +43,7 @@
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_path_util.h"
+#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
@@ -420,8 +421,8 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
SceneRenderLayer *srl;
int rectx, recty, nr;
- rectx = partrct->xmax - partrct->xmin;
- recty = partrct->ymax - partrct->ymin;
+ rectx = BLI_RCT_SIZE_X(partrct);
+ recty = BLI_RCT_SIZE_Y(partrct);
if (rectx <= 0 || recty <= 0)
return NULL;
@@ -558,8 +559,8 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
}
/* border render; calculate offset for use in compositor. compo is centralized coords */
- rr->xof = re->disprect.xmin + (re->disprect.xmax - re->disprect.xmin) / 2 - re->winx / 2;
- rr->yof = re->disprect.ymin + (re->disprect.ymax - re->disprect.ymin) / 2 - re->winy / 2;
+ rr->xof = re->disprect.xmin + BLI_RCT_CENTER_X(&re->disprect) - (re->winx / 2);
+ rr->yof = re->disprect.ymin + BLI_RCT_CENTER_Y(&re->disprect) - (re->winy / 2);
return rr;
}
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index c9f1a2587df..2928ba024e5 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -130,8 +130,8 @@ int wm_gesture_evaluate(wmGesture *gesture)
{
if (gesture->type == WM_GESTURE_TWEAK) {
rcti *rect = gesture->customdata;
- int dx = rect->xmax - rect->xmin;
- int dy = rect->ymax - rect->ymin;
+ int dx = BLI_RCT_SIZE_X(rect);
+ int dy = BLI_RCT_SIZE_Y(rect);
if (ABS(dx) + ABS(dy) > U.tweak_threshold) {
int theta = (int)floor(4.0f * atan2f((float)dy, (float)dx) / (float)M_PI + 0.5f);
int val = EVT_GESTURE_W;
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index c2aa99352e9..fe3c2d0e901 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -464,8 +464,8 @@ wmWindow *WM_window_open(bContext *C, rcti *rect)
win->posx = rect->xmin;
win->posy = rect->ymin;
- win->sizex = rect->xmax - rect->xmin;
- win->sizey = rect->ymax - rect->ymin;
+ win->sizex = BLI_RCT_SIZE_X(rect);
+ win->sizey = BLI_RCT_SIZE_Y(rect);
win->drawmethod = -1;
win->drawdata = NULL;
@@ -500,8 +500,8 @@ void WM_window_open_temp(bContext *C, rcti *position, int type)
win->posy = position->ymin;
}
- win->sizex = position->xmax - position->xmin;
- win->sizey = position->ymax - position->ymin;
+ win->sizex = BLI_RCT_SIZE_X(position);
+ win->sizey = BLI_RCT_SIZE_Y(position);
if (win->ghostwin) {
wm_window_set_size(win, win->sizex, win->sizey);