Files
Chamilo/vendor/imagine/imagine/lib/Imagine/Image/Point.php
2025-04-10 12:24:57 +02:00

89 lines
1.6 KiB
PHP

<?php
/*
* This file is part of the Imagine package.
*
* (c) Bulat Shakirzyanov <mallluhuct@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Imagine\Image;
use Imagine\Exception\InvalidArgumentException;
/**
* The point class
*/
final class Point implements PointInterface
{
/**
* @var integer
*/
private $x;
/**
* @var integer
*/
private $y;
/**
* Constructs a point of coordinates
*
* @param integer $x
* @param integer $y
*
* @throws InvalidArgumentException
*/
public function __construct($x, $y)
{
if ($x < 0 || $y < 0) {
throw new InvalidArgumentException(sprintf('A coordinate cannot be positioned outside of a bounding box (x: %s, y: %s given)', $x, $y));
}
$this->x = $x;
$this->y = $y;
}
/**
* {@inheritdoc}
*/
public function getX()
{
return $this->x;
}
/**
* {@inheritdoc}
*/
public function getY()
{
return $this->y;
}
/**
* {@inheritdoc}
*/
public function in(BoxInterface $box)
{
return $this->x < $box->getWidth() && $this->y < $box->getHeight();
}
/**
* {@inheritdoc}
*/
public function move($amount)
{
return new Point($this->x + $amount, $this->y + $amount);
}
/**
* {@inheritdoc}
*/
public function __toString()
{
return sprintf('(%d, %d)', $this->x, $this->y);
}
}