// ----------------------------------------------------------------------------------------- /// <summary> /// Handles the actual layout of Broadcaster nodes in the Graph View /// </summary> /// <param name="arrangementType"></param> public void Arrange_Broadcaster_Results(ArrangementTypes arrangementType) { CurrentArrangementType = ArrangementTypes.Vertical; if (arrangementType == ArrangementTypes.Vertical) { var count = 0; Vector2 position = new Vector2(); List <BroadcasterNodeData> eventTypeNodesList = BroadcasterNodes.Values.ToList(); for (int col = 0; col < eventTypeNodesList.Count(); col++) { if (count > 0) { position += new Vector2( 0, VerticalYSpacing_Broadcaster.PropertyValue + (BroadcasterSpacing * eventTypeNodesList[count - 1].TotalButtons) ); } else { position = new Vector2( TranzmitBroadcastBasePosition.x, TranzmitBroadcastBasePosition.y ); } eventTypeNodesList[count].TranzmitNodeEventNode.SetPosition(new Rect(position, Vector2.zero)); count++; if (count == eventTypeNodesList.Count()) { return; } } } if (arrangementType == ArrangementTypes.Grid) { CurrentArrangementType = ArrangementTypes.Grid; float broadcasterSpacing = GetMostBroadcastersInASingleEventtypeNode() * BroadcasterSpacing; int columns = (int)Math.Sqrt(BroadcasterNodes.Count()); int rows = (int)Math.Ceiling(BroadcasterNodes.Count() / (float)columns); // Node index ;) var count = 0; List <BroadcasterNodeData> eventTypeNodesList = BroadcasterNodes.Values.ToList(); for (int col = 0; col < columns; col++) { for (int row = 0; row < rows; row++) { Vector2 position = new Vector2( TranzmitBroadcastBasePosition.x - (row * GridLayoutSpacing_Broadcaster.PropertyValue.x), TranzmitBroadcastBasePosition.y + (col * GridLayoutSpacing_Broadcaster.PropertyValue.y) + (col * broadcasterSpacing)); eventTypeNodesList[count].TranzmitNodeEventNode.SetPosition(new Rect(position, Vector2.zero)); count++; if (count == BroadcasterNodes.Count()) { return; } } } } }
// ----------------------------------------------------------------------------------------- /// <summary> /// Handles the actual layout of Subscriber nodes in the Graph View /// </summary> public void Arrange_Subscriber_Results(ArrangementTypes arrangementType) { CurrentArrangementType = ArrangementTypes.Vertical; if (arrangementType == ArrangementTypes.Vertical) { // Node index ;) var count = 0; Vector2 position = new Vector2(); for (int col = 0; col < SubscriberNodes.Count(); col++) { if (count > 0) { position += new Vector2( 0, VerticalYSpacing_Subscriber.PropertyValue + (SubscriberPortsSpacing * SubscriberNodes[count - 1].PortEdgeEvent.Count()) ); } else { position = new Vector2( TranzmitSubscriberBasePosition.x, TranzmitSubscriberBasePosition.y ); } SubscriberNodes[count].Node.SetPosition(new Rect(position, Vector2.zero)); count++; if (count == SubscriberNodes.Count()) { return; } } } if (arrangementType == ArrangementTypes.Grid) { CurrentArrangementType = ArrangementTypes.Grid; float portSpacing = GetMostSubscribersInASingleSubscriberNode() * SubscriberPortsSpacing; int columns = (int)Math.Sqrt(SubscriberNodes.Count()); int rows = (int)Math.Ceiling(SubscriberNodes.Count() / (float)columns); // Node index ;) var count = 0; for (int col = 0; col < columns; col++) { for (int row = 0; row < rows; row++) { Vector2 position = new Vector2( TranzmitSubscriberBasePosition.x + (row * GridLayoutSpacing_Subscriber.PropertyValue.x), TranzmitSubscriberBasePosition.y + (col * GridLayoutSpacing_Subscriber.PropertyValue.y) + (col * portSpacing)); SubscriberNodes[count].Node.SetPosition(new Rect(position, Vector2.zero)); count++; if (count == SubscriberNodes.Count()) { return; } } } } }