src/Math/Point.php
public function translate($x, $y = null, $z = null, $distance = null)
  {
    if($x instanceof self)
      return $this->transByPoint($x, $y);

    if(isset($distance))
      return $this->transByPoint(static::fromCartesian($x, $y, $z), $distance);

    return static::fromCartesian(
      $this->x + $x,
      $this->y + $y,
      $this->z + $z
    );
  }
public function translate($x, $y = null, $z = null, $distance = null)
  {
    if($x instanceof self)
      return $this->transByPoint($x, $y);

    if(isset($distance))
      return $this->transByPoint(static::fromCartesian($x, $y, $z), $distance);

    return static::fromCartesian(
      $this->x + $x,
      $this->y + $y,
      $this->z + $z
    );
  }
Translate coordinates in space (entry wrapper)

[1] ->translate(static $shift[, $distance])
- Offset the coordinates [by $distance, ]using $shift as offset vector.
[2] ->translate($x, $y, $z[, $distance])
- Offset the coordinates of the point [by $distance, ]using specified separate deltas as offset vector.

@param static|numeric $shift|$x the (set of) distance(s) by which a point must be translated.
@param ?numeric $distance|$y the distances by which a coordinate must be translated.
@param ?numeric $z the distances by which a coordinate must be translated.
@param ?numeric $distance the distances by which a coordinate must be translated.
@return self the translated coordinate