std::vector HexGridFitting::imageNeighbourMatrix()

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;
}