51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace GISTech.GISTerrainLoader
|
|
{
|
|
public class WayPoints : MonoBehaviour
|
|
{
|
|
public bool RandomPoints;
|
|
|
|
public int PointsNumber;
|
|
|
|
public List<DVector3> RealWorldPoints = new List<DVector3>();
|
|
|
|
[HideInInspector]
|
|
public List<Vector3> UnityWorldSpacePoints = new List<Vector3>();
|
|
|
|
private void Start()
|
|
{
|
|
}
|
|
|
|
public void ConvertLatLonToSpacePosition(GISTerrainContainer Container, bool InstantiateGameObjects)
|
|
{
|
|
if (RandomPoints)
|
|
{
|
|
RealWorldPoints.Clear();
|
|
for (int i = 0; i <= PointsNumber; i++)
|
|
{
|
|
float num = Random.Range((float)Container.data.TLOriginal_Coor.x, (float)Container.data.DROriginal_Coor.x);
|
|
float num2 = Random.Range((float)Container.data.TLOriginal_Coor.y, (float)Container.data.DROriginal_Coor.y);
|
|
float num3 = Random.Range(Container.data.MinMaxElevation.y - 30f, Container.data.MinMaxElevation.y + 30f);
|
|
RealWorldPoints.Add(new DVector3(num, num2, num3));
|
|
}
|
|
}
|
|
UnityWorldSpacePoints = new List<Vector3>();
|
|
base.transform.DestroyChildren();
|
|
foreach (DVector3 realWorldPoint in RealWorldPoints)
|
|
{
|
|
Vector3 vector = GISTerrainLoaderGeoConversion.RealWorldCoordinatesToUnityWorldSpace(Container, realWorldPoint.ToDVector2(), (float)realWorldPoint.z, SetElevationMode.RelativeToSeaLevel);
|
|
UnityWorldSpacePoints.Add(vector);
|
|
if (InstantiateGameObjects)
|
|
{
|
|
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
|
obj.name = "Point_" + RealWorldPoints.IndexOf(realWorldPoint);
|
|
obj.transform.position = vector;
|
|
obj.transform.parent = base.transform;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|