// Start is called before the first frame update void Start() { root_CovidNode = JsonMapper.ToObject <CovidNode>(data_covidJson.text); node_Position_Dictionary = JsonMapper.ToObject <Dictionary <string, Vector3> >(data_nodePos.text); Debug.Log("Total Nodes : " + node_Position_Dictionary.Count); obj_metaInfo = JsonMapper.ToObject <NodeMetaInfo[]>(text_metaInfo.text); for (int i = 0; i < obj_metaInfo.Length; i++) { if (!Node_MetaInfo_Dictionary.ContainsKey(obj_metaInfo[i].Strain)) { Node_MetaInfo_Dictionary.Add(obj_metaInfo[i].Strain, obj_metaInfo[i]); } if (CountryAndCounts.ContainsKey(obj_metaInfo[i].Country)) { CountryAndCounts[obj_metaInfo[i].Country].NumberOfAffected += 1; } else { Color32 color = new Color32( (byte)Random.Range(0, 255f), (byte)Random.Range(0, 255f), (byte)Random.Range(0, 255f), (byte)255f ); NetworkCountries countryInfo = new NetworkCountries(obj_metaInfo[i].Country, color, 1); CountryAndCounts.Add(obj_metaInfo[i].Country, countryInfo); } } Debug.Log("Total countries : " + CountryAndCounts.Count); foreach (var entry in CountryAndCounts) { Debug.Log(entry.Key + " " + entry.Value.NumberOfAffected); } //Generating RootNode Vector3 pos = Vector3.zero; if (node_Position_Dictionary.ContainsKey(root_CovidNode.name)) { pos = node_Position_Dictionary[root_CovidNode.name]; Go_RootNode = Instantiate(prefab_Node); //, Vector3.zero, Quaternion.identity) as GameObject; Go_RootNode.transform.SetParent(transform); Go_RootNode.transform.localPosition = pos; // Vector3.zero; Go_RootNode.GetComponent <NodeInstance>().Init(0, root_CovidNode.name, null); StartCoroutine(LoadNetwork()); } else { Debug.LogError("RootNode name not found in dictionary !"); } }
// Start is called before the first frame update void Start() { covidNode = JsonUtility.FromJson <CovidNode>(covidJson.text); //var tree = new Parser("((B:0.2,(C:0.3,D:0.4)E:0.5)A:0.1)F;").ParseTree(); //var tree = new Parser(treeData.text).ParseTree(); //var tree = new Parser("((A:1, B:2):3, C:4)").ParseTree(); //var leaf = tree as Leaf; //Debug.Log("Name : " + tree.Length + ", tree.SubBranches.Count: " + tree.SubBranches.Count); //PrintNode(tree.SubBranches); }
void GenerateDescedants(int level, Transform startNode, CovidNode node) { startNode.name = node.name; if (level > MAX_LEVEL) { return; } if (node.children == null) { return; } for (int i = 0; i < node.children.Count; i++) { Vector3 pos = Vector3.zero; if (node_Position_Dictionary.ContainsKey(node.children[i].name)) { float factor = 100; pos = node_Position_Dictionary[node.children[i].name] / factor; GameObject descedantNode = Instantiate(prefab_Node);// pos, Quaternion.identity) as GameObject; descedantNode.transform.SetParent(startNode.transform); descedantNode.transform.localPosition = pos; //descedantNode.transform.localScale /= 10; GameObject edge = Instantiate(prefab_Edge);//, startNode.position, Quaternion.identity); // edge.transform.SetParent(startNode.transform); edge.transform.localPosition = Vector3.zero; edge.GetComponent <EdgeComponent>().Init(startNode, descedantNode.transform); LineRenderer lr = edge.GetComponent <LineRenderer>(); lr.SetPosition(0, Vector3.zero); lr.SetPosition(1, descedantNode.transform.localPosition);// / factor); lr.startWidth = lr.endWidth = 0.008f; descedantNode.GetComponent <NodeInstance>().Init(level, node.children[i].name, edge); //DrawEdge //graph.NewEdge(startNode, descedantNode); if (node.children[i] != null) { GenerateDescedants(level + 1, descedantNode.transform, node.children[i]); } } else { Debug.LogError("Node name : " + node.children[i].name + ", not found in dictionary !"); } } }