private GameObject CreateLink(LinksStructure link) { GameObject lineobject = new GameObject("line"); lineobject.AddComponent <LineRenderer>(); lineobject.transform.SetParent(graphContainer, false); LineRenderer line = lineobject.GetComponent <LineRenderer>(); line.sortingOrder = -9; line.useWorldSpace = false; line.motionVectors = false; line.material = new Material(Shader.Find("Sprites/Default")); line.SetColors(new Color(1, 1, 1, lineAlpha), new Color(1, 1, 1, lineAlpha)); float x0 = (float)link.SourceNode.x1; float x1 = (float)link.TargetNode.x0; float y0 = (float)link.y0; float y1 = (float)link.y1; float width = (float)link.width; /*Debug.Log(width + " " + Node.TargetLinks[z].SourceNode.name);*/ Vector2 n1 = new Vector2(x0, y0); Vector2 n2 = new Vector2((x0 + x1) / 2, y0); Vector2 n3 = new Vector2((x0 + x1) / 2, y1); Vector2 n4 = new Vector2(x1, y1); DrawLinearCurve(line, n1, n2, n3, n4, width); return(lineobject); }
int ascendingTargetBreadth(LinksStructure a, LinksStructure b) { if (ascendingBreadth(a.TargetNode, b.TargetNode) == 0) { return(a.index - b.index); } return(ascendingBreadth(a.TargetNode, b.TargetNode)); /* || a.index - b.index;*/ }
int ascendingSourceBreadth(LinksStructure a, LinksStructure b) { if (ascendingBreadth(a.SourceNode, b.SourceNode) == 0) { return(a.index - b.index); } return(ascendingBreadth(a.SourceNode, b.SourceNode)); /*|| a.index - b.index;*/ }
public List <GameObject> AddGraphLineVisual(string tooltipText, LinksStructure a) { GameObject lineGameObject = CreateLink(a); List <GameObject> temp = AddCollider(6, lineGameObject, tooltipText); return(new List <GameObject>() { lineGameObject }); }
private void upDateLine(string tooltipText, LinksStructure a, int i, NodesStructure[] NodesStructures) { GameObject lineobject = GameLineObjectList[i].gameObject; LineRenderer line = lineobject.GetComponent <LineRenderer>(); foreach (var node in NodesStructures) { double ya = node.y0; double yb = ya; foreach (var link in node.SourceLinks) { link.y0 = ya + link.width / 2; ya += link.width; } foreach (var link in node.TargetLinks) { link.y1 = yb + link.width / 2; yb += link.width; } } float x0 = (float)a.SourceNode.x1; float x1 = (float)a.TargetNode.x0; float y0 = (float)a.y0; float y1 = (float)a.y1; float width = (float)a.width; /*Debug.Log(width + " " + Node.TargetLinks[z].SourceNode.name);*/ Vector2 n1 = new Vector2(x0, y0); Vector2 n2 = new Vector2((x0 + x1) / 2, y0); Vector2 n3 = new Vector2((x0 + x1) / 2, y1); Vector2 n4 = new Vector2(x1, y1); DrawLinearCurve(line, n1, n2, n3, n4, width); updateCollider(6, lineobject, tooltipText); }
public void loadDate(string transportFilepath) { Boolean FileRightFlag = true; graphContainer = transform.parent.gameObject.GetComponent <RectTransform>(); x0 = 10; y0 = 10; x1 = x0 + graphContainer.sizeDelta.x - 10; y1 = graphContainer.sizeDelta.y + y0 - 20; string filepath = ""; if (transportFilepath != "") { filepath = transportFilepath; if (filepath != "") { if (!filepath.EndsWith(".json")) { Debug.Log(filepath + " is not a json file"); FileRightFlag = false; } } } else { if (jsFile != null) { if (transportFilepath == "") { filepath = UnityEditor.AssetDatabase.GetAssetPath(jsFile); } if (!filepath.EndsWith(".json")) { Debug.Log(filepath + " is not a json file"); FileRightFlag = false; } } } if (filepath != "" && FileRightFlag == true) { StreamReader streamreader = new StreamReader(filepath); JsonReader js = new JsonReader(streamreader); Root r = JsonMapper.ToObject <Root>(js); NodesStructures = new NodesStructure[r.nodes.Count]; for (int i = 0; i < r.nodes.Count; i++) { NodesStructures[i] = new NodesStructure(); NodesStructures[i].name = r.nodes[i].name; NodesStructures[i].layer = 999; NodesStructures[i].index = i; NodesStructures[i].SourceLinks = new List <LinksStructure>(); NodesStructures[i].TargetLinks = new List <LinksStructure>(); } LinksStructures = new LinksStructure[r.links.Count]; for (int i = 0; i < r.links.Count; i++) { /* NodesStructures[r.links[i].target].addTargetLink(r.links[i].source, r.links[i].target, r.links[i].value,i); * NodesStructures[r.links[i].source].addSourceLink(r.links[i].source, r.links[i].target, r.links[i].value,i);*/ LinksStructures[i] = new LinksStructure(); LinksStructures[i].value = r.links[i].value; LinksStructures[i].index = i; LinksStructures[i].SourceNode = NodesStructures[r.links[i].source]; LinksStructures[i].TargetNode = NodesStructures[r.links[i].target]; NodesStructures[r.links[i].source].SourceLinks.Add(LinksStructures[i]); NodesStructures[r.links[i].target].TargetLinks.Add(LinksStructures[i]); } if (linkSort != null) { for (int i = 0; i < NodesStructures.Length; i++) { NodesStructures[i].SourceLinks.Sort((IComparer <LinksStructure>)linkSort); NodesStructures[i].TargetLinks.Sort((IComparer <LinksStructure>)linkSort); } } for (int i = 0; i < NodesStructures.Length; i++) { NodesStructures[i].getvalue(); } ComputeNodeHeights(); ComputeNodeDepths(); ComputeNodeBreadths(); computeLinkBreadths(); Debug.Log("--------------------------------"); for (int i = 0; i < NodesStructures.Length; i++) { NodesStructures[i].tostring(); } gameObject.SetActive(false); gameObject.transform.parent.GetComponent <NodeShow>().reloadFlag = true; } }
public void loadHtmlData(string JsonContent) { if (JsonContent == "") { Debug.Log("Online Json file is null"); } else { JsonReader js = new JsonReader(new StringReader(JsonContent)); Root r = JsonMapper.ToObject <Root>(js); NodesStructures = new NodesStructure[r.nodes.Count]; for (int i = 0; i < r.nodes.Count; i++) { NodesStructures[i] = new NodesStructure(); NodesStructures[i].name = r.nodes[i].name; NodesStructures[i].layer = 999; NodesStructures[i].index = i; NodesStructures[i].SourceLinks = new List <LinksStructure>(); NodesStructures[i].TargetLinks = new List <LinksStructure>(); } LinksStructures = new LinksStructure[r.links.Count]; for (int i = 0; i < r.links.Count; i++) { /* NodesStructures[r.links[i].target].addTargetLink(r.links[i].source, r.links[i].target, r.links[i].value,i); * NodesStructures[r.links[i].source].addSourceLink(r.links[i].source, r.links[i].target, r.links[i].value,i);*/ LinksStructures[i] = new LinksStructure(); LinksStructures[i].value = r.links[i].value; LinksStructures[i].index = i; LinksStructures[i].SourceNode = NodesStructures[r.links[i].source]; LinksStructures[i].TargetNode = NodesStructures[r.links[i].target]; NodesStructures[r.links[i].source].SourceLinks.Add(LinksStructures[i]); NodesStructures[r.links[i].target].TargetLinks.Add(LinksStructures[i]); } if (linkSort != null) { for (int i = 0; i < NodesStructures.Length; i++) { NodesStructures[i].SourceLinks.Sort((IComparer <LinksStructure>)linkSort); NodesStructures[i].TargetLinks.Sort((IComparer <LinksStructure>)linkSort); } } for (int i = 0; i < NodesStructures.Length; i++) { NodesStructures[i].getvalue(); } ComputeNodeHeights(); ComputeNodeDepths(); ComputeNodeBreadths(); computeLinkBreadths(); /* Debug.Log("--------------------------------"); * for (int i = 0; i < NodesStructures.Length; i++) * { * NodesStructures[i].tostring(); * }*/ gameObject.SetActive(false); gameObject.transform.parent.GetComponent <NodeShow>().reloadFlag = true; } }