void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) { base.ReadXml(reader); List <TopolotyNode> leftNodes = new List <TopolotyNode>(); foreach (var item in LeftNodes) { leftNodes.Add(new TopolotyNode(item.ConnectableDevice)); } LeftNodes.Clear(); foreach (var item in leftNodes) { LeftNodes.Add(item); } List <TopolotyNode> rightNodes = new List <TopolotyNode>(); foreach (var item in RightNodes) { rightNodes.Add(new TopolotyNode(item.ConnectableDevice)); } RightNodes.Clear(); foreach (var item in rightNodes) { RightNodes.Add(item); } }
public void BindOneWay(BindingNode nextNode) { if (!LeftNodes.Contains(nextNode)) { LeftNodes.Add(nextNode); } nextNode.OneWay = true; }
public rMindBaseNode AddLeftNode() { int currentCount = m_parent.HLines.Max(line => line.LeftNodes.Count); if (LeftNodes.Count + 1 > currentCount) { /* * если количество верхних узлов равно максимальному количеству по линиям * добавляем новую строку. */ m_parent.Template.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto, MinWidth = 24 }); foreach (var line in m_parent.HLines) { line.ShiftNodes(1); } foreach (var line in m_parent.VLines) { foreach (var n in line.TopNodes.Union(line.BottomNodes)) { n.Column += 1; } } } var node = m_parent.CreateNode(); int idx = currentCount - LeftNodes.Count - 1; node.SetCell(idx > 0 ? idx : 0, m_parent.GetLineIndex(this)); node.NodeOrientation = rMindNodeOriantation.Left; LeftNodes.Add(node); m_parent.UpdateBase(); return(node); }
private void GenerateMeshNodes(int LElements, int HElements) { Nodes.Clear(); LeftNodes.Clear(); RightNodes.Clear(); int indexCur = 0; double xCur = 0; double yCur = _shape.H / 2; if (HElements % 2 == 1) { HElements++; } int HNodes = HElements + 1; int LNodes = LElements + 1; double xStep = _shape.L / Convert.ToDouble(LElements); double yStep = _shape.H / Convert.ToDouble(HElements); int HNodesdiv2 = HNodes / 2; for (int i = 0; i < HNodesdiv2; i++) { if (i == 0) { TopNodes.Clear(); } for (int j = 0; j < LNodes; j++) { Node node = new Node(); node.Index = indexCur; node.X = xCur; node.Y = yCur; Nodes.Add(node); if (j == 0) { LeftNodes.Add(node); } if (j == (LNodes - 1)) { RightNodes.Add(node); } indexCur++; xCur += xStep; if (i == 0) { TopNodes.Add(node); } } yCur -= yStep; xCur = 0; } xCur = 0; yCur = 0; MiddleNodes.Clear(); for (int j = 0; j < LNodes; j++) { Node node = new Node(); node.Index = indexCur; node.X = xCur; node.Y = yCur; Nodes.Add(node); MiddleNodes.Add(node); if (j == 0) { LeftNodes.Add(node); } if (j == (LNodes - 1)) { RightNodes.Add(node); } indexCur++; xCur += xStep; } xCur = 0; yCur -= yStep; for (int i = 0; i < HNodesdiv2; i++) { if (i == (HNodesdiv2 - 1)) { BottomNodes.Clear(); } for (int j = 0; j < LNodes; j++) { Node node = new Node(); node.Index = indexCur; node.X = xCur; node.Y = yCur; Nodes.Add(node); if (j == 0) { LeftNodes.Add(node); } if (j == (LNodes - 1)) { RightNodes.Add(node); } if (i == (HNodesdiv2 - 1)) { BottomNodes.Add(node); } indexCur++; xCur += xStep; } yCur -= yStep; xCur = 0; } }