diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_meshcache_util.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_meshcache_util.c | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/source/blender/modifiers/intern/MOD_meshcache_util.c b/source/blender/modifiers/intern/MOD_meshcache_util.c index 2db46af1188..0027ce5f7e2 100644 --- a/source/blender/modifiers/intern/MOD_meshcache_util.c +++ b/source/blender/modifiers/intern/MOD_meshcache_util.c @@ -26,42 +26,39 @@ #include "MOD_meshcache_util.h" -void MOD_meshcache_calc_range( - const float frame, const char interp, - const int frame_tot, - int r_index_range[2], float *r_factor) +void MOD_meshcache_calc_range(const float frame, + const char interp, + const int frame_tot, + 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, round_fl_to_int(frame))); - *r_factor = 1.0f; /* dummy */ - } - else { - const float tframe = floorf(frame); - const float range = frame - tframe; - r_index_range[0] = (int)tframe; - if (range <= FRAME_SNAP_EPS) { - /* we're close enough not to need blending */ - r_index_range[1] = r_index_range[0]; - *r_factor = 1.0f; /* dummy */ - } - else { - /* blend between 2 frames */ - r_index_range[1] = r_index_range[0] + 1; - *r_factor = range; - } + if (interp == MOD_MESHCACHE_INTERP_NONE) { + 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 { + const float tframe = floorf(frame); + const float range = frame - tframe; + r_index_range[0] = (int)tframe; + if (range <= FRAME_SNAP_EPS) { + /* we're close enough not to need blending */ + r_index_range[1] = r_index_range[0]; + *r_factor = 1.0f; /* dummy */ + } + else { + /* blend between 2 frames */ + r_index_range[1] = r_index_range[0] + 1; + *r_factor = range; + } - /* clamp */ - if ((r_index_range[0] >= frame_tot) || - (r_index_range[1] >= frame_tot)) - { - r_index_range[0] = r_index_range[1] = frame_tot - 1; - *r_factor = 1.0f; /* dummy */ - } - else if ((r_index_range[0] < 0) || - (r_index_range[1] < 0)) - { - r_index_range[0] = r_index_range[1] = 0; - *r_factor = 1.0f; /* dummy */ - } - } + /* clamp */ + if ((r_index_range[0] >= frame_tot) || (r_index_range[1] >= frame_tot)) { + r_index_range[0] = r_index_range[1] = frame_tot - 1; + *r_factor = 1.0f; /* dummy */ + } + else if ((r_index_range[0] < 0) || (r_index_range[1] < 0)) { + r_index_range[0] = r_index_range[1] = 0; + *r_factor = 1.0f; /* dummy */ + } + } } |