public void GenerateSceneGraph() { if (regionMap != null) { DestroyImmediate(regionMap); } // Merge all feature meshes List <FeatureMesh> features = new List <FeatureMesh>(); foreach (var task in tasks) { if (task.Generation == generation) { features.AddRange(task.Data); } } tasks.Clear(); nTasksForArea = 0; regionMap = new GameObject(RegionName); var sceneGraph = new SceneGraph(regionMap, GroupOptions, GameObjectOptions, features); sceneGraph.Generate(); }
void OnTaskReady(TileTask readyTask) { tasks.Add(readyTask); if (tasks.Count == nTasksForArea) { tasks.Clear(); SceneGraph.Generate(regionMap, null, gameObjectOptions); } }
public void GenerateSceneGraph() { /* * List<FeatureMesh> meshList = new List<FeatureMesh>(); * * FeatureMesh featureMesh = new FeatureMesh("NameGama1", "GamaBlocks", "NameGama3", "Blok1"); meshList.Add(featureMesh); * featureMesh = new FeatureMesh("NameGama1", "GamaBlocks", "GamaBlocks", "Block2"); meshList.Add(featureMesh); * featureMesh = new FeatureMesh("NameGama1", "GamaBlocks", "Na6", "Block3"); meshList.Add(featureMesh); * featureMesh = new FeatureMesh("NameGama1", "GamaRoads", "NameGama9", "Road1"); meshList.Add(featureMesh); * * featureMesh = new FeatureMesh("NameGama11", "GamaRoads", "NameGama13", "Road2"); * // featureMesh.Mesh = new MeshData(); * * MeshData meshData = featureMesh.Mesh; * // List<Submesh> Submeshes = new List<Submesh>(); * List<Vector3> Vertices = new List<Vector3>(); * List<Vector2> UVs = new List<Vector2>(); * List<int> Indices = new List<int>(); * * List<MeshData.Submesh> Submeshes = new List<MeshData.Submesh>(); * MeshData.Submesh submesh = new MeshData.Submesh(); * * * //Material Material = new Material(contents: "UVGrid"); * submesh.Indices = Indices; * Submeshes.Add(submesh); * * meshData.addGamaMeshData(Vertices, UVs, Submeshes); * featureMesh.Mesh = meshData; * * //meshData.Meshes * * meshList.Add(featureMesh); * * * featureMesh = new FeatureMesh("NameGama11", "GamaRoads", "NameGama13", "Cube3"); * // featureMesh.Mesh = new MeshData(); * * meshData = featureMesh.Mesh; * * Vector2[] vertices2D = new Vector2[] { * new Vector2(0,0), * new Vector2(10,0), * new Vector2(10,10), * new Vector2(0,10), * }; * Triangulator triangulator = new Triangulator(vertices2D); * Vertices = triangulator.get3dVerticesList(2); * Indices = triangulator.getTriangulesList(); * * UVs = new List<Vector2>(); * * UVs.AddRange(new List<Vector2> { * new Vector2(0.0f,0.2f),new Vector2(0.0f,0.2f),new Vector2(0.0f,0.0f),new Vector2(0.0f,0.0f),new Vector2(0.1f,0.2f),new Vector2(0.0f,0.2f),new Vector2(0.1f,0f),new Vector2(0.0f,0.0f) * }); * Submeshes = new List<MeshData.Submesh>(); * submesh = new MeshData.Submesh(); * * submesh.Indices = Indices; * Submeshes.Add(submesh); * * meshData.addGamaMeshData(Vertices, UVs, Submeshes); * featureMesh.Mesh = meshData; * meshList.Add(featureMesh); * * // --------------------------------------------------------------------------------- */ if (regionMap != null) { DestroyImmediate(regionMap); Debug.Log("regionMap is Null"); } // Merge all feature meshes List <FeatureMesh> features = new List <FeatureMesh>(); foreach (var task in tasks) { if (task.Generation == generation) { features.AddRange(task.Data); } } tasks.Clear(); nTasksForArea = 0; //features.AddRange(meshList); regionMap = new GameObject(RegionName); var sceneGraph = new SceneGraph(regionMap, GroupOptions, GameObjectOptions, features); sceneGraph.Generate(); }
public void DrawNewAgents() { List <FeatureMesh> meshList = new List <FeatureMesh>(); foreach (var agent in GamaManager.gamaAgentList) { if (!agent.isDrawed) { agent.isDrawed = true; FeatureMesh featureMesh = new FeatureMesh("NameGama1", "GamaRoads", "NameGama13", agent.agentName); List <Vector3> Vertices = new List <Vector3>(); List <Vector2> UVs = new List <Vector2>(); List <int> Indices = new List <int>(); MeshData meshData = featureMesh.Mesh; List <MeshData.Submesh> Submeshes = new List <MeshData.Submesh>(); MeshData.Submesh submesh = new MeshData.Submesh(); Vector2[] vertices2D = agent.agentCoordinate.getVector2Coordinates(); Triangulator triangulator = new Triangulator(vertices2D); Vertices = triangulator.get3dVerticesList(vertices2D, 2); Indices = triangulator.getTriangulesList(); UVs = new List <Vector2>(); Vector3[] VerticesArray = Vertices.ToArray(); Vector2[] UvArray = UvCalculator.CalculateUVs(VerticesArray, 1); UVs = UvArray.ToList(); submesh.Indices = Indices; Submeshes.Add(submesh); meshData.addGamaMeshData(Vertices, UVs, Submeshes); featureMesh.Mesh = meshData; meshList.Add(featureMesh); meshList.Add(featureMesh); } } if (regionMap != null) { // DestroyImmediate(regionMap); Debug.Log("regionMap is Null"); } // Merge all feature meshes List <FeatureMesh> features = new List <FeatureMesh>(); /* * foreach (var task in tasks) * { * if (task.Generation == generation) * { * features.AddRange(task.Data); * } * } * * tasks.Clear(); * nTasksForArea = 0; */ features.AddRange(meshList); regionMap = new GameObject(RegionName); var sceneGraph = new SceneGraph(regionMap, GroupOptions, GameObjectOptions, features); sceneGraph.Generate(); }