Math Lib: Add non-clamped round_* functions
authorCampbell Barton <ideasman42@gmail.com>
Wed, 27 Sep 2017 01:13:03 +0000 (11:13 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 27 Sep 2017 01:13:03 +0000 (11:13 +1000)
Replace iroundf with round_fl_to_int, add other types

23 files changed:
source/blender/blenlib/BLI_math_base.h
source/blender/blenlib/intern/math_base_inline.c
source/blender/blenlib/intern/timecode.c
source/blender/editors/animation/anim_channels_defines.c
source/blender/editors/animation/anim_markers.c
source/blender/editors/animation/anim_ops.c
source/blender/editors/armature/pose_slide.c
source/blender/editors/gpencil/drawgpencil.c
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_panel.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/space_action/action_edit.c
source/blender/editors/space_clip/clip_ops.c
source/blender/editors/space_graph/graph_edit.c
source/blender/editors/space_graph/graph_ops.c
source/blender/editors/space_image/image_ops.c
source/blender/editors/space_nla/nla_edit.c
source/blender/editors/space_node/node_draw.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_snap.c
source/blender/modifiers/intern/MOD_meshcache_util.c
source/blender/render/intern/source/imagetexture.c
source/blender/windowmanager/intern/wm_gesture.c

index e7e89a6424a28a8f23590db21d0c96ff1101d2ec..e6a72298ae7264a3c7ccf1346b5a611edf41f1f8 100644 (file)
@@ -149,10 +149,23 @@ MINLINE int power_of_2_min_i(int n);
 MINLINE unsigned int power_of_2_max_u(unsigned int x);
 MINLINE unsigned int power_of_2_min_u(unsigned int x);
 
-MINLINE int iroundf(float a);
 MINLINE int divide_round_i(int a, int b);
 MINLINE int mod_i(int i, int n);
 
+MINLINE signed char    round_fl_to_char(float a);
+MINLINE unsigned char  round_fl_to_uchar(float a);
+MINLINE short          round_fl_to_short(float a);
+MINLINE unsigned short round_fl_to_ushort(float a);
+MINLINE int            round_fl_to_int(float a);
+MINLINE unsigned int   round_fl_to_uint(float a);
+
+MINLINE signed char    round_db_to_char(double a);
+MINLINE unsigned char  round_db_to_uchar(double a);
+MINLINE short          round_db_to_short(double a);
+MINLINE unsigned short round_db_to_ushort(double a);
+MINLINE int            round_db_to_int(double a);
+MINLINE unsigned int   round_db_to_uint(double a);
+
 MINLINE signed char    round_fl_to_char_clamp(float a);
 MINLINE unsigned char  round_fl_to_uchar_clamp(float a);
 MINLINE short          round_fl_to_short_clamp(float a);
index 37efe95791c2aba175b866c04838fabf6353b4a7..749c18fc0ced81e31c90602f26c955662bb8cb48 100644 (file)
@@ -184,11 +184,6 @@ MINLINE unsigned power_of_2_min_u(unsigned x)
 
 /* rounding and clamping */
 
-MINLINE int iroundf(float a)
-{
-       return (int)floorf(a + 0.5f);
-}
-
 #define _round_clamp_fl_impl(arg, ty, min, max) { \
        float r = floorf(arg + 0.5f); \
        if      (UNLIKELY(r <= (float)min)) return (ty)min; \
@@ -203,6 +198,26 @@ MINLINE int iroundf(float a)
        else return (ty)r; \
 }
 
