/** * Изменяет y-координату верхнего левого угла. * * @param int * @throws IllegalArgumentException */ public function setTop($top) { if (!is_int($top)) { throw new IllegalArgumentException(); } if ($this->size->getHeight() > 0) { $this->setY($top); } else { $y = $top + $this->getHeight(); $this->setY($y); } }
/** * * Вычитает из высоты и ширины размера координаты точки или * высоту и ширину другого размера и возвращает получившийся размер. * * @param Size $s * @param Size|Point $obj * @return Size * @throws IllegalArgumentException */ public static function subtract(Size $s, $obj) { if ($obj instanceof Size) { return new Size($s->getWidth() - $obj->getWidth(), $s->getHeight() - $obj->getHeight()); } else { if ($obj instanceof Point) { return new Size($s->getWidth() - $obj->getX(), $s->getHeigth() - $obj->getY()); } } throw new IllegalArgumentException(); }