// Copyright (c) Microsoft Corporation. 
// Licensed under the MIT license.

#pragma once

#include "CoreMinimal.h"

enum class ELODRecipeFilterCriteria : uint8
{
	All = 0,
	StaticMeshes = 1,
	SkeletalMeshes = 2
};

/// @brief A context object used for filtering
struct FLODRecipeContext
{
	/// @brief Filter Criteria can be
	ELODRecipeFilterCriteria FilterCriteria;

	FLODRecipeContext()
		: FilterCriteria(ELODRecipeFilterCriteria::All)
	{
	}

	TArray<FSoftObjectPath> SpecificMeshes{};

	bool IncludeStaticMeshes() const { return FilterCriteria == ELODRecipeFilterCriteria::StaticMeshes || FilterCriteria == ELODRecipeFilterCriteria::All; }
	bool IncludeSkeletalMeshes() const { return FilterCriteria == ELODRecipeFilterCriteria::SkeletalMeshes || FilterCriteria == ELODRecipeFilterCriteria::All; }
};
