﻿namespace Mapbox.Unity.Map
{
	public class SubLayerCustomStyle : ISubLayerCustomStyle
	{
		private GeometryMaterialOptions _materialOptions;
		public SubLayerCustomStyle(GeometryMaterialOptions materialOptions)
		{
			_materialOptions = materialOptions;
		}

		public UvMapType TexturingType
		{
			get
			{
				return _materialOptions.texturingType;
			}

			set
			{
				if (_materialOptions.texturingType != value)
				{
					_materialOptions.texturingType = value;
					_materialOptions.HasChanged = true;
				}
			}
		}
		private SubLayerCustomStyleTiled _tiled;
		public ISubLayerCustomStyleTiled Tiled
		{
			get
			{
				if (_tiled == null)
				{
					_tiled = new SubLayerCustomStyleTiled(_materialOptions);
				}
				return _tiled;
			}
		}

		private SubLayerCustomStyleAtlas _textureAtlas;
		public ISubLayerCustomStyleAtlas TextureAtlas
		{
			get
			{
				if (_textureAtlas == null)
				{
					_textureAtlas = new SubLayerCustomStyleAtlas(_materialOptions);
				}
				return _textureAtlas;
			}
		}

		private SubLayerCustomStyleAtlasWithColorPallete _textureAtlasPallete;
		public ISubLayerCustomStyleAtlasWithColorPallete TextureAtlasWithColorPallete
		{
			get
			{
				if (_textureAtlasPallete == null)
				{
					_textureAtlasPallete = new SubLayerCustomStyleAtlasWithColorPallete(_materialOptions);
				}
				return _textureAtlasPallete;
			}
		}
	}

}


