public void push(NodesStructure a, int i, ColumnNodes[] b) { if (b[i] == null) { b[i] = new ColumnNodes(); b[i].Columnnode = new List <NodesStructure>(); b[i].Columnnode.Add(a); } else { b[i].Columnnode.Add(a); } }
int ascendingBreadth(NodesStructure a, NodesStructure b) { if ((a.y0 - b.y0) == 0) { return(0); } if ((a.y0 - b.y0) < 0) { return(-1); } if ((a.y0 - b.y0) > 0) { return(1); } return((int)(a.y0 - b.y0)); }
private void reorderNodeLinks(NodesStructure source) { /* if (linkSort === undefined) * {*/ foreach (LinksStructure a in source.TargetLinks) { a.SourceNode.SourceLinks.Sort(ascendingTargetBreadth); } foreach (LinksStructure a in source.SourceLinks) { a.TargetNode.TargetLinks.Sort(ascendingSourceBreadth); } /* }*/ }
public double sourceTop(NodesStructure Sourcenode, NodesStructure Targetnode) { var y = Targetnode.y0 - (Targetnode.TargetLinks.Count - 1) * py / 2; foreach (LinksStructure a in Targetnode.TargetLinks) { if (a.SourceNode.Equals(Sourcenode)) { break; } y += a.width + py; } foreach (LinksStructure a in Sourcenode.SourceLinks) { if (a.TargetNode.Equals(Targetnode)) { break; } y -= a.width; } return(y); }
private double targetTop(NodesStructure source, NodesStructure target) { var y = source.y0 - (source.SourceLinks.Count - 1) * py / 2; foreach (LinksStructure a in source.SourceLinks) { if (a.TargetNode.Equals(target)) { break; } y += a.width + py; } foreach (LinksStructure a in target.TargetLinks) { if (a.SourceNode.Equals(source)) { break; } y -= a.width; } return(y); }
public int justify(NodesStructure a, int n) { return(a.SourceLinks.Count > 0 ? a.depth : n - 1); }
private double center(NodesStructure a) { return(a.TargetLinks.Count != 0 ? a.depth : a.SourceLinks.Count != 0 ? a.SourceLinks.Min(c => c.TargetNode.depth) - 1 : 0); }
private double right(NodesStructure a, int x) { return(x - 1 - a.height); }
private double left(NodesStructure a) { return(a.depth); }
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; } }
public List <GameObject> AddGraphVisual(Vector2 graphPosition, float Width, float barHight, string tooltipText, NodesStructure a, int i) { GameObject barGameObject = CreateBar(graphPosition, Width, barHight, a, i); BarChartVisualObject barChartVisualObject = new BarChartVisualObject(barGameObject, Width, barHight); barChartVisualObject.SetGraphVisualObjectInfo(graphPosition, Width, barHight, tooltipText); Button_UI barButtonUI = barGameObject.AddComponent <Button_UI>(); barButtonUI.MouseOverOnceFunc += () => { /* ShowTooltip_Static(tooltipText, graphPosition);*/ }; // Hide Tooltip on Mouse Out barButtonUI.MouseOutOnceFunc += () => { HideTooltip_Static(); }; DragNode node = barGameObject.AddComponent <DragNode>(); node.setRectTransform(barGameObject.GetComponent <RectTransform>(), this.gameObject); node.setNodeStructure(a, Width, barHight); return(new List <GameObject>() { barGameObject }); }
private GameObject CreateBar(Vector2 graphPosition, float barWidth, float barHight, NodesStructure Node, int i) { GameObject gameObject = new GameObject("node:" + Node.name, typeof(Image)); gameObject.GetComponent <Image>().color = RandomColor1(); gameObject.transform.SetParent(graphContainer, false); gameObject.transform.SetSiblingIndex(0); RectTransform rectTransform = gameObject.GetComponent <RectTransform>(); rectTransform.anchoredPosition = graphPosition; rectTransform.sizeDelta = new Vector2(barWidth, barHight); rectTransform.anchorMax = new Vector2(0, 0); rectTransform.anchorMin = new Vector2(0, 0); barlist[i] = gameObject; GameObject test = new GameObject("text", typeof(Text)); test.GetComponent <Text>().fontSize = textFontSize; test.GetComponent <Text>().font = Resources.GetBuiltinResource <Font>("Arial.ttf"); test.GetComponent <Text>().color = Color.green; test.GetComponent <Text>().text = Node.name; test.transform.SetParent(gameObject.transform); test.gameObject.GetComponent <RectTransform>().sizeDelta = new Vector2(100, 20); test.transform.localPosition = new Vector3(60, 0, 0); return(gameObject); }
private void updateBarAndLink(Vector2 graphPosition, float barWidth, float barHight, NodesStructure Node, int i, bool drag) { GameObject gameObject = GameObjectList[i].gameObject; if (drag == false) { gameObject.GetComponent <Image>().color = RandomColor1(); } else { } gameObject.transform.SetParent(graphContainer, false); RectTransform rectTransform = gameObject.GetComponent <RectTransform>(); rectTransform.anchoredPosition = graphPosition; rectTransform.sizeDelta = new Vector2(barWidth, barHight); rectTransform.anchorMax = new Vector2(0, 0); rectTransform.anchorMin = new Vector2(0, 0); DragNode node = gameObject.GetComponent <DragNode>(); node.setRectTransform(gameObject.GetComponent <RectTransform>(), this.gameObject); node.setNodeStructure(Node, barWidth, barHight); }
/* * Method name: onDrag * Argument: * Method description: */ public void setNodeStructure(NodesStructure node, float width, float hight) { a = node; nodewidth = width; nodeheight = hight; }