Commit fa441e6b authored by Dmitry Pavlov's avatar Dmitry Pavlov Committed by Timo Koch
Browse files

Tabulated2DFunction::get(): out-of-bounds fix, also preferring interpolation to extrapolation

parent cd899248
......@@ -113,7 +113,7 @@ public:
*/
Scalar xToI(Scalar x) const
{
return (x - xMin_)/(xMax_ - xMin_)*m_;
return (x - xMin_)/(xMax_ - xMin_)*(m_ - 1);
}
......@@ -127,7 +127,7 @@ public:
*/
Scalar yToJ(Scalar y) const
{
return (y - yMin_)/(yMax_ - yMin_)*n_;
return (y - yMin_)/(yMax_ - yMin_)*(n_ - 1);
}
......@@ -165,10 +165,9 @@ public:
Scalar alpha = xToI(x);
Scalar beta = yToJ(y);
using std::max;
using std::min;
int i = max(0, min(m_, static_cast<int>(alpha)));
int j = max(0, min(n_, static_cast<int>(beta)));
using std::clamp;
int i = clamp(static_cast<int>(alpha), 0, m_ - 2);
int j = clamp(static_cast<int>(beta), 0, n_ - 2);
alpha -= i;
beta -= j;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment