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
    );
  }
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
Translate coordinates in space ( entry wrapper )