You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
namespace Mapbox.Unity.MeshGeneration.Modifiers
|
|
{
|
|
using UnityEngine;
|
|
using System;
|
|
using Mapbox.Unity.MeshGeneration.Data;
|
|
using Mapbox.Unity.Map;
|
|
using Mapbox.Unity.MeshGeneration.Interfaces;
|
|
|
|
[Serializable]
|
|
public abstract class ModifierProperties : MapboxDataProperty
|
|
{
|
|
public abstract Type ModifierType
|
|
{
|
|
get;
|
|
}
|
|
public virtual void UpdateProperty(LayerVisualizerBase layerVisualizer)
|
|
{
|
|
|
|
}
|
|
public override bool HasChanged
|
|
{
|
|
set
|
|
{
|
|
if (value == true)
|
|
{
|
|
OnPropertyHasChanged(new VectorLayerUpdateArgs { property = this });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ModifierBase : ScriptableObject
|
|
{
|
|
[SerializeField]
|
|
public bool Active = true;
|
|
|
|
public virtual void SetProperties(ModifierProperties properties)
|
|
{
|
|
|
|
}
|
|
public virtual void Initialize()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void FeaturePreProcess(VectorFeatureUnity feature)
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void UnbindProperties()
|
|
{
|
|
|
|
}
|
|
public virtual void UpdateModifier(object sender, System.EventArgs layerArgs)
|
|
{
|
|
NotifyUpdateModifier(new VectorLayerUpdateArgs { property = sender as MapboxDataProperty, modifier = this });
|
|
}
|
|
|
|
public event System.EventHandler ModifierHasChanged;
|
|
protected virtual void NotifyUpdateModifier(VectorLayerUpdateArgs layerUpdateArgs)
|
|
{
|
|
System.EventHandler handler = ModifierHasChanged;
|
|
if (handler != null)
|
|
{
|
|
handler(this, layerUpdateArgs);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|