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

#pragma once
#include "ISimplygonPluginUtilitiesModule.h"
#include "SimplygonPluginUtilities.h"
#include "PropertyEditorModule.h"

/**
 * The public interface to this module.  In most cases, this interface is only public to sibling modules 
 * within this plugin.
 */
class FSimplygonPluginUtilitiesModule : public ISimplygonPluginUtilitiesModule
{
public:
	virtual const ISimplygonPluginUtilities& GetUtilities() const override
	{
		return *dynamic_cast<const ISimplygonPluginUtilities*>(&Utilities);
	}

	virtual ISimplygonPluginUtilities& GetUtilities() override
	{
		return Utilities;
	}

	virtual void StartupModule() override
	{

	}

	virtual void ShutdownModule() override
	{

	}
protected:
	FSimplygonPluginUtilities Utilities;
};


IMPLEMENT_MODULE(FSimplygonPluginUtilitiesModule, SimplygonPluginUtilities);
