| @@ 229-240 (lines=12) @@ | ||
| 226 | * |
|
| 227 | * @return \Traversable |
|
| 228 | */ |
|
| 229 | public function forXUpTo($upTo, $step = 1) |
|
| 230 | { |
|
| 231 | if ($upTo instanceof self) { |
|
| 232 | $upTo = $upTo->getX(); |
|
| 233 | } elseif (false === is_int($upTo)) { |
|
| 234 | throw new \InvalidArgumentException('UpTo argument must be Point or integer'); |
|
| 235 | } |
|
| 236 | ||
| 237 | for ($x = $this->getX(); $x <= $upTo; $x+=$step) { |
|
| 238 | yield $x; |
|
| 239 | } |
|
| 240 | } |
|
| 241 | ||
| 242 | /** |
|
| 243 | * @param Point|int $upTo |
|
| @@ 248-259 (lines=12) @@ | ||
| 245 | * |
|
| 246 | * @return \Traversable |
|
| 247 | */ |
|
| 248 | public function forYUpTo($upTo, $step = 1) |
|
| 249 | { |
|
| 250 | if ($upTo instanceof self) { |
|
| 251 | $upTo = $upTo->getY(); |
|
| 252 | } elseif (false === is_int($upTo)) { |
|
| 253 | throw new \InvalidArgumentException('UpTo argument must be Point or integer'); |
|
| 254 | } |
|
| 255 | ||
| 256 | for ($y = $this->getY(); $y <= $upTo; $y+=$step) { |
|
| 257 | yield $y; |
|
| 258 | } |
|
| 259 | } |
|
| 260 | ||
| 261 | /** |
|
| 262 | * @param int $count |
|