detect method
Implementation
UAztecDetectorResult? detect() {
final Offset? center = _getMatrixCenter();
if (center == null) return null;
final List<Offset>? bullsEyeCorners = _getBullsEyeCorners(center);
if (bullsEyeCorners == null) return null;
if (!_extractParameters(bullsEyeCorners)) return null;
final int dimension = _getDimension();
final int lowOffset = (_nbCenterLayers * 2) - (_compact ? 5 : 7);
final List<Offset> corners = _expandSquare(bullsEyeCorners, 2 * _nbCenterLayers, dimension);
final UBitMatrix? bits = _sampleGrid(corners[_shift % 4], corners[(_shift + 1) % 4], corners[(_shift + 2) % 4], corners[(_shift + 3) % 4], dimension);
if (bits == null || lowOffset < -1000) return null;
return UAztecDetectorResult(bits, corners, _compact, _nbDataBlocks, _nbLayers);
}