Eigen::MatrixXi IsometricGridDot::Rotate60Right()

in IsometricPatternMatcher/IsometricPattern.cpp [50:62]


Eigen::MatrixXi IsometricGridDot::Rotate60Right(
    Eigen::MatrixXi& inputPatternGrid) const {
  Eigen::MatrixXi outputPatternGrid = inputPatternGrid;
  const size_t numLayer = (inputPatternGrid.rows() - 1) / 2;
  for (int r = 0; r < inputPatternGrid.rows(); ++r) {
    for (int q = 0; q < inputPatternGrid.cols(); ++q) {
      if (r + q >= numLayer && r + q <= 3 * numLayer)
        outputPatternGrid(r, q) =
            inputPatternGrid(2 * numLayer - q, r + q - numLayer);
    }  // upper and lower triangles of the matrix should be Null, incidated by 2
  }
  return outputPatternGrid;
}