Файл: vendor/intervention/image/src/Geometry/Factories/BezierFactory.php
Строк: 89
<?php
declare(strict_types=1);
namespace InterventionImageGeometryFactories;
use InterventionImageExceptionsInvalidArgumentException;
use InterventionImageGeometryPoint;
use InterventionImageGeometryBezier;
use InterventionImageInterfacesColorInterface;
use InterventionImageInterfacesDrawableFactoryInterface;
use InterventionImageInterfacesDrawableInterface;
class BezierFactory implements DrawableFactoryInterface
{
protected Bezier $bezier;
/**
* Create new factory instance.
*/
public function __construct(null|callable|Bezier $bezier = null)
{
$this->bezier = $bezier instanceof Bezier ? clone $bezier : new Bezier([]);
if (is_callable($bezier)) {
$bezier($this);
}
}
/**
* {@inheritdoc}
*
* @see DrawableFactoryInterface::build()
*/
public static function build(null|callable|DrawableInterface $drawable = null): Bezier
{
return (new self($drawable))->drawable();
}
/**
* {@inheritdoc}
*
* @see DrawableFactoryInterface::drawable()
*/
public function drawable(): Bezier
{
return $this->bezier;
}
/**
* Add a point to the bezier to be produced.
*/
public function point(int $x, int $y): self
{
$this->bezier->addPoint(new Point($x, $y));
return $this;
}
/**
* Set the background color of the bezier to be produced.
*/
public function background(string|ColorInterface $color): self
{
$this->bezier->setBackgroundColor($color);
return $this;
}
/**
* Set the border color & border size of the bezier to be produced.
*
* @throws InvalidArgumentException
*/
public function border(string|ColorInterface $color, int $size = 1): self
{
$this->bezier->setBorder($color, $size);
return $this;
}
}