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

#pragma once
#include "ISimplygonPluginUtilities.h"
#include "CoreMinimal.h"
#include "UObject/UObjectBaseUtility.h"
#include "UObject/ObjectMacros.h"
#include "SimplygonPluginMeshReductionModule.h"
#include "MeshMergeUtilities/Private/MeshMergeUtilities.h"
#include "SimplygonProcessor.h"

class AStandInMeshActor;

class FSimplygonPluginUtilities : public ISimplygonPluginUtilities
{
public:
	virtual ~FSimplygonPluginUtilities() {}
	FSimplygonPluginUtilities() { GameThreadTicker = MakeUnique<FSimplygonProcessor>(); }
	virtual FSimplygonProcessor* GetSimplygonProcessor() override { return GameThreadTicker.Get(); }

private:
	TUniquePtr<FSimplygonProcessor> GameThreadTicker;
};
