namespace Mapbox.Unity.Map { using System; using Mapbox.Unity.MeshGeneration.Modifiers; using UnityEngine; [Serializable] public class CoreVectorLayerProperties : MapboxDataProperty, ISubLayerCoreOptions { [SerializeField] private string sourceId; [Tooltip("Is visualizer active.")] public bool isActive = true; [Tooltip("Name of the visualizer. ")] public string sublayerName = "untitled"; [Tooltip("Primitive geometry type of the visualizer, allowed primitives - point, line, polygon")] public VectorPrimitiveType geometryType = VectorPrimitiveType.Polygon; [Tooltip("Name of the layer in the source tileset. This property is case sensitive.")] public string layerName = "layerName"; [Tooltip("Snap features to the terrain elevation, use this option to draw features above terrain. ")] public bool snapToTerrain = true; [Tooltip("Groups features into one Unity GameObject.")] public bool combineMeshes = false; public override bool HasChanged { set { if (value == true) { OnPropertyHasChanged(new VectorLayerUpdateArgs { property = this }); } } } /// /// Change the primtive type of the feature which will be used to decide /// what type of mesh operations features will require. /// In example, roads are generally visualized as lines and buildings are /// generally visualized as polygons. /// /// Primitive type of the featues in the layer. public virtual void SetPrimitiveType(VectorPrimitiveType type) { if (geometryType != type) { geometryType = type; HasChanged = true; } } } }