docs: @Pure
  	public static AbstractPathElement3D newInstance(PathElementType type, Point3d last, Point3d[] coords) {
  		switch(type) {
  		case MOVE_TO:
  			return new MovePathElement3d(coords[0]);
  		case LINE_TO:
  			return new LinePathElement3d(last, coords[0]);
  		case QUAD_TO:
  			return new QuadPathElement3d(last, coords[0], coords[1]);
  		case CURVE_TO:
  			return new CurvePathElement3d(last, coords[0], coords[1], coords[2]);
  		case CLOSE:
  			return new ClosePathElement3d(last, coords[0]);
  		default:
  		}
  		throw new IllegalArgumentException();
  	}