public function placeOnField(Field $field) { $iterations = 0; while (true) { $field->placeCursor($this->cursor); $this->cursor->moveLinear($this->vector, $this->factor); if ($this->endPoint->equal($this->cursor->getZeroPoint())) { $field->placeCursor($this->cursor); break; } //just debug issue if ($iterations++ > 5000) { var_dump("Max iterations!"); break; } } }
/** * Check if point is already on cursor * @param IPointConverted $point * @return bool */ private function currentlyFilled(IPointConverted $point) { foreach ($this->currentPoints as $cPoint) { if ($point->equal($cPoint)) { return true; } } return false; }