namespace Mapbox.Unity.MeshGeneration.Interfaces
{
using Mapbox.VectorTile;
using UnityEngine;
using Mapbox.Unity.MeshGeneration.Data;
using System;
using Mapbox.Unity.Map;
///
/// Layer visualizers contains sytling logic and processes features
///
public abstract class LayerVisualizerBase : ScriptableObject
{
public abstract bool Active { get; }
public abstract string Key { get; set; }
public abstract VectorSubLayerProperties SubLayerProperties { get; set; }
public abstract void Create(VectorTileLayer layer, UnityTile tile, Action callback = null);
public event System.EventHandler LayerVisualizerHasChanged;
public virtual void Initialize()
{
}
public virtual void InitializeStack()
{
}
public virtual void SetProperties(VectorSubLayerProperties properties)
{
}
public virtual void Clear()
{
}
public void UnregisterTile(UnityTile tile)
{
OnUnregisterTile(tile);
}
public virtual void OnUnregisterTile(UnityTile tile)
{
}
public virtual void UnbindSubLayerEvents()
{
}
protected virtual void OnUpdateLayerVisualizer(System.EventArgs e)
{
System.EventHandler handler = LayerVisualizerHasChanged;
if (handler != null)
{
handler(this, e);
}
}
}
}