// Use this for initialization void Start() { PlaneCreator pc = new PlaneCreator(new Vector3(0, 0, 0), 2, 2, 10, prefab); Position[] positions = Position.PositionCreator(new Position(0, 0, new PTime(0, 0)), 2, 2, 10, 10); for (int i = 0; i < positions.Length; i++) { Debug.Log("position" + i + " lon,lat = " + positions[i].lontitute + "," + positions[i].latitute + "," + positions[i].time); } }
void Start() { myTransform = transform; taskExecutionManager.Initialize(); chunkManager.Initialize(); worldMatrix = Matrix4x4.TRS(myTransform.position, myTransform.rotation, Vector3.one); gridMesh = PlaneCreator.Create(chunkSize, pointsNumber); triangles = gridMesh.triangles; uvs = gridMesh.uv; tangents = gridMesh.tangents; var fnsuComponents = myTransform.GetComponents <FastNoiseSIMDUnity>(); fastNoise1 = fnsuComponents[0].fastNoiseSIMD; fastNoise2 = fnsuComponents[1].fastNoiseSIMD; taskExecutionManager.noiseGroup[0] = new NoiseGroup(fastNoise1, fastNoise2); for (int i = 1; i < taskExecutionManager.ranTaskCount; i++) { var fn1 = new FastNoiseSIMD(); var fn2 = new FastNoiseSIMD(); fnsuComponents[0].InitNoise(fn1); fnsuComponents[1].InitNoise(fn2); taskExecutionManager.noiseGroup[i] = new NoiseGroup(fn1, fn2); } float f = Time.realtimeSinceStartup; int counter = 0; int halfWorldSize = worldSize / 2; for (int x = -halfWorldSize; x < halfWorldSize; x += chunkSize) { for (int z = -halfWorldSize; z < halfWorldSize; z += chunkSize) { Vector3 position = new Vector3(x, 0, z); Chunk chunk = chunkManager.CreateChunkGameobject($"Chunk {counter}", myTransform, position, Quaternion.identity); chunk.absolutePosition = position; var verts = gridMesh.vertices; Generate(chunk.chunkName, verts, chunk.chunkData.transformationMatrix, x, 0, z); counter++; } } Debug.Log($"Default : {(Time.realtimeSinceStartup - f) * 1000.0f} ms"); }
public void Refresh(Position centerPoint) { this.centerPoint = centerPoint; ratio = Mathf.Cos(Mathf.Deg2Rad * centerPoint.latitute); float onesecond = ((360 * 3600) / (size * Mathf.Pow(2, zoom))); halfLon = (onesecond * size / 3600); fullLon = halfLon * 2; halfLat = halfLon * ratio; fullLat = halfLat * 2; PlaneCreator pc = new PlaneCreator(new Vector3(0, 0, 0), 6, 4, 10, planePrefab); planes = pc.planes; points = Position.PositionCreator(centerPoint, 6, 4, fullLat, fullLon); }
public Track Best(string startP, string finishP, Type deliv, int volume) { GlobalData data = GlobalData.GetInstance(); int start = Decr(startP); int finish = Decr(finishP); int[][] mat = new int[data.SIZE][]; for (int i = 0; i < data.SIZE; i++) { mat[i] = new int[data.SIZE]; } mat = MatrixUpd(deliv); int[] path = new int[data.SIZE]; for (int i = 0; i < data.SIZE; i++) { path[i] = -1; } path = Optim(mat, start, finish); int count = 0; for (int i = 0; i < data.SIZE; i++) { if (path[i] != -1) { count++; } else { break; } } CarCreator carCreator = CarCreator.GetInstance(); TrainCreator trainCreator = TrainCreator.GetInstance(); PlaneCreator planeCreator = PlaneCreator.GetInstance(); switch (count) { case 1: { Car car1 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[0]])) { car1 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[0], path[1]]) as Car; } } Track track = new Track(); track.AddTransport(volume, car1); return(track); } case 3: { Car car1 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[0]])) { car1 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[0], path[1]]) as Car; } } Car car2 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[2]])) { car2 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[2], path[3]]) as Car; } } Train train1 = trainCreator.CreateTransport() as Train; Plane plane1 = planeCreator.CreateTransport() as Plane; Track track = new Track(); foreach (var it in data.table) { if (it.Key.Contains(data.points[path[1]]) && data.points[path[1]].Contains("TS")) { train1 = trainCreator.CreateTransport( data.tableCost[it.Value * 3 + 1], data.matrixDist[path[1], path[2]]) as Train; track.AddTransport(volume, car1, car2, train1); } if (it.Key.Contains(data.points[path[1]]) && data.points[path[1]].Contains("AP")) { plane1 = planeCreator.CreateTransport( data.tableCost[it.Value * 3], data.matrixDist[path[1], path[2]]) as Plane; track.AddTransport(volume, car1, car2, plane1); } } return(track); } case 5: { Car car1 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[0]])) { car1 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[0], path[1]]) as Car; } } Train train1 = trainCreator.CreateTransport() as Train; Plane plane1 = planeCreator.CreateTransport() as Plane; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[1]]) && data.points[path[1]].Contains("TS")) { train1 = trainCreator.CreateTransport( data.tableCost[it.Value * 3 + 1], data.matrixDist[path[1], path[2]]) as Train; } if (it.Key.Contains(data.points[path[1]]) && data.points[path[1]].Contains("AP")) { plane1 = planeCreator.CreateTransport( data.tableCost[it.Value * 3], data.matrixDist[path[1], path[2]]) as Plane; } } Car car2 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[2]])) { car2 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[2], path[3]]) as Car; } } foreach (var it in data.table) { if (it.Key.Contains(data.points[path[3]]) && data.points[path[3]].Contains("AP")) { plane1 = planeCreator.CreateTransport( data.tableCost[it.Value * 3], data.matrixDist[path[3], path[4]]) as Plane; } if (it.Key.Contains(data.points[path[3]]) && data.points[path[3]].Contains("TS")) { train1 = trainCreator.CreateTransport( data.tableCost[it.Value * 3 + 1], data.matrixDist[path[3], path[4]]) as Train; } } Car car3 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[4]])) { car3 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[4], path[5]]) as Car; } } Track track = new Track(); track.AddTransport(volume, car1, car2, car3, train1, plane1); return(track); } case 7: { Car car1 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[0]])) { car1 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[0], path[1]]) as Car; } } Train train1 = trainCreator.CreateTransport() as Train; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[1]])) { train1 = trainCreator.CreateTransport( data.tableCost[it.Value * 3 + 1], data.matrixDist[path[1], path[2]]) as Train; } } Car car2 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[2]])) { car2 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[2], path[3]]) as Car; } } Plane plane1 = planeCreator.CreateTransport() as Plane; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[3]])) { plane1 = planeCreator.CreateTransport( data.tableCost[it.Value * 3], data.matrixDist[path[3], path[4]]) as Plane; } } Car car3 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[4]])) { car3 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[4], path[5]]) as Car; } } Train train2 = trainCreator.CreateTransport() as Train; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[5]])) { train2 = trainCreator.CreateTransport( data.tableCost[it.Value * 3 + 1], data.matrixDist[path[5], path[6]]) as Train; } } Car car4 = carCreator.CreateTransport() as Car; foreach (var it in data.table) { if (it.Key.Contains(data.points[path[6]])) { car4 = carCreator.CreateTransport( data.tableCost[it.Value * 3 + 2], data.matrixDist[path[6], path[7]]) as Car; } } Track track = new Track(); track.AddTransport(volume, car1, car2, car3, car4, train1, train2, plane1); return(track); } default: { return(null); } } }
public StructHelper makeFeature(GameObject fetureTemplate, GameObject featurePredictionsTemplate, Dictionary <string, Dictionary <string, ushort[][]> > feature) { FeatureMapData featureMapData = new FeatureMapData(); int index; int counter; GameObject go; initStructObjects(); featureMapData.setCoordX(0); featureMapData.setCoordY(0); featureMapData.setCoordZ(0); int counterLayers = 0; int scalingFactor = 40; var labels = new List <string>(feature["labels"].Keys); foreach (KeyValuePair <string, Dictionary <string, ushort[][]> > layer in feature) { counter = 0; counterLayers = counterLayers + 1; featureMapData.setCoordScale(scalingFactor / counterLayers); Tuple <int, int> divisors = closestDivisors(layer.Value.Count); featureMapData.setCoordY(0); featureMapData.setCoordX(0); featureMapData.setCoordZ(featureMapData.getCoordZ() - 200); foreach (KeyValuePair <string, ushort[][]> featureMap in layer.Value) { featureMapData.setHeight(featureMap.Value.GetLength(0)); featureMapData.setWidth(featureMap.Value.GetLength(0)); featureMapData.setName(featureMap.Key); featureMapData.setCoordY(featureMapData.getCoordY() + featureMapData.getWidth() + featureMapData.getWidth()); if (featureMapData.getName().Contains("fc") || featureMapData.getName().Contains("dense") || featureMapData.getName().Contains("pred")) { index = 0; divisors = closestDivisors(featureMap.Value[0].Length); var name = featureMapData.getName(); var featureMaps = featureMap.Value[0]; featureMapData.setCoordX(0); featureMapData.setCoordY(0); for (int i = 0; i < divisors.Item1; i++) { featureMapData.setCoordX(featureMapData.getCoordX() + 60); featureMapData.setCoordY(0); for (int j = 0; j < divisors.Item2; j++) { go = GameObject.Instantiate(featurePredictionsTemplate); go.name = featureMapData.getName(); CubeCreator cube = go.AddComponent <CubeCreator>(); featureMapData.setCoordY(featureMapData.getCoordY() + 60); if (featureMapData.getName().Contains("pred")) { cube.createCube(featureMapData, name + "_" + labels[index], featureMaps[index]); structHelper.LastLayersPredictions.Add(name + "_" + index.ToString(), cube); } else { cube.createCube(featureMapData, name + "_" + index.ToString(), featureMaps[index]); structHelper.LastLayersPredictions.Add(name + "_" + index.ToString(), cube); } index++; } } } else { go = GameObject.Instantiate(fetureTemplate); go.name = featureMapData.getName(); PlaneCreator plane = go.GetComponent <PlaneCreator>(); plane.createPlane(featureMapData, featureMap.Value); structHelper.convLayers.Add(featureMap.Key, plane); } counter++; if (counter == divisors.Item2) { featureMapData.setCoordY(0); featureMapData.setCoordX(featureMapData.getCoordX() + featureMapData.getHeight() + featureMapData.getHeight()); counter = 0; } } } var parent = GameObject.Find("BackCamera").GetComponent <Camera>().transform.position = new Vector3(800, 800, featureMapData.getCoordZ() - 70); return(structHelper); }
public void Refresh() { ratio = Mathf.Cos(Mathf.Deg2Rad * centerPoint.latitute); float onesecond = ((360 * 3600) / (size * Mathf.Pow(2, zoom))); halfLon = (onesecond * size / 3600); fullLon = halfLon * 2; halfLat = halfLon * ratio; fullLat = halfLat * 2; fiveperLat = 0.005f * 10 / fullLat; fiveperLon = 0.005f * 10 / fullLon; /* * for (int i = 0; i < 25; i++) * { * planes[i] = GameObject.Find("Plane" + i); * * }*/ PlaneCreator pc = new PlaneCreator(new Vector3(0, 0, 0), 6, 4, 10, prefab); planes = pc.planes; //Debug.Log("refresh"); points = Position.PositionCreator(centerPoint, 6, 4, fullLat, fullLon); /* * for (int i = 0; i < points.Length; i++) * { * Debug.Log("points" + i + ":" + points[i].latitute+","+points[i].lontitute+","+points[i].time); * } * * * Position p0 = new Position(centerPoint.latitute + 2 * fullLat, centerPoint.lontitute - 2 * fullLon,0); * Position p1 = new Position(centerPoint.latitute + 2 * fullLat, centerPoint.lontitute - fullLon, 0); * Position p2 = new Position(centerPoint.latitute + 2 * fullLat, centerPoint.lontitute, 0); * Position p3 = new Position(centerPoint.latitute + 2 * fullLat, centerPoint.lontitute + fullLon, 0); * Position p4 = new Position(centerPoint.latitute + 2 * fullLat, centerPoint.lontitute + 2 * fullLon, 0); * Position p5 = new Position(centerPoint.latitute + fullLat, centerPoint.lontitute - 2 * fullLon, 0); * Position p6 = new Position(centerPoint.latitute + fullLat, centerPoint.lontitute - fullLon, 0); * Position p7 = new Position(centerPoint.latitute + fullLat, centerPoint.lontitute, 0); * Position p8 = new Position(centerPoint.latitute + fullLat, centerPoint.lontitute + fullLon, 0); * Position p9 = new Position(centerPoint.latitute + fullLat, centerPoint.lontitute + 2 * fullLon, 0); * Position p10 = new Position(centerPoint.latitute, centerPoint.lontitute - 2 * fullLon, 0); * Position p11 = new Position(centerPoint.latitute, centerPoint.lontitute - fullLon, 0); * Position p12 = new Position(centerPoint.latitute, centerPoint.lontitute, 0); * Position p13 = new Position(centerPoint.latitute, centerPoint.lontitute + fullLon, 0); * Position p14 = new Position(centerPoint.latitute, centerPoint.lontitute + 2 * fullLon, 0); * Position p15 = new Position(centerPoint.latitute - fullLat, centerPoint.lontitute - 2 * fullLon, 0); * Position p16 = new Position(centerPoint.latitute - fullLat, centerPoint.lontitute - fullLon, 0); * Position p17 = new Position(centerPoint.latitute - fullLat, centerPoint.lontitute, 0); * Position p18 = new Position(centerPoint.latitute - fullLat, centerPoint.lontitute + fullLon, 0); * Position p19 = new Position(centerPoint.latitute - fullLat, centerPoint.lontitute + 2 * fullLon, 0); * Position p20 = new Position(centerPoint.latitute - 2 * fullLat, centerPoint.lontitute - 2 * fullLon, 0); * Position p21 = new Position(centerPoint.latitute - 2 * fullLat, centerPoint.lontitute - fullLon, 0); * Position p22 = new Position(centerPoint.latitute - 2 * fullLat, centerPoint.lontitute, 0); * Position p23 = new Position(centerPoint.latitute - 2 * fullLat, centerPoint.lontitute + fullLon, 0); * Position p24 = new Position(centerPoint.latitute - 2 * fullLat, centerPoint.lontitute + 2 * fullLon, 0); * * Position[] temp = {p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24}; * points = temp; */ }