コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: BindingNode.cs プロジェクト: adasinio97/Parserawka
        public void RemoveLeftBindings(BindingNode node)
        {
            bool removed = RightNodes.Remove(node);

            if (RightNodes.Count == 0 && (removed || OneWay))
            {
                RemoveNode();
            }
        }
コード例 #3
0
ファイル: BindingNode.cs プロジェクト: adasinio97/Parserawka
 public void Bind(BindingNode nextNode)
 {
     if (!RightNodes.Contains(nextNode))
     {
         RightNodes.Add(nextNode);
     }
     if (!nextNode.LeftNodes.Contains(this))
     {
         nextNode.LeftNodes.Add(this);
     }
 }
コード例 #4
0
        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;
            }
        }