in IsometricPatternMatcher/HexGridFitting.cpp [136:154]
std::vector<Eigen::Matrix2Xd> HexGridFitting::imageNeighbourMatrix(
int numberNeighours) {
std::vector<Eigen::Matrix2Xd> result;
for (int j = 0; j < numberNeighours; ++j) {
result.push_back(Eigen::Matrix2Xd::Zero(2, imageDots_.cols()));
}
for (int idxDot = 0; idxDot < imageDots_.cols(); ++idxDot) {
std::vector<double> distance;
std::vector<int> indx;
for (int j = 0; j < imageDots_.cols(); ++j)
distance.push_back((imageDots_.col(idxDot) - imageDots_.col(j)).norm());
getSortIndx(distance, indx);
for (int j = 0; j < numberNeighours; ++j) {
result.at(j).col(idxDot) =
imageDots_.col(indx.at(j + 1)); // the first one is itself
}
} // end for
return result;
}