VaultGroundProfiles.cs
// Generated from evaluated skinned-mesh vault profiles. Units: inches.
using System;
namespace PaintballBaddies;
public static class VaultGroundProfiles
{
    private static readonly float[][] Curves = {
        new float[] { 0.647400f, 0.929521f, 2.737278f, 5.790480f, 10.434551f, 16.248923f, 22.132280f, 26.996473f, 28.233905f, 25.465820f, 22.349835f, 18.819165f, 14.936277f, 11.105412f, 7.354625f, 3.872024f, 1.495473f, 0.719536f, 0.832246f, 0.000000f, 0.042775f, 0.109603f, 0.267194f, 0.379232f, 0.548799f },
        new float[] { 1.058371f, 1.076907f, 2.869410f, 5.866739f, 10.669645f, 16.810305f, 22.963653f, 28.002074f, 27.709030f, 25.092165f, 22.175905f, 18.975540f, 15.156046f, 11.346422f, 7.540850f, 3.992968f, 1.566275f, 0.890702f, 1.083657f, 0.000000f, 0.192520f, 0.375691f, 0.623029f, 0.773233f, 0.956469f },
        new float[] { 0.907027f, 1.283874f, 3.212435f, 6.430959f, 11.460603f, 17.835125f, 24.219378f, 29.489331f, 30.679177f, 27.743972f, 24.407872f, 20.758264f, 16.581770f, 12.394637f, 8.214196f, 4.362647f, 1.815819f, 0.913628f, 1.008167f, 0.000000f, 0.038770f, 0.124656f, 0.338988f, 0.519998f, 0.774344f },
        new float[] { 0.071234f, 0.256882f, 2.180116f, 5.286460f, 9.866685f, 15.615431f, 21.405386f, 26.223053f, 27.877703f, 25.230922f, 22.221207f, 18.830973f, 14.941349f, 11.084194f, 7.294587f, 3.729521f, 1.228240f, 0.201784f, 0.040724f, 0.000000f, 0.268700f, 0.149538f, 0.088179f, 0.001571f, 0.021212f },
        new float[] { 0.500455f, 0.940881f, 2.975846f, 5.955982f, 10.734343f, 16.976993f, 23.470532f, 29.090728f, 32.573417f, 29.415320f, 25.806175f, 21.872256f, 17.370218f, 12.935937f, 8.605115f, 4.572091f, 1.812935f, 0.642163f, 0.375122f, 0.000000f, 0.439500f, 0.453040f, 0.370548f, 0.311403f, 0.409362f },
        new float[] { 0.593093f, 1.208951f, 3.202704f, 5.955128f, 10.469792f, 16.350630f, 22.371257f, 27.449612f, 29.879490f, 27.027986f, 23.822616f, 20.435797f, 16.391818f, 12.326466f, 8.338432f, 4.576587f, 1.929096f, 0.856786f, 0.675511f, 0.201254f, 0.126441f, 0.000000f, 0.068015f, 0.196851f, 0.454240f }
    };
    public static float Sample(int character, float progress)
    {
        var curve=Curves[Math.Clamp(character,0,Curves.Length-1)];
        var t=Math.Clamp(progress,0,1)*(curve.Length-1);
        var index=Math.Min((int)t,curve.Length-2);
        return curve[index]+(curve[index+1]-curve[index])*(t-index);
    }
}