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