#pragma once

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

namespace ElementProxies {

	class ElementGroupProxy;
	class ElementPolygonMeshProxy;
	class ElementSceneProxy;

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

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

		bool
			OptimizeSync(Proxies::ChildProxy* child);
		bool
			OptimizeSync(ElementGroupProxy* group);
		bool
			OptimizeSync(ElementPolygonMeshProxy* mesh);
		void
			OptimizeSync(ElementSceneProxy* scene);
	};

}
