Skip to content
Merged
4 changes: 0 additions & 4 deletions dependencies/Mapbox.Json/Net35/Mapbox.Json.dll.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dependencies/mapbox-sdk-cs
Submodule mapbox-sdk-cs updated 44 files
+34 −0 MapboxSdkCs.sln
+0 −1 src/Map/ClassicRasterTile.cs
+0 −22 src/Map/ClassicRetinaRasterTile.cs
+16 −2 src/Map/Map.csproj
+1 −1 src/Map/Map.project.json
+0 −2 src/Map/MapUWP.csproj
+0 −22 src/Map/RetinaRasterTile.cs
+69 −82 src/Map/Tile.cs
+36 −46 src/Map/TileResource.cs
+35 −18 src/Map/VectorTile.cs
+78 −0 src/Mono/FileSource.cs
+73 −0 src/Mono/HTTPRequest.cs
+64 −0 src/Mono/Mono.csproj
+4 −0 src/Mono/Mono.project.json
+144 −0 src/Mono/MonoUWP.csproj
+23 −0 src/Mono/Properties/AssemblyInfo.cs
+33 −0 src/Mono/Properties/MonoUWP.rd.xml
+5 −0 src/Mono/packages.config
+16 −0 src/Mono/project.json
+0 −149 src/Platform/FileSource.cs
+0 −238 src/Platform/HTTPRequestNonThreaded.cs
+0 −318 src/Platform/HTTPRequestThreaded.cs
+4 −8 src/Platform/IAsyncRequest.cs
+0 −32 src/Platform/IAsyncRequestFactory.cs
+5 −3 src/Platform/IFileSource.cs
+0 −4 src/Platform/Platform.csproj
+0 −4 src/Platform/PlatformUWP.csproj
+7 −272 src/Platform/Response.cs
+0 −43 src/Utils/UnixTimestampUtils.cs
+0 −1 src/Utils/Utils.csproj
+0 −4 src/Utils/UtilsUWP.csproj
+27 −24 test/UnitTest/CompressionTest.cs
+1 −2 test/UnitTest/DirectionsTest.cs
+0 −194 test/UnitTest/FileSourceMockApiTest.cs
+105 −105 test/UnitTest/FileSourceTest.cs
+18 −15 test/UnitTest/GeocoderTest.cs
+26 −18 test/UnitTest/MapTest.cs
+2 −3 test/UnitTest/TileTest.cs
+4 −15 test/UnitTest/UnitTest.csproj
+60 −63 test/UnitTest/Utils.cs
+37 −45 test/UnitTest/VectorTileTest.cs
+0 −11 test/UnitTest/app.config
+0 −3 test/UnitTest/packages.config
+1 −1 versions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ namespace Mapbox.Unity.Location
/// </summary>
public class TransformLocationProvider : MonoBehaviour, ILocationProvider
{
[SerializeField]
private MapController _mapController;

/// <summary>
/// The transform that will be queried for location and heading data.
/// </summary>
Expand Down Expand Up @@ -70,11 +73,11 @@ void Update()

Vector2d GetLocation()
{
if (MapController.ReferenceTileRect == null)
if (_mapController.WorldParameters.ReferenceTileRect == null)
{
return LocationProviderFactory.Instance.DefaultLocationProvider.Location;
}
return _targetTransform.GetGeoPosition(MapController.ReferenceTileRect.Center, MapController.WorldScaleFactor);
return _targetTransform.GetGeoPosition(_mapController.WorldParameters.ReferenceTileRect.Center, _mapController.WorldParameters.WorldScaleFactor);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,20 @@ public class DirectionsFactory : Factory
private Directions _directions;
public List<MeshModifier> MeshModifiers;

public override void Initialize(IFileSource fileSource)
public override void Initialize(IFileSource fileSource, WorldParameters parameters)
{
base.Initialize(fileSource);
base.Initialize(fileSource, parameters);
_directions = MapboxAccess.Instance.Directions;
}

public void Query(List<Vector2d> waypoints)
public void Query(List<Transform> waypoints)
{
var _directionResource = new DirectionResource(waypoints.ToArray(), RoutingProfile.Driving);
var wp = new Vector2d[waypoints.Count];
for (int i = 0; i < waypoints.Count; i++)
{
wp[i] = waypoints[i].GetGeoPosition(Parameters.ReferenceTileRect.Center, Parameters.WorldScaleFactor);
}
var _directionResource = new DirectionResource(wp, RoutingProfile.Driving);
_directionResource.Steps = true;
_directions.Query(_directionResource, HandleDirectionsResponse);
}
Expand All @@ -39,7 +44,7 @@ void HandleDirectionsResponse(DirectionsResponse response)
{
foreach (var point in response.Routes[0].Geometry)
{
meshData.Vertices.Add(Conversions.GeoToWorldPosition(point.x, point.y, MapController.ReferenceTileRect.Center, MapController.WorldScaleFactor).ToVector3xz());
meshData.Vertices.Add(Conversions.GeoToWorldPosition(point.x, point.y, Parameters.ReferenceTileRect.Center, Parameters.WorldScaleFactor).ToVector3xz());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,15 @@ namespace Mapbox.Unity.MeshGeneration.Factories
/// </summary>
public class Factory : ScriptableObject
{
//private IWorldParameter MapVisualization;
protected IFileSource FileSource;
protected WorldParameters Parameters;

public virtual void Initialize(IFileSource fileSource)
public virtual void Initialize(IFileSource fileSource, WorldParameters parameters)
{
//MapVisualization = vis;
FileSource = fileSource;
Parameters = parameters;
}

public virtual void Register(UnityTile tile)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ public class MapImageFactory : Factory

private Dictionary<Vector2, UnityTile> _tiles;

public override void Initialize(IFileSource fs)
public override void Initialize(IFileSource fs, WorldParameters parameters)
{
base.Initialize(fs);
base.Initialize(fs, parameters);
_tiles = new Dictionary<Vector2, UnityTile>();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,108 +1,130 @@
namespace Mapbox.Unity.MeshGeneration.Factories {
using System.Collections.Generic;
using UnityEngine;
using Mapbox.Unity.MeshGeneration.Enums;
using Mapbox.Unity.MeshGeneration.Data;
using Mapbox.Unity.MeshGeneration.Interfaces;
using Mapbox.Platform;
namespace Mapbox.Unity.MeshGeneration.Factories
{
using System.Collections.Generic;
using UnityEngine;
using Mapbox.Unity.MeshGeneration.Enums;
using Mapbox.Unity.MeshGeneration.Data;
using Mapbox.Unity.MeshGeneration.Interfaces;
using Mapbox.Platform;

/// <summary>
/// Uses vector tile api to visualize vector data.
/// Fetches the vector data for given tile and passes layer data to layer visualizers.
/// </summary>
[CreateAssetMenu(menuName = "Mapbox/Factories/Mesh Factory")]
public class MeshFactory : Factory {
[SerializeField]
private string _mapId = "";
public List<LayerVisualizerBase> Visualizers;
/// <summary>
/// Uses vector tile api to visualize vector data.
/// Fetches the vector data for given tile and passes layer data to layer visualizers.
/// </summary>
[CreateAssetMenu(menuName = "Mapbox/Factories/Mesh Factory")]
public class MeshFactory : Factory
{
[SerializeField]
private string _mapId = "";
public List<LayerVisualizerBase> Visualizers;

private Dictionary<Vector2, UnityTile> _tiles;
private Dictionary<string, List<LayerVisualizerBase>> _layerBuilder;
private Dictionary<Vector2, UnityTile> _tiles;
private Dictionary<string, List<LayerVisualizerBase>> _layerBuilder;

public void OnEnable() {
if (Visualizers == null)
Visualizers = new List<LayerVisualizerBase>();
}
public void OnEnable()
{
if (Visualizers == null)
Visualizers = new List<LayerVisualizerBase>();
}

/// <summary>
/// Sets up the Mesh Factory
/// </summary>
/// <param name="fs"></param>
public override void Initialize(IFileSource fs) {
base.Initialize(fs);
_tiles = new Dictionary<Vector2, UnityTile>();
_layerBuilder = new Dictionary<string, List<LayerVisualizerBase>>();
foreach (LayerVisualizerBase factory in Visualizers) {
if (_layerBuilder.ContainsKey(factory.Key)) {
_layerBuilder[factory.Key].Add(factory);
} else {
_layerBuilder.Add(factory.Key, new List<LayerVisualizerBase>() { factory });
}
}
}
/// <summary>
/// Sets up the Mesh Factory
/// </summary>
/// <param name="fs"></param>
public override void Initialize(IFileSource fs, WorldParameters parameters)
{
base.Initialize(fs, parameters);
_tiles = new Dictionary<Vector2, UnityTile>();
_layerBuilder = new Dictionary<string, List<LayerVisualizerBase>>();
foreach (LayerVisualizerBase factory in Visualizers)
{
if (_layerBuilder.ContainsKey(factory.Key))
{
_layerBuilder[factory.Key].Add(factory);
}
else
{
_layerBuilder.Add(factory.Key, new List<LayerVisualizerBase>() { factory });
}
}
}

public override void Register(UnityTile tile) {
base.Register(tile);
_tiles.Add(tile.TileCoordinate, tile);
Run(tile);
}
public override void Register(UnityTile tile)
{
base.Register(tile);
_tiles.Add(tile.TileCoordinate, tile);
Run(tile);
}

/// <summary>
/// Mesh Factory waits for both Height and Image data to be processed if they are requested
/// </summary>
/// <param name="tile"></param>
private void Run(UnityTile tile) {
if (tile.HeightDataState == TilePropertyState.Loading ||
tile.ImageDataState == TilePropertyState.Loading) {
tile.HeightDataChanged += HeightDataChangedHandler;
tile.ImageDataChanged += ImageDataChangedHandler;
} else {
CreateMeshes(tile, null);
}
}
/// <summary>
/// Mesh Factory waits for both Height and Image data to be processed if they are requested
/// </summary>
/// <param name="tile"></param>
private void Run(UnityTile tile)
{
if (tile.HeightDataState == TilePropertyState.Loading ||
tile.ImageDataState == TilePropertyState.Loading)
{
tile.HeightDataChanged += HeightDataChangedHandler;
tile.ImageDataChanged += ImageDataChangedHandler;
}
else
{
CreateMeshes(tile, null);
}
}

private void HeightDataChangedHandler(UnityTile t, object e) {
if (t.ImageDataState != TilePropertyState.Loading)
CreateMeshes(t, e);
}
private void HeightDataChangedHandler(UnityTile t, object e)
{
if (t.ImageDataState != TilePropertyState.Loading)
CreateMeshes(t, e);
}

private void ImageDataChangedHandler(UnityTile t, object e) {
if (t.HeightDataState != TilePropertyState.Loading)
CreateMeshes(t, e);
}
private void ImageDataChangedHandler(UnityTile t, object e)
{
if (t.HeightDataState != TilePropertyState.Loading)
CreateMeshes(t, e);
}


/// <summary>
/// Fetches the vector data and passes each layer to relevant layer visualizers
/// </summary>
/// <param name="tile"></param>
/// <param name="e"></param>
private void CreateMeshes(UnityTile tile, object e) {
tile.HeightDataChanged -= HeightDataChangedHandler;
tile.ImageDataChanged -= ImageDataChangedHandler;
/// <summary>
/// Fetches the vector data and passes each layer to relevant layer visualizers
/// </summary>
/// <param name="tile"></param>
/// <param name="e"></param>
private void CreateMeshes(UnityTile tile, object e)
{
tile.HeightDataChanged -= HeightDataChangedHandler;
tile.ImageDataChanged -= ImageDataChangedHandler;

var parameters = new Mapbox.Map.Tile.Parameters {
Fs = this.FileSource,
Id = new Mapbox.Map.CanonicalTileId(tile.Zoom, (int)tile.TileCoordinate.x, (int)tile.TileCoordinate.y),
MapId = _mapId
};
var parameters = new Mapbox.Map.Tile.Parameters
{
Fs = this.FileSource,
Id = new Mapbox.Map.CanonicalTileId(tile.Zoom, (int)tile.TileCoordinate.x, (int)tile.TileCoordinate.y),
MapId = _mapId
};

var vectorTile = new Mapbox.Map.VectorTile();
vectorTile.Initialize(parameters, () => {
if (vectorTile.HasError) {
Debug.Log(vectorTile.ExceptionsAsString);
return;
}
var vectorTile = new Mapbox.Map.VectorTile();
vectorTile.Initialize(parameters, () =>
{
if (vectorTile.HasError)
{
Debug.Log(vectorTile.ExceptionsAsString);
return;
}

foreach (var layerName in vectorTile.Data.LayerNames()) {
if (_layerBuilder.ContainsKey(layerName)) {
foreach (var builder in _layerBuilder[layerName]) {
if (builder.Active)
builder.Create(vectorTile.Data.GetLayer(layerName), tile);
}
}
}
});
}
}
foreach (var layerName in vectorTile.Data.LayerNames())
{
if (_layerBuilder.ContainsKey(layerName))
{
foreach (var builder in _layerBuilder[layerName])
{
if (builder.Active)
builder.Create(vectorTile.Data.GetLayer(layerName), tile);
}
}
}
});
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ public class TerrainFactory : Factory
private Dictionary<Vector2, UnityTile> _tiles;
private Vector2 _stitchTarget;

public override void Initialize(IFileSource fs)
public override void Initialize(IFileSource fs, WorldParameters parameters)
{
base.Initialize(fs);
base.Initialize(fs, parameters);
_tiles = new Dictionary<Vector2, UnityTile>();
}

Expand Down
Loading