+#define _round_fl_impl(arg, ty) { return (ty)floorf(arg + 0.5f); }
+#define _round_db_impl(arg, ty) { return (ty)floor(arg + 0.5); }
+
+MINLINE signed char    round_fl_to_char(float a) { _round_fl_impl(a, signed char) }
+MINLINE unsigned char  round_fl_to_uchar(float a) { _round_fl_impl(a, unsigned char) }
+MINLINE short          round_fl_to_short(float a) { _round_fl_impl(a, short) }
+MINLINE unsigned short round_fl_to_ushort(float a) { _round_fl_impl(a, unsigned short) }
+MINLINE int            round_fl_to_int(float a) { _round_fl_impl(a, int) }
+MINLINE unsigned int   round_fl_to_uint(float a) { _round_fl_impl(a, unsigned int) }
+
+MINLINE signed char    round_db_to_char(double a) { _round_db_impl(a, signed char) }
+MINLINE unsigned char  round_db_to_uchar(double a) { _round_db_impl(a, unsigned char) }
+MINLINE short          round_db_to_short(double a) { _round_db_impl(a, short) }
+MINLINE unsigned short round_db_to_ushort(double a) { _round_db_impl(a, unsigned short) }
+MINLINE int            round_db_to_int(double a) { _round_db_impl(a, int) }
+MINLINE unsigned int   round_db_to_uint(double a) { _round_db_impl(a, unsigned int) }
+
+#undef _round_fl_impl
+#undef _round_db_impl
+
 MINLINE signed char    round_fl_to_char_clamp(float a) { _round_clamp_fl_impl(a, signed char, SCHAR_MIN, SCHAR_MAX) }
 MINLINE unsigned char  round_fl_to_uchar_clamp(float a) { _round_clamp_fl_impl(a, unsigned char, 0, UCHAR_MAX) }
 MINLINE short          round_fl_to_short_clamp(float a) { _round_clamp_fl_impl(a, short, SHRT_MIN, SHRT_MAX) }
index e755a7ae52ca98dc76399f9f39831abf24915937..7856bad4d9925b255f0cb0054bb431ceb2c750ef 100644 (file)
@@ -94,11 +94,11 @@ size_t BLI_timecode_string_from_time(
                 * to cope with 'half' frames, etc., which should be fine in most cases
                 */
                seconds = (int)time;
-               frames = iroundf((float)(((double)time - (double)seconds) * fps));
+               frames = round_fl_to_int((float)(((double)time - (double)seconds) * fps));
        }
        else {
                /* seconds (with pixel offset rounding) */
-               seconds = iroundf(time);
+               seconds = round_fl_to_int(time);
        }
 
        switch (timecode_style) {
@@ -169,7 +169,7 @@ size_t BLI_timecode_string_from_time(
 
                        /* precision of decimal part */
                        const int ms_dp = (power <= 0) ? (1 - power) : 1;
-                       const int ms = iroundf((time - (float)seconds) * 1000.0f);
+                       const int ms = round_fl_to_int((time - (float)seconds) * 1000.0f);
 
                        rlen = BLI_snprintf_rlen(
                                   str, maxncpy, "%s%02d:%02d:%02d,%0*d", neg, hours, minutes, seconds, ms_dp, ms);
@@ -183,7 +183,7 @@ size_t BLI_timecode_string_from_time(
                                rlen = BLI_snprintf_rlen(str, maxncpy, "%.*f", 1 - power, time_seconds);
                        }
                        else {
-                               rlen = BLI_snprintf_rlen(str, maxncpy, "%d", iroundf(time_seconds));
+                               rlen = BLI_snprintf_rlen(str, maxncpy, "%d", round_fl_to_int(time_seconds));
                        }
                        break;
                }
@@ -250,7 +250,7 @@ size_t BLI_timecode_string_from_time_seconds(
                rlen = BLI_snprintf_rlen(str, maxncpy, "%.*f", 1 - power, time_seconds);
        }
        else {
-               rlen = BLI_snprintf_rlen(str, maxncpy, "%d", iroundf(time_seconds));
+               rlen = BLI_snprintf_rlen(str, maxncpy, "%d", round_fl_to_int(time_seconds));
        }
 
        return rlen;
index 5852ee72b198938485a45867aac27d92578484ae..dba060bfb29e9d6338dd2d91f1d05570e62b6240 100644 (file)
@@ -4458,8 +4458,8 @@ void ANIM_channel_draw_widgets(const bContext *C, bAnimContext *ac, bAnimListEle
                 *       a callback available (e.g. broken F-Curve rename)
                 */
                if (acf->name_prop(ale, &ptr, &prop)) {
-                       const short margin_x = 3 * iroundf(UI_DPI_FAC);
-                       const short channel_height = iroundf(ymaxc - yminc);
+                       const short margin_x = 3 * round_fl_to_int(UI_DPI_FAC);
+                       const short channel_height = round_fl_to_int(ymaxc - yminc);
                        const short width = ac->ar->winx - offset - (margin_x * 2);
                        uiBut *but;
                        
index be01f8cbe692fe7ffc6ac534b635e458aabce397..efcc3e9477c9dac31bfb078aad0818798c98120b 100644 (file)
@@ -149,7 +149,7 @@ int ED_markers_post_apply_transform(ListBase *markers, Scene *scene, int mode, f
                                            (side == 'L' && marker->frame < cfra) ||
                                            (side == 'R' && marker->frame >= cfra))
                                        {
-                                               marker->frame += iroundf(value);
+                                               marker->frame += round_fl_to_int(value);
                                                changed_tot++;
                                        }
                                        break;
@@ -157,7 +157,7 @@ int ED_markers_post_apply_transform(ListBase *markers, Scene *scene, int mode, f
                                case TFM_TIME_SCALE:
                                {
                                        /* rescale the distance between the marker and the current frame */
-                                       marker->frame = cfra + iroundf((float)(marker->frame - cfra) * value);
+                                       marker->frame = cfra + round_fl_to_int((float)(marker->frame - cfra) * value);
                                        changed_tot++;
                                        break;
                                }
@@ -195,7 +195,7 @@ TimeMarker *ED_markers_find_nearest_marker(ListBase *markers, float x)
 int ED_markers_find_nearest_marker_time(ListBase *markers, float x)
 {
        TimeMarker *nearest = ED_markers_find_nearest_marker(markers, x);
-       return (nearest) ? (nearest->frame) : iroundf(x);
+       return (nearest) ? (nearest->frame) : round_fl_to_int(x);
 }
 
 
index 0eb6508f7b2e5eeb78f9701ac59f63b35b7694e5..fcdd45d4ac3937845ca3bb21dd4e96410b8d836c 100644 (file)
@@ -108,7 +108,7 @@ static void change_frame_apply(bContext *C, wmOperator *op)
                SUBFRA = frame - (int)frame;
        }
        else {
-               CFRA = iroundf(frame);
+               CFRA = round_fl_to_int(frame);
                SUBFRA = 0.0f;
        }
        FRAMENUMBER_MIN_CLAMP(CFRA);
@@ -301,8 +301,8 @@ static int previewrange_define_exec(bContext *C, wmOperator *op)
        if (efra < sfra) efra = sfra;
        
        scene->r.flag |= SCER_PRV_RANGE;
-       scene->r.psfra = iroundf(sfra);
-       scene->r.pefra = iroundf(efra);
+       scene->r.psfra = round_fl_to_int(sfra);
+       scene->r.pefra = round_fl_to_int(efra);
        
        /* send notifiers */
        WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
index 84a94ff87dd516f74be9c436018c8d3aa93cd879..f62073d56ef5a48bd8e66ba4dd6e41a7b3b5e44d 100644 (file)
@@ -1481,7 +1481,7 @@ static void pose_propagate_fcurve(wmOperator *op, Object *ob, FCurve *fcu,
                        
                        /* stop on matching marker if there is one */
                        for (ce = modeData.sel_markers.first; ce; ce = ce->next) {
-                               if (ce->cfra == iroundf(bezt->vec[1][0]))
+                               if (ce->cfra == round_fl_to_int(bezt->vec[1][0]))
                                        break;
                        }
                        
index ecab37c729f6af03a78baec959c776b59369c458..c08ed0db40098f7487f00987fcfbcd201a856cce 100644 (file)
@@ -1732,10 +1732,10 @@ void ED_gpencil_draw_view3d(wmWindowManager *wm, Scene *scene, View3D *v3d, AReg
                rctf rectf;
                ED_view3d_calc_camera_border(scene, ar, v3d, rv3d, &rectf, true); /* no shift */
                
-               offsx = iroundf(rectf.xmin);
-               offsy = iroundf(rectf.ymin);
-               winx  = iroundf(rectf.xmax - rectf.xmin);
-               winy  = iroundf(rectf.ymax - rectf.ymin);
+               offsx = round_fl_to_int(rectf.xmin);
+               offsy = round_fl_to_int(rectf.ymin);
+               winx  = round_fl_to_int(rectf.xmax - rectf.xmin);
+               winy  = round_fl_to_int(rectf.ymax - rectf.ymin);
        }
        else {
                offsx = 0;
index 031011ddaee03f8987271a58504955432a9a867c..5349744af6cf57d8108cb16f8ea5a31d4a384a55 100644 (file)
@@ -4295,7 +4295,7 @@ static bool ui_numedit_but_NUM(
 
 
                if (!is_float) {
-                       temp = iroundf(tempf);
+                       temp = round_fl_to_int(tempf);
 
                        temp = ui_numedit_apply_snap(temp, softmin, softmax, snap);
 
@@ -4580,7 +4580,7 @@ static bool ui_numedit_but_SLI(
 
 
        tempf = softmin + f * softrange;
-       temp = iroundf(tempf);
+       temp = round_fl_to_int(tempf);
 
        if (snap) {
                if (tempf == softmin || tempf == softmax) {
index c131bcb8e14cd4ccadfbc02071c403029b021058..d53cdddb26fbe1cd60f1690bc9059eb7a1c2d56f 100644 (file)
@@ -496,14 +496,14 @@ static void ui_draw_panel_dragwidget(const rctf *rect)
        const int col_tint = 84;
 
        const int px = (int)U.pixelsize;
-       const int px_zoom = max_ii(iroundf(BLI_rctf_size_y(rect) / 22.0f), 1);
+       const int px_zoom = max_ii(round_fl_to_int(BLI_rctf_size_y(rect) / 22.0f), 1);
 
-       const int box_margin = max_ii(iroundf((float)(px_zoom * 2.0f)), px);
-       const int box_size = max_ii(iroundf((BLI_rctf_size_y(rect) / 8.0f) - px), px);
+       const int box_margin = max_ii(round_fl_to_int((float)(px_zoom * 2.0f)), px);
+       const int box_size = max_ii(round_fl_to_int((BLI_rctf_size_y(rect) / 8.0f) - px), px);
 
        const int x_min = rect->xmin;
        const int y_min = rect->ymin;
-       const int y_ofs = max_ii(iroundf(BLI_rctf_size_y(rect) / 3.0f), px);
+       const int y_ofs = max_ii(round_fl_to_int(BLI_rctf_size_y(rect) / 3.0f), px);
        const int x_ofs = y_ofs;
        int i_x, i_y;
 
@@ -877,8 +877,8 @@ static bool uiAlignPanelStep(ScrArea *sa, ARegion *ar, const float fac, const bo
        for (a = 0; a < tot; a++, ps++) {
                if ((ps->pa->flag & PNL_SELECT) == 0) {
                        if ((ps->orig->ofsx != ps->pa->ofsx) || (ps->orig->ofsy != ps->pa->ofsy)) {
-                               ps->orig->ofsx = iroundf(fac * (float)ps->pa->ofsx + (1.0f - fac) * (float)ps->orig->ofsx);
-                               ps->orig->ofsy = iroundf(fac * (float)ps->pa->ofsy + (1.0f - fac) * (float)ps->orig->ofsy);
+                               ps->orig->ofsx = round_fl_to_int(fac * (float)ps->pa->ofsx + (1.0f - fac) * (float)ps->orig->ofsx);
+                               ps->orig->ofsy = round_fl_to_int(fac * (float)ps->pa->ofsy + (1.0f - fac) * (float)ps->orig->ofsy);
                                done = true;
                        }
                }
@@ -1615,11 +1615,11 @@ void UI_panel_category_draw_all(ARegion *ar, const char *category_id_active)
        PanelCategoryDyn *pc_dyn;
        const float aspect = ((uiBlock *)ar->uiblocks.first)->aspect;
        const float zoom = 1.0f / aspect;
-       const int px = max_ii(1, iroundf(U.pixelsize));
-       const int category_tabs_width = iroundf(UI_PANEL_CATEGORY_MARGIN_WIDTH * zoom);
+       const int px = max_ii(1, round_fl_to_int(U.pixelsize));
+       const int category_tabs_width = round_fl_to_int(UI_PANEL_CATEGORY_MARGIN_WIDTH * zoom);
        const float dpi_fac = UI_DPI_FAC;
-       const int tab_v_pad_text = iroundf((2 + ((px * 3) * dpi_fac)) * zoom);  /* pading of tabs around text */
-       const int tab_v_pad = iroundf((4 + (2 * px * dpi_fac)) * zoom);  /* padding between tabs */
+       const int tab_v_pad_text = round_fl_to_int((2 + ((px * 3) * dpi_fac)) * zoom);  /* pading of tabs around text */
+       const int tab_v_pad = round_fl_to_int((4 + (2 * px * dpi_fac)) * zoom);  /* padding between tabs */
        const float tab_curve_radius = ((px * 3) * dpi_fac) * zoom;
        const int roundboxtype = UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT;
        bool is_alpha;
index 131584dd405d3f59697e45bfdaf402dcf2cb3804..3cc16f377367b9c45d48c0196c2702a213a52b9d 100644 (file)
@@ -2841,7 +2841,7 @@ static void uilist_resize_update_cb(bContext *C, void *arg1, void *UNUSED(arg2))
        uiListDyn *dyn_data = ui_list->dyn_data;
 
        /* This way we get diff in number of additional items to show (positive) or hide (negative). */
-       const int diff = iroundf((float)(dyn_data->resize - dyn_data->resize_prev) / (float)UI_UNIT_Y);
+       const int diff = round_fl_to_int((float)(dyn_data->resize - dyn_data->resize_prev) / (float)UI_UNIT_Y);
 
        if (diff != 0) {
                ui_list->list_grip += diff;
index f8db35e2311f7dc159d412619422ef3aa40ec741..a9920389980e9f19c5694ceee87cd75045813a5e 100644 (file)
@@ -1522,7 +1522,7 @@ static int actkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
        /* set the new current frame value, based on the average time */
        if (ked.i1) {
                Scene *scene = ac.scene;
-               CFRA = iroundf(ked.f1 / ked.i1);
+               CFRA = round_fl_to_int(ked.f1 / ked.i1);
                SUBFRA = 0.f;
        }
        
index 9430ee626ba2305b029dead59be94627ffced5fc..970eae0ad1471626d1e70c34a44eec1d82d312b1 100644 (file)
@@ -941,7 +941,7 @@ static int frame_from_event(bContext *C, const wmEvent *event)
 
                UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &viewx, &viewy);
 
-               framenr = iroundf(viewx);
+               framenr = round_fl_to_int(viewx);
        }
 
        return framenr;
index f38d36853d72a6968f6feffa96157df5f6169cb6..861a38da2c7294f845495e68d6b281e9ddb45f55 100644 (file)
@@ -195,8 +195,8 @@ static int graphkeys_previewrange_exec(bContext *C, wmOperator *UNUSED(op))
        /* set the range directly */
        get_graph_keyframe_extents(&ac, &min, &max, NULL, NULL, false, false);
        scene->r.flag |= SCER_PRV_RANGE;
-       scene->r.psfra = iroundf(min);
-       scene->r.pefra = iroundf(max);
+       scene->r.psfra = round_fl_to_int(min);
+       scene->r.pefra = round_fl_to_int(max);
        
        /* set notifier that things have changed */
        // XXX err... there's nothing for frame ranges yet, but this should do fine too
@@ -2036,7 +2036,7 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
                }
                else {
                        /* Animation Mode - Affects current frame (int) */
-                       CFRA = iroundf(ked.f1 / ked.i1);
+                       CFRA = round_fl_to_int(ked.f1 / ked.i1);
                        SUBFRA = 0.f;
                        sipo->cursorVal = ked.f2 / (float)ked.i1;
                }
index 75f0da83e77106b4fdf51a8113a1a9bdad6fc692..5c670a216d8cd52ca96e4740fed38e5b2876fe05 100644 (file)
@@ -94,7 +94,7 @@ static void graphview_cursor_apply(bContext *C, wmOperator *op)
                 * NOTE: sync this part of the code with ANIM_OT_change_frame
                 */
                /* 1) frame is rounded to the nearest int, since frames are ints */
-               CFRA = iroundf(frame);
+               CFRA = round_fl_to_int(frame);
                
                if (scene->r.flag & SCER_LOCK_FRAME_SELECTION) {
                        /* Clip to preview range
index eb01b1856e47e988123c206f0515ee604c343c6f..55fcf9213d67b1f4de899cbdba0fef6f946438d9 100644 (file)
@@ -3526,7 +3526,7 @@ static int frame_from_event(bContext *C, const wmEvent *event)
 
                UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &viewx, &viewy);
 
-               framenr = iroundf(viewx);
+               framenr = round_fl_to_int(viewx);
        }
 
        return framenr;
index 1f298373a802f45c1208c76f18d0085114d0ea1c..f7f7c82171d422a9a2b77d0f38c447a6e68d2fdc 100644 (file)
@@ -365,8 +365,8 @@ static int nlaedit_previewrange_exec(bContext *C, wmOperator *UNUSED(op))
        /* set the range directly */
        get_nlastrip_extents(&ac, &min, &max, true);
        scene->r.flag |= SCER_PRV_RANGE;
-       scene->r.psfra = iroundf(min);
-       scene->r.pefra = iroundf(max);
+       scene->r.psfra = round_fl_to_int(min);
+       scene->r.pefra = round_fl_to_int(max);
        
        /* set notifier that things have changed */
        // XXX err... there's nothing for frame ranges yet, but this should do fine too
index 213e326b1a6cc33f35ac6c4746bc356f63aae89b..d71193026112778f4476f2ba51e86c9b50b3e539 100644 (file)
@@ -1091,7 +1091,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
                //      BLI_snprintf(showname, sizeof(showname), "[%s]", showname); /* XXX - don't print into self! */
 
                uiDefBut(node->block, UI_BTYPE_LABEL, 0, showname,
-                        iroundf(rct->xmin + NODE_MARGIN_X), iroundf(centy - NODE_DY * 0.5f),
+                        round_fl_to_int(rct->xmin + NODE_MARGIN_X), round_fl_to_int(centy - NODE_DY * 0.5f),
                         (short)(BLI_rctf_size_x(rct) - 18.0f - 12.0f), (short)NODE_DY,
                         NULL, 0, 0, 0, 0, "");
        }
index ca49cde4b7a7e93211bbbbea9530993c9ebcb81d..a4df4b02120438b096f1dfb7011f9e289d55111e 100644 (file)
@@ -2801,7 +2801,7 @@ void flushTransSeq(TransInfo *t)
                tdsq = (TransDataSeq *)td->extra;
                seq = tdsq->seq;
                old_start = seq->start;
-               new_frame = iroundf(td2d->loc[0]);
+               new_frame = round_fl_to_int(td2d->loc[0]);
 
                switch (tdsq->sel_flag) {
                        case SELECT:
@@ -2813,7 +2813,7 @@ void flushTransSeq(TransInfo *t)
                                        seq->start = new_frame - tdsq->start_offset;
 #endif
                                if (seq->depth == 0) {
-                                       seq->machine = iroundf(td2d->loc[1]);
+                                       seq->machine = round_fl_to_int(td2d->loc[1]);
                                        CLAMP(seq->machine, 1, MAXSEQ);
                                }
                                break;
@@ -3761,7 +3761,7 @@ void flushTransIntFrameActionData(TransInfo *t)
 
        /* flush data! */
        for (i = 0; i < t->total; i++, tfd++) {
-               *(tfd->sdata) = iroundf(tfd->val);
+               *(tfd->sdata) = round_fl_to_int(tfd->val);
        }
 }
 
index 4e8a9f4dd67135f8408599d87a2c24927599e6d8..4a7c2decf95ba564d663f647bc92782611c51288 100644 (file)
@@ -1467,7 +1467,7 @@ void snapSequenceBounds(TransInfo *t, const int mval[2])
 
        /* convert to frame range */
        UI_view2d_region_to_view(&t->ar->v2d, mval[0], mval[1], &xmouse, &ymouse);
-       mframe = iroundf(xmouse);
+       mframe = round_fl_to_int(xmouse);
        /* now find the closest sequence */
        frame = BKE_sequencer_find_next_prev_edit(t->scene, mframe, SEQ_SIDE_BOTH, true, false, true);
 
index c263c4810e442be40f273ddf8f3490d2421111f8..10861f5b02bdfd6166ecf33068edad967ca4fce1 100644 (file)
@@ -36,7 +36,7 @@ void MOD_meshcache_calc_range(const float frame, const char interp,
                               int r_index_range[2], float *r_factor)
 {
        if (interp == MOD_MESHCACHE_INTERP_NONE) {
-               r_index_range[0] = r_index_range[1] = max_ii(0, min_ii(frame_tot - 1, iroundf(frame)));
+               r_index_range[0] = r_index_range[1] = max_ii(0, min_ii(frame_tot - 1, round_fl_to_int(frame)));
                *r_factor = 1.0f; /* dummy */
        }
        else {
index 04010522c120573188a3a39407b1dae112c97b65..ae02cf56b8832f33046a7756a0622e6243de7576 100644 (file)
@@ -1172,7 +1172,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
                        a = max_ff(a, 1.0f);
                        b = max_ff(b, 1.0f);
                        fProbes = 2.f*(a / b) - 1.f;
-                       AFD.iProbes = iroundf(fProbes);
+                       AFD.iProbes = round_fl_to_int(fProbes);
                        AFD.iProbes = MIN2(AFD.iProbes, tex->afmax);
                        if (AFD.iProbes < fProbes)
                                b = 2.f*a / (float)(AFD.iProbes + 1);
@@ -1277,7 +1277,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
                        b = max_ff(b, 1.0f);
                        fProbes = 2.f*(a / b) - 1.f;
                        /* no limit to number of Probes here */
-                       AFD.iProbes = iroundf(fProbes);
+                       AFD.iProbes = round_fl_to_int(fProbes);
                        if (AFD.iProbes < fProbes) b = 2.f*a / (float)(AFD.iProbes + 1);
                        AFD.majrad = a/ff;
                        AFD.minrad = b/ff;
index 46203333eb5b3671e40c1dd7c62365785a149165..e04571fe572db85a7761abf9c28ae44e5435b434 100644 (file)
@@ -137,7 +137,7 @@ int wm_gesture_evaluate(wmGesture *gesture)
                int dx = BLI_rcti_size_x(rect);
                int dy = BLI_rcti_size_y(rect);
                if (abs(dx) + abs(dy) > U.tweak_threshold) {
-                       int theta = iroundf(4.0f * atan2f((float)dy, (float)dx) / (float)M_PI);
+                       int theta = round_fl_to_int(4.0f * atan2f((float)dy, (float)dx) / (float)M_PI);
                        int val = EVT_GESTURE_W;
 
                        if (theta == 0) val = EVT_GESTURE_E;