/** * @return PointSet */ public function produce() { $result = new PointSet(); foreach ($this->lowerLeft->forXTimes($this->width) as $x) { foreach ($this->lowerLeft->forYTimes($this->height) as $y) { $point = new Point($x, $y); $value = $this->getValue($point); $result->attach($point, $value); } } return $result; }