#pragma once

#include "CoreMinimal.h"
#include "PostProcessParams.h"
#include "DirectionalLightParams.h"
#include "SkylightParams.h"
#include "SkyDomeParams.h"
#include "FogParams.h"
#include "AdaptiveShadowMapParams.h"
#include "DBDCullDistanceVolumeParams.h"
#include "WeatherParams.h"
#include "FXParams.h"
#include "SSRParams.h"
#include "AmbianceManagerParams.generated.h"

class UCurveFloat;

USTRUCT(BlueprintType)
struct FAmbianceManagerParams
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FPostProcessParams _postProcessParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDirectionalLightParams _directionalLightParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FSkylightParams _skyLightParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FSkyDomeParams _skyDomeParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FFogParams _fogParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FAdaptiveShadowMapParams _asmParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDCullDistanceVolumeParams _cullVolumeParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FWeatherParams _weatherParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FFXParams _fxParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FSSRParams _ssrParams;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	float _transitionDuration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UCurveFloat* _transitionCurve;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsPostProcessOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsDirectionalLightOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsSkyLightOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsSkyDomeOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsFogOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsASMOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsCullVolumeOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsWeatherOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsFXOverrided;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _bIsSSROverrided;

public:
	GRAPHICSEXTENSIONS_API FAmbianceManagerParams();
};

FORCEINLINE uint32 GetTypeHash(const FAmbianceManagerParams) { return 0; }
