using System; using System.Collections.Generic; using Mapbox.Map; using Mapbox.Utils; using UnityEngine; namespace Mapbox.Unity.Map.Interfaces { public interface IMap : IMapReadable, IMapWritable, IUnifiedMap { } public interface IMapReadable { Vector2d CenterMercator { get; } float WorldRelativeScale { get; } Vector2d CenterLatitudeLongitude { get; } /// /// Gets the zoom value of the map. /// This allows for zoom values in between actual zoom level "AbsoluteZoom" requested from the service. /// float Zoom { get; } /// /// Gets the zoom value at which the map was intialized. /// int InitialZoom { get; } /// /// Gets the zoom value at which the tiles will be requested from the service. /// Use this only for calls which require an integer value of zoom to be passed in. /// int AbsoluteZoom { get; } Transform Root { get; } float UnityTileSize { get; } Texture2D LoadingTexture { get; } Material TileMaterial { get; } HashSet CurrentExtent { get; } event Action OnInitialized; event Action OnUpdated; Vector2d WorldToGeoPosition(Vector3 realworldPoint); Vector3 GeoToWorldPosition(Vector2d latitudeLongitude, bool queryHeight = true); } public interface IMapWritable { void SetCenterMercator(Vector2d centerMercator); void SetCenterLatitudeLongitude(Vector2d centerLatitudeLongitude); void SetZoom(float zoom); void SetWorldRelativeScale(float scale); } }