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

#pragma once

#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"

class AImpostorGeneratorHelperActor;

/**
 * @brief Module for Simplygon Editor Services i.e LevelEd Extensions and etc.
*/
class ISimplygonEditorModule : public IModuleInterface
{
public:
	
	/**
	 * @brief Gets a random samples point from navigable space for Visibility Sampling
	 * @param InWolrd World
	 * @param NumSamples Total number of samples to collect
	 * @param MinZ Minimum height
	 * @param MaxZ  Maximum height
	 * @param OutSamples The TArray containing the sample locations
	*/
	virtual void GetRandomSamplesFromNavigableSpace(const UWorld* InWolrd,const int NumSamples, const float MinZ, const float MaxZ, TArray<FVector>& OutSamples) = 0;

	#ifdef IMPOSTER_BAKER
	virtual void BakeImpostors(AImpostorGeneratorHelperActor* InActor = nullptr) = 0;
	#endif
};
