45 if (lookupTable_.empty())
return 0;
48 const floatT tableEndPosition = tableStartPosition_ + tablePositionSpan_;
49 const floatT clampedPosition = std::clamp(position, tableStartPosition_, tableEndPosition);
50 const floatT stepIndex = tablePositionSpan_ > 0 ? (clampedPosition - tableStartPosition_) /
51 tablePositionSpan_ * lookupTableSteps
55 int lowerStep =
static_cast<int>(stepIndex);
56 if (lowerStep >= lookupTableSteps) lowerStep = lookupTableSteps - 1;
57 const floatT blend = stepIndex -
static_cast<floatT
>(lowerStep);
58 return lookupTable_[lowerStep] +
59 (lookupTable_[lowerStep + 1] - lookupTable_[lowerStep]) * blend;