| 369 | |
| 370 | |
| 371 | void qrcodegen::QrCode::applyMask(int mask) { |
| 372 | if (mask < 0 || mask > 7) |
| 373 | throw "Mask value out of range"; |
| 374 | for (int y = 0; y < size; y++) { |
| 375 | for (int x = 0; x < size; x++) { |
| 376 | bool invert; |
| 377 | switch (mask) { |
| 378 | case 0: invert = (x + y) % 2 == 0; break; |
| 379 | case 1: invert = y % 2 == 0; break; |
| 380 | case 2: invert = x % 3 == 0; break; |
| 381 | case 3: invert = (x + y) % 3 == 0; break; |
| 382 | case 4: invert = (x / 3 + y / 2) % 2 == 0; break; |
| 383 | case 5: invert = x * y % 2 + x * y % 3 == 0; break; |
| 384 | case 6: invert = (x * y % 2 + x * y % 3) % 2 == 0; break; |
| 385 | case 7: invert = ((x + y) % 2 + x * y % 3) % 2 == 0; break; |
| 386 | default: throw "Assertion error"; |
| 387 | } |
| 388 | modules.at(y).at(x) = modules.at(y).at(x) ^ (invert & !isFunction.at(y).at(x)); |
| 389 | } |
| 390 | } |
| 391 | } |
| 392 | |
| 393 | |
| 394 | int qrcodegen::QrCode::handleConstructorMasking(int mask) { |
nothing calls this directly
no outgoing calls
no test coverage detected