1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver; 4*04fd306cSNickeau 5*04fd306cSNickeau/** 6*04fd306cSNickeau * Represent a point. 7*04fd306cSNickeau */ 8*04fd306cSNickeauclass WebDriverPoint 9*04fd306cSNickeau{ 10*04fd306cSNickeau private $x; 11*04fd306cSNickeau private $y; 12*04fd306cSNickeau 13*04fd306cSNickeau public function __construct($x, $y) 14*04fd306cSNickeau { 15*04fd306cSNickeau $this->x = $x; 16*04fd306cSNickeau $this->y = $y; 17*04fd306cSNickeau } 18*04fd306cSNickeau 19*04fd306cSNickeau /** 20*04fd306cSNickeau * Get the x-coordinate. 21*04fd306cSNickeau * 22*04fd306cSNickeau * @return int The x-coordinate of the point. 23*04fd306cSNickeau */ 24*04fd306cSNickeau public function getX() 25*04fd306cSNickeau { 26*04fd306cSNickeau return (int) $this->x; 27*04fd306cSNickeau } 28*04fd306cSNickeau 29*04fd306cSNickeau /** 30*04fd306cSNickeau * Get the y-coordinate. 31*04fd306cSNickeau * 32*04fd306cSNickeau * @return int The y-coordinate of the point. 33*04fd306cSNickeau */ 34*04fd306cSNickeau public function getY() 35*04fd306cSNickeau { 36*04fd306cSNickeau return (int) $this->y; 37*04fd306cSNickeau } 38*04fd306cSNickeau 39*04fd306cSNickeau /** 40*04fd306cSNickeau * Set the point to a new position. 41*04fd306cSNickeau * 42*04fd306cSNickeau * @param int $new_x 43*04fd306cSNickeau * @param int $new_y 44*04fd306cSNickeau * @return WebDriverPoint The same instance with updated coordinates. 45*04fd306cSNickeau */ 46*04fd306cSNickeau public function move($new_x, $new_y) 47*04fd306cSNickeau { 48*04fd306cSNickeau $this->x = $new_x; 49*04fd306cSNickeau $this->y = $new_y; 50*04fd306cSNickeau 51*04fd306cSNickeau return $this; 52*04fd306cSNickeau } 53*04fd306cSNickeau 54*04fd306cSNickeau /** 55*04fd306cSNickeau * Move the current by offsets. 56*04fd306cSNickeau * 57*04fd306cSNickeau * @param int $x_offset 58*04fd306cSNickeau * @param int $y_offset 59*04fd306cSNickeau * @return WebDriverPoint The same instance with updated coordinates. 60*04fd306cSNickeau */ 61*04fd306cSNickeau public function moveBy($x_offset, $y_offset) 62*04fd306cSNickeau { 63*04fd306cSNickeau $this->x += $x_offset; 64*04fd306cSNickeau $this->y += $y_offset; 65*04fd306cSNickeau 66*04fd306cSNickeau return $this; 67*04fd306cSNickeau } 68*04fd306cSNickeau 69*04fd306cSNickeau /** 70*04fd306cSNickeau * Check whether the given point is the same as the instance. 71*04fd306cSNickeau * 72*04fd306cSNickeau * @param WebDriverPoint $point The point to be compared with. 73*04fd306cSNickeau * @return bool Whether the x and y coordinates are the same as the instance. 74*04fd306cSNickeau */ 75*04fd306cSNickeau public function equals(self $point) 76*04fd306cSNickeau { 77*04fd306cSNickeau return $this->x === $point->getX() && 78*04fd306cSNickeau $this->y === $point->getY(); 79*04fd306cSNickeau } 80*04fd306cSNickeau} 81