public function buildFunctionPattern() : BitMatrix
    {
        $dimension = $this->getDimensionForVersion();
        $bitMatrix = new BitMatrix($dimension);

        // Top left finder pattern + separator + format
        $bitMatrix->setRegion(0, 0, 9, 9);
        // Top right finder pattern + separator + format
        $bitMatrix->setRegion($dimension - 8, 0, 8, 9);
        // Bottom left finder pattern + separator + format
        $bitMatrix->setRegion(0, $dimension - 8, 9, 8);

        // Alignment patterns
        $max = count($this->alignmentPatternCenters);

        for ($x = 0; $x < $max; ++$x) {
            $i = $this->alignmentPatternCenters[$x] - 2;

            for ($y = 0; $y < $max; ++$y) {
                if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) {
                    // No alignment patterns near the three finder paterns
                    continue;
                }

                $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5);
            }
        }

        // Vertical timing pattern
        $bitMatrix->setRegion(6, 9, 1, $dimension - 17);
        // Horizontal timing pattern
        $bitMatrix->setRegion(9, 6, $dimension - 17, 1);

        if ($this->versionNumber > 6) {
            // Version info, top right
            $bitMatrix->setRegion($dimension - 11, 0, 3, 6);
            // Version info, bottom left
            $bitMatrix->setRegion(0, $dimension - 11, 6, 3);
        }

        return $bitMatrix;
    }
public function buildFunctionPattern() : BitMatrix
    {
        $dimension = $this->getDimensionForVersion();
        $bitMatrix = new BitMatrix($dimension);

        // Top left finder pattern + separator + format
        $bitMatrix->setRegion(0, 0, 9, 9);
        // Top right finder pattern + separator + format
        $bitMatrix->setRegion($dimension - 8, 0, 8, 9);
        // Bottom left finder pattern + separator + format
        $bitMatrix->setRegion(0, $dimension - 8, 9, 8);

        // Alignment patterns
        $max = count($this->alignmentPatternCenters);

        for ($x = 0; $x < $max; ++$x) {
            $i = $this->alignmentPatternCenters[$x] - 2;

            for ($y = 0; $y < $max; ++$y) {
                if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) {
                    // No alignment patterns near the three finder paterns
                    continue;
                }

                $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5);
            }
        }

        // Vertical timing pattern
        $bitMatrix->setRegion(6, 9, 1, $dimension - 17);
        // Horizontal timing pattern
        $bitMatrix->setRegion(9, 6, $dimension - 17, 1);

        if ($this->versionNumber > 6) {
            // Version info, top right
            $bitMatrix->setRegion($dimension - 11, 0, 3, 6);
            // Version info, bottom left
            $bitMatrix->setRegion(0, $dimension - 11, 6, 3);
        }

        return $bitMatrix;
    }
public function buildFunctionPattern ( ) : BitMatrix { $ dimension = $ this -> getDimensionForVersion ( ) ; $ bitMatrix = new BitMatrix ( $ dimension ) ; // Top left finder pattern + separator + format $ bitMatrix -> setRegion ( 0 , 0 , 9 , 9 ) ; // Top right finder pattern + separator + format $ bitMatrix -> setRegion ( $ dimension - 8 , 0 , 8 , 9 ) ; // Bottom left finder pattern + separator + format $ bitMatrix -> setRegion ( 0 , $ dimension - 8 , 9 , 8 ) ; // Alignment patterns $ max = count ( $ this -> alignmentPatternCenters ) ; for ( $ x = 0 ; $ x < $ max ; ++ $ x ) { $ i = $ this -> alignmentPatternCenters [ $ x ] - 2 ; for ( $ y = 0 ; $ y < $ max ; ++ $ y ) { if ( ( $ x === 0 && ( $ y === 0 || $ y === $ max - 1 ) ) || ( $ x === $ max - 1 && $ y === 0 ) ) { // No alignment patterns near the three finder paterns continue ; } $ bitMatrix -> setRegion ( $ this -> alignmentPatternCenters [ $ y ] - 2 , $ i , 5 , 5 ) ; } } // Vertical timing pattern $ bitMatrix -> setRegion ( 6 , 9 , 1 , $ dimension - 17 ) ; // Horizontal timing pattern $ bitMatrix -> setRegion ( 9 , 6 , $ dimension - 17 , 1 ) ; if ( $ this -> versionNumber > 6 ) { // Version info, top right $ bitMatrix -> setRegion ( $ dimension - 11 , 0 , 3 , 6 ) ; // Version info, bottom left $ bitMatrix -> setRegion ( 0 , $ dimension - 11 , 6 , 3 ) ; } return $ bitMatrix ; }
Builds the function pattern for the current version.
Builds the function pattern for the current version .