code: public void translate(List<? extends S> thePath, Direction1D direction, Tuple2D<?> move) {
  		assert move != null : AssertMessages.notNullParameter(2);
  		this.path = thePath == null || thePath.isEmpty() ? null : new ArrayList<>(thePath);
  		this.firstSegmentDirection = detectFirstSegmentDirection(direction);
  		this.curvilineTranslation += move.getX();
  		this.shiftTranslation += move.getY();
          this.isIdentity = null;
  	}
docs: Translate.
  
  @param thePath the path to follow.
  @param direction is the direction to follow on the path if the path contains only one segment.
  @param move where <code>x</code> is the curviline coordinate and <code>y</code> is the shift coordinate.