Вход Регистрация
Файл: vendor/intervention/image/src/Geometry/Line.php
Строк: 165
<?php

declare(strict_types=1);

namespace 
InterventionImageGeometry;

use 
InterventionImageGeometryTraitsHasBackgroundColor;
use 
InterventionImageGeometryTraitsHasBorder;
use 
InterventionImageInterfacesDrawableInterface;
use 
InterventionImageInterfacesPointInterface;

class 
Line implements DrawableInterface
{
    use 
HasBorder;
    use 
HasBackgroundColor;

    
/**
     * Create new line instance
     *
     * @param PointInterface $start
     * @param PointInterface $end
     * @param int $width
     * @return void
     */
    
public function __construct(
        protected 
PointInterface $start,
        protected 
PointInterface $end,
        protected 
int $width 1
    
) {
    }

    
/**
     * {@inheritdoc}
     *
     * @see DrawableInterface::position()
     */
    
public function position(): PointInterface
    
{
        return 
$this->start;
    }

    
/**
     * {@inheritdoc}
     *
     * @see DrawableInterface::setPosition()
     */
    
public function setPosition(PointInterface $position): DrawableInterface
    
{
        
$this->start $position;

        return 
$this;
    }

    
/**
     * Return line width
     *
     * @return int
     */
    
public function width(): int
    
{
        return 
$this->width;
    }

    
/**
     * Set line width
     *
     * @param int $width
     * @return Line
     */
    
public function setWidth(int $width): self
    
{
        
$this->width $width;

        return 
$this;
    }

    
/**
     * Get starting point of line
     *
     * @return PointInterface
     */
    
public function start(): PointInterface
    
{
        return 
$this->start;
    }

    
/**
     * get end point of line
     *
     * @return PointInterface
     */
    
public function end(): PointInterface
    
{
        return 
$this->end;
    }

    
/**
     * Set starting point of line
     *
     * @param PointInterface $start
     * @return Line
     */
    
public function setStart(PointInterface $start): self
    
{
        
$this->start $start;

        return 
$this;
    }

    
/**
     * Set starting point of line by coordinates
     *
     * @param int $x
     * @param int $y
     * @return Line
     */
    
public function from(int $xint $y): self
    
{
        
$this->start()->setX($x);
        
$this->start()->setY($y);

        return 
$this;
    }

    
/**
     * Set end point of line by coordinates
     *
     * @param int $x
     * @param int $y
     * @return Line
     */
    
public function to(int $xint $y): self
    
{
        
$this->end()->setX($x);
        
$this->end()->setY($y);

        return 
$this;
    }

    
/**
     * Set end point of line
     *
     * @param PointInterface $end
     * @return Line
     */
    
public function setEnd(PointInterface $end): self
    
{
        
$this->end $end;

        return 
$this;
    }
}
Онлайн: 0
Реклама