//
// Crest Water System
// Copyright © 2024 Wave Harmonic. All rights reserved.
using WaveHarmonic.Crest.Splines;
using WaveHarmonic.Crest.Paint;
namespace WaveHarmonic.Crest
{
static partial class _Extensions
{
static void AddData(LodInput input, LodInputMode mode)
{
switch (mode)
{
case LodInputMode.Renderer when input is AbsorptionLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is AbsorptionLodInput: AddData(input, mode); break;
#if d_CrestSplines
case LodInputMode.Spline when input is AbsorptionLodInput: AddData(input, mode); break;
#endif
#if d_CrestPaint
case LodInputMode.Paint when input is AbsorptionLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Renderer when input is AlbedoLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is AnimatedWavesLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is ClipLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is ClipLodInput: AddData(input, mode); break;
#if d_CrestPaint
case LodInputMode.Paint when input is ClipLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Renderer when input is DepthLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is DepthLodInput: AddData(input, mode); break;
case LodInputMode.Geometry when input is DepthLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is DynamicWavesLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is FlowLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is FlowLodInput: AddData(input, mode); break;
#if d_CrestPaint
case LodInputMode.Paint when input is FlowLodInput: AddData(input, mode); break;
#endif
#if d_CrestSplines
case LodInputMode.Spline when input is FlowLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Renderer when input is FoamLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is FoamLodInput: AddData(input, mode); break;
#if d_CrestPaint
case LodInputMode.Paint when input is FoamLodInput: AddData(input, mode); break;
#endif
#if d_CrestSplines
case LodInputMode.Spline when input is FoamLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Renderer when input is LevelLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is LevelLodInput: AddData(input, mode); break;
#if d_CrestPaint
case LodInputMode.Paint when input is LevelLodInput: AddData(input, mode); break;
#endif
#if d_CrestSplines
case LodInputMode.Spline when input is LevelLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Geometry when input is LevelLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is ScatteringLodInput: AddData(input, mode); break;
case LodInputMode.Texture when input is ScatteringLodInput: AddData(input, mode); break;
#if d_CrestSplines
case LodInputMode.Spline when input is ScatteringLodInput: AddData(input, mode); break;
#endif
#if d_CrestPaint
case LodInputMode.Paint when input is ScatteringLodInput: AddData(input, mode); break;
#endif
case LodInputMode.Renderer when input is ShadowLodInput: AddData(input, mode); break;
case LodInputMode.Renderer when input is ShapeWaves: AddData(input, mode); break;
case LodInputMode.Texture when input is ShapeWaves: AddData(input, mode); break;
#if d_CrestPaint
case LodInputMode.Paint when input is ShapeWaves: AddData(input, mode); break;
#endif
#if d_CrestSplines
case LodInputMode.Spline when input is ShapeWaves: AddData(input, mode); break;
#endif
}
}
}
}