//#####################################################################
// Copyright 2009-2021, Nipun Kwatra, Craig Schroeder, Andrew Selle.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
#ifndef __INTERPOLATION_UNIFORM_FORWARD__
#define __INTERPOLATION_UNIFORM_FORWARD__

#include <Core/Arrays/ARRAYS_FORWARD.h>

namespace PhysBAM{
template<class TV> class FACE_LOOKUP_UNIFORM;
template<int d> class FACE_INDEX;

template<class TV,class T_FACE_LOOKUP=ARRAY<typename TV::SCALAR,FACE_INDEX<TV::m> > > class AVERAGING_UNIFORM;

template<class TV,class T2,class T_FACE_ARRAY=ARRAY<T2,FACE_INDEX<TV::m> > > struct LINEAR_INTERPOLATION_ALL;
// template<class TV,class T2,class T_FACE_ARRAY=ARRAY<T2,FACE_INDEX<TV::m> > > struct QUADRATIC_INTERPOLATION_ALL;
template<class TV,class T2,class T_FACE_ARRAY=ARRAY<T2,FACE_INDEX<TV::m> > > struct CUBIC_INTERPOLATION_ALL;
template<class TV,class T2,class T_FACE_ARRAY=ARRAY<T2,FACE_INDEX<TV::m> > > struct CUBIC_SPLINE_INTERPOLATION_ALL;
template<class TV,class T2,class T_FACE_ARRAY=ARRAY<T2,FACE_INDEX<TV::m> > > struct CUBIC_MN_INTERPOLATION_ALL;
}
#endif
