50            std::vector<long long>& times, 
 
   51            std::vector<Real>& vals, 
 
   52            long long fbx_time) 
mutable -> 
Real 
   55            int size = times.size();
 
   56            if (fbx_time < 0.f) 
return init;
 
   57            if (times[size - 1] == 0) 
return vals[size - 1];
 
   59            if (fbx_time >= times[size - 1]) {
 
   60                fbx_time %= times[size - 1];
 
   67            while(cur + 1 < size && times[cur + 1] <= fbx_time) 
 
   72            long long left_time, right_time;
 
   73            left_time = (cur == 
BEFORE) ? 0 : times[cur];
 
   74            right_time = times[cur + 1];
 
   75            Real left_val, right_val;
 
   76            left_val = (cur == 
BEFORE) ? init : vals[cur];
 
   77            right_val = vals[cur + 1];
 
   80            Real t = 
Real(
double(fbx_time - left_time) / 
double(right_time - left_time));
 
   81            return left_val * (1 - t) + right_val * t;
 
 
   95            std::vector<long long>& times, 
 
   96            std::vector<Real>& vals, 
 
   98            int& cur) 
mutable -> 
Real 
  100            int size = times.size();
 
  101            if (fbx_time < 0.f) 
return init;
 
  103            if (fbx_time >= times[size - 1]) 
return vals[size - 1];
 
  105            while(cur + 1 < size && times[cur + 1] <= fbx_time) 
 
  110            long long left_time, right_time;
 
  111            left_time = (cur == 
BEFORE) ? 0 : times[cur];
 
  112            right_time = times[cur + 1];
 
  113            Real left_val, right_val;
 
  114            left_val = (cur == 
BEFORE) ? init : vals[cur];
 
  115            right_val = vals[cur + 1];
 
  118            Real t = 
Real(
double(fbx_time - left_time) / 
double(right_time - left_time));
 
  119            return left_val * (1 - t) + right_val * t;
 
 
  134            std::vector<long long>& times, 
 
  135            std::vector<Real>& vals, 
 
  136            long long fbx_time) 
mutable -> 
Real 
  139            int size = times.size();
 
  140            if (fbx_time < 0.f) 
return init;
 
  142            if (fbx_time >= times[size - 1]) 
 
  143                return vals[size - 1];
 
  145            while(cur + 1 < size && times[cur + 1] <= fbx_time) 
 
  150            long long left_time, right_time;
 
  151            left_time = (cur == 
BEFORE) ? 0 : times[cur];
 
  152            right_time = times[cur + 1];
 
  153            Real left_val, right_val;
 
  154            left_val = (cur == 
BEFORE) ? init : vals[cur];
 
  155            right_val = vals[cur + 1];
 
  158            Real t = 
Real(
double(fbx_time - left_time) / 
double(right_time - left_time));
 
  159            return left_val * (1 - t) + right_val * t;