//public string CoverImageUrl { get; set; } To be implemented #endregion #region Methods public SectionNode Section(int index) { if (index > InnerNodes.Count()) { throw new Exception("Section does not exist"); } else { return((SectionNode)InnerNodes[index]); } }
/* Depth-first search */ private void DFS(ushort node) { noInfiniteRecursion++; if (noInfiniteRecursion > RECURSION_TRESHOLD) { UI.UIWindow.instance.ThrowErrorMsg("Error: DFS method exeeded max recursion limit"); OuterNodes = OuterSegments = InnerNodes = InnerSegments = new List <ushort>(); return; } visitedNodes.Add(node); InnerNodes.Add(node); NetNode netNode = GetNode(node); for (int i = 0; i < MAX_SEGMENTS_PER_NODE; i++) { //Debug.Log(string.Format("NodeID: {0}; segment no. {1}...",node,i)); ushort segment = netNode.GetSegment(i); //Debug.Log(string.Format("ID of that segment is {0}", segment)); if (!segmentExists(segment)) { continue; } NetSegment curSegment = GetSegment(segment); ushort newNode = getOtherNode(node, segment); if (isVisited(newNode)) { continue; } NetNode newNetNode = GetNode(newNode); visitedNodes.Add(newNode); /* Checking, whether the node is inside the roundabout or not. If not, it is added to the edge nodes and the search ends there. */ if (!Ellipse.IsInsideEllipse(newNetNode.m_position)) { OuterNodes.Add(newNode); OuterSegments.Add(segment); } else { InnerNodes.Add(newNode); InnerSegments.Add(segment); DFS(newNode); } } }
public void WriteSectionNodes() { if (InnerNodes != null) { int listLen = InnerNodes.Count(); for (int i = 0; i < listLen; i++) { SectionNode node = (SectionNode)InnerNodes[i]; if (node.Title == null) { writer.WriteComment(" Section "); } else { writer.WriteComment($" Section {i} "); } node.WriteNode(); } } }