64 namespace bicubic_conv {
71 (Eigen::Matrix4d() << 0.0, 2.0, 0.0, 0.0,
74 -1.0, 3.0, -3.0, 1.0).finished() };
126 double convolve1D(
double t,
const Eigen::Vector4d &functionValues);
139 double *interpolatedValue);
160 (Eigen::Matrix4d() << 1.0, 0.0, 0.0, 0.0,
162 -3.0, 3.0, -2.0, -1.0,
163 2.0, -2.0, 1.0, 1.0).finished() };
172 double topLeft_ = 0.0;
173 double topRight_ = 0.0;
174 double bottomLeft_ = 0.0;
175 double bottomRight_ = 0.0;
213 const Position &queriedPosition,
double *interpolatedValue);
bool getFirstOrderDerivatives(const Matrix &layerData, const IndicesMatrix &indices, Dim2D dim, double resolution, DataMatrix *derivatives)
Eigen::Matrix4d FunctionValueMatrix
void bindIndicesToRange(const GridMap &gridMap, IndicesMatrix *indices)
bool getIndicesOfMiddleKnot(const GridMap &gridMap, const Position &queriedPosition, Index *index)
bool computeNormalizedCoordinates(const GridMap &gridMap, const Index &originIndex, const Position &queriedPosition, Position *normalizedCoordinates)
static const Eigen::Matrix4d bicubicInterpolationMatrix
double convolve1D(double t, const Eigen::Vector4d &functionValues)
static const Eigen::Matrix4d cubicInterpolationConvolutionMatrix
double firstOrderDerivativeAt(const Matrix &layerData, const Index &index, Dim2D dim, double resolution)
double mixedSecondOrderDerivativeAt(const Matrix &layerData, const Index &index, double resolution)
bool getNormalizedCoordinates(const GridMap &gridMap, const Position &queriedPosition, Position *position)
bool getFunctionValues(const Matrix &layerData, const IndicesMatrix &indices, DataMatrix *data)
bool getMixedSecondOrderDerivatives(const Matrix &layerData, const IndicesMatrix &indices, double resolution, DataMatrix *derivatives)
double evaluatePolynomial(const FunctionValueMatrix &functionValues, double tx, double ty)
double getLayerValue(const Matrix &layerMat, int rowReq, int colReq)
unsigned int bindIndexToRange(int idReq, unsigned int nElem)
bool evaluateBicubicConvolutionInterpolation(const GridMap &gridMap, const std::string &layer, const Position &queriedPosition, double *interpolatedValue)
bool getClosestPointIndices(const GridMap &gridMap, const Position &queriedPosition, Index *index)
bool getUnitSquareCornerIndices(const GridMap &gridMap, const Position &queriedPosition, IndicesMatrix *indicesMatrix)
bool evaluateBicubicInterpolation(const GridMap &gridMap, const std::string &layer, const Position &queriedPosition, double *interpolatedValue)
bool assembleFunctionValueMatrix(const GridMap &gridMap, const std::string &layer, const Position &queriedPosition, FunctionValueMatrix *data)