Dalssoft.DiagramNet.RightAngleLinkElement.CalcLink C# (CSharp) Méthode

CalcLink() private méthode

private CalcLink ( ) : void
Résultat void
		internal override void CalcLink()
		{
			if (needCalcLink == false) return;

			if (lines == null)
				return;

			LineElement lastLine = lines[lines.Length - 1];

			//Otimization - Get prop. value only one time
			Point connector1Location = connector1.Location;
			Point connector2Location = connector2.Location;
			Size connector1Size = connector1.Size;
			Size connector2Size = connector2.Size;

			lines[0].Point1 = new Point(connector1Location.X + connector1Size.Width / 2, connector1Location.Y + connector1Size.Height / 2);
			lastLine.Point2 = new Point(connector2Location.X + connector2Size.Width / 2, connector2Location.Y + connector2Size.Height / 2);
			
			if (lines.Length == 3)
			{

				if (orientation == Orientation.Horizontal)
				{
					lines[0].Point2 = new Point(lines[0].Point2.X, lines[0].Point1.Y);
					lastLine.Point1 = new Point(lastLine.Point1.X, lastLine.Point2.Y);
					lines[1].Point1 = lines[0].Point2;
					lines[1].Point2 = lines[2].Point1;
				}
				else if (orientation == Orientation.Vertical)
				{
					lines[0].Point2 = new Point(lines[0].Point1.X, lines[0].Point2.Y);
					lastLine.Point1 = new Point(lastLine.Point2.X, lastLine.Point1.Y);
					lines[1].Point1 = lines[0].Point2;
					lines[1].Point2 = lines[2].Point1;
				}
			}
			else if (lines.Length == 2)
			{
				if ((conn1Dir == CardinalDirection.North) || (conn1Dir == CardinalDirection.South))
					lines[0].Point2 = new Point(lines[0].Point1.X, lastLine.Point2.Y);
				else
					lines[0].Point2 = new Point(lastLine.Point2.X, lines[0].Point1.Y);

				lastLine.Point1 = lines[0].Point2;
			}

			needCalcLinkLocation = true;
			needCalcLinkSize = true;

			needCalcLink = false;
		}