using UnityEngine; namespace Mapbox.Unity.Map { public interface ITerrainLayer : ILayer { /// /// Gets the `Data Source` for the `TERRAIN` section. /// ElevationSourceType LayerSource { get; } /// /// Gets the `Elevation Layer Type` for the `TERRAIN` section. /// ElevationLayerType ElevationType { get; set; } /// /// Gets the `Exaggeration Factor` for the `TERRAIN` section. /// float ExaggerationFactor { get; set; } /// /// Sets the Data Source for `TERRAIN`. By default this is set to /// `Mapbox Terrain`. Currenly, only terrain-rgb is supported. /// Use = `None`, to disable the terrain. /// /// `Data Source` for `TERRAIN` void SetLayerSource(ElevationSourceType terrainSource = ElevationSourceType.MapboxTerrain); /// /// Sets the `Elevation Layer Type` which is the main strategy for terrain /// mesh generation. `Flat Terrain` doesn't pull data from servers, it /// uses a quad as the terrain. /// Type of the elevation. Can be set to `Terrain with Elevation`, /// `Flat Terrain`, `Globe`, or `Low Polygon Terrain`. Note: low poly doesn't /// improve performance. void SetElevationType(ElevationLayerType elevationType); /// /// Enables or disables the `Add Collider` settings for adding a collider /// to the terrain. The collider type is a mesh collider. /// /// Boolean for toggling `Add Collider`. void EnableCollider(bool enable); /// /// Sets the `Exaggeration Factor` for the terrain. This acts as a multiplier /// for elevation. Use this setting to better highlight elevation in your scene. /// Each elevation point will be multiplied by the float value. /// /// Elevation multiplier for `Exaggeration Factor` settings. void SetExaggerationFactor(float factor); /// /// Enables the settings for `Show Sidewalls`. /// /// Wall height. /// Wall material. void EnableSideWalls(float wallHeight, Material wallMaterial); /// /// Disables the settings for `Show Sidewalls`. /// void DisableSideWalls(); /// /// Adds the terrain mesh GameObject to a Unity layer. /// /// Layer identifier. You may need to add the layer in /// the Tags and Layers manager. void AddToUnityLayer(int layerId); /// /// Removes the terrain GameObject from a Unity layer. /// /// Layer identifier. void RemoveFromUnityLayer(int layerId); /// /// Change the `TERRAIN` layer settings. /// /// The `Data Source` for the terrain. /// `Elevation Layer Type` setting to define elevation strategy. /// Enables or disables `Use Collider` settings for a mesh collider on the terrain. /// `Exaggertion Factor` for a multiplier of the height data. /// `Add to Unity Layer` settings which adds terrrain to a layer. void SetProperties(ElevationSourceType dataSource = ElevationSourceType.MapboxTerrain, ElevationLayerType elevationType = ElevationLayerType.TerrainWithElevation, bool enableCollider = false, float factor = 1, int layerId = 0); } public interface IGlobeTerrainLayer : ITerrainLayer { float EarthRadius { get; set; } } }