/**
* Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.market.surface.interpolator;
import com.opengamma.strata.collect.array.DoubleArray;
/**
* Interface for interpolators that interpolate a surface.
*/
public interface SurfaceInterpolator {
/**
* Binds this interpolator to a surface.
* <p>
* The bind process takes the definition of the interpolator and combines it with the x-y-z values.
* This allows implementations to optimize interpolation calculations.
*
* @param xValues the x-values of the surface, must be sorted from low to high
* @param yValues the y-values of the surface, must be sorted from low to high within x
* @param zValues the z-values of the surface
* @return the bound interpolator
*/
public abstract BoundSurfaceInterpolator bind(DoubleArray xValues, DoubleArray yValues, DoubleArray zValues);
}