function gpWithOrigin(xOrigin, zOrigin) {
function goldsteinPrice(u, v, optionalTarget) {
const eps = 0.000001;
var result = optionalTarget || new THREE.Vector3();
var xOrig = u * fAxesDim;
var zOrig = v * fAxesDim;
let x = (u - xBreadth / 2 - xOrigin) * xBreadth;
let z = (v - zBreadth / 2 - zOrigin) * zBreadth;
let y =
(1 +
(x + z + 1) ** 2 *
(19 - 14 * x + 3 * x ** 2 - 14 * z + 6 * x * z + 3 * z ** 2)) *
(30 +
(2 * x - 3 * z) ** 2 *
(18 - 32 * x + 12 * x ** 2 + 48 * z - 36 * x * z + 27 * z ** 2));
y = -Math.log10(y);
y = y / division;
y = y + yOffset;
if (clipFn) {
if (y < minDepth) {
y = minDepth;
} else if (y > maxToolDepth) {
y = maxToolDepth;
}
}
return result.set(xOrig, y, zOrig);
}
return goldsteinPrice;
}