MCPcopy Create free account
hub / github.com/TactilityProject/Tactility / applyMask

Method applyMask

Libraries/QRCode/tests/QrCode.cpp:371–391  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

369
370
371void 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
394int qrcodegen::QrCode::handleConstructorMasking(int mask) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected