| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | <?phpdeclare(strict_types = 1);namespace BaconQrCode\Renderer\Eye;use BaconQrCode\Encoder\ByteMatrix;use BaconQrCode\Renderer\Module\ModuleInterface;use BaconQrCode\Renderer\Path\Path;/** * Renders an eye based on a module renderer. */final class ModuleEye implements EyeInterface{    /**     * @var ModuleInterface     */    private $module;    public function __construct(ModuleInterface $module)    {        $this->module = $module;    }    public function getExternalPath() : Path    {        $matrix = new ByteMatrix(7, 7);        for ($x = 0; $x < 7; ++$x) {            $matrix->set($x, 0, 1);            $matrix->set($x, 6, 1);        }        for ($y = 1; $y < 6; ++$y) {            $matrix->set(0, $y, 1);            $matrix->set(6, $y, 1);        }        return $this->module->createPath($matrix)->translate(-3.5, -3.5);    }    public function getInternalPath() : Path    {        $matrix = new ByteMatrix(3, 3);        for ($x = 0; $x < 3; ++$x) {            for ($y = 0; $y < 3; ++$y) {                $matrix->set($x, $y, 1);            }        }        return $this->module->createPath($matrix)->translate(-1.5, -1.5);    }}
 |