#pragma once

#include "ElementProxies.hpp"
#include <Proxies\Process.hpp>

namespace ElementProxies {

	class ElementGroupProxy;
	class ElementPolygonMeshProxy;
	class ElementSceneProxy;

	class SetExplicitFogModeProcess:
		public Proxies::Process
	{
	public:
		SetExplicitFogModeProcess()
			{}
		SetExplicitFogModeProcess(Stuff::NotationFile *data_file):
			Process(data_file)
				{}

		virtual void
			SetExplicitFogModeCallback(Proxies::GenericProxy* proxy)
				{}

		bool
			SetExplicitFogMode(Proxies::ChildProxy* child, int newFogMode);
		bool
			SetExplicitFogMode(ElementGroupProxy* group, int newFogMode);
		bool
			SetExplicitFogMode(ElementPolygonMeshProxy* mesh, int newFogMode);
		void
			SetExplicitFogMode(ElementSceneProxy* scene, int newFogMode);
	};

}
