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 Bind(BindingNode nextNode) { if (!RightNodes.Contains(nextNode)) { RightNodes.Add(nextNode); } if (!nextNode.LeftNodes.Contains(this)) { nextNode.LeftNodes.Add(this); } }
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; } }