Viewing file: EyeFill.php (1.69 KB) -rwxr-x--- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types = 1);
namespace BaconQrCode\Renderer\RendererStyle;
use BaconQrCode\Exception\RuntimeException; use BaconQrCode\Renderer\Color\ColorInterface;
final class EyeFill { /** * @var ColorInterface|null */ private $externalColor;
/** * @var ColorInterface|null */ private $internalColor;
/** * @var self|null */ private static $inherit;
public function __construct(?ColorInterface $externalColor, ?ColorInterface $internalColor) { $this->externalColor = $externalColor; $this->internalColor = $internalColor; }
public static function uniform(ColorInterface $color) : self { return new self($color, $color); }
public static function inherit() : self { return self::$inherit ?: self::$inherit = new self(null, null); }
public function inheritsBothColors() : bool { return null === $this->externalColor && null === $this->internalColor; }
public function inheritsExternalColor() : bool { return null === $this->externalColor; }
public function inheritsInternalColor() : bool { return null === $this->internalColor; }
public function getExternalColor() : ColorInterface { if (null === $this->externalColor) { throw new RuntimeException('External eye color inherits foreground color'); }
return $this->externalColor; }
public function getInternalColor() : ColorInterface { if (null === $this->internalColor) { throw new RuntimeException('Internal eye color inherits foreground color'); }
return $this->internalColor; } }
|