public void PastedPointInBetween(int startIndex, int newIndex, int endIndex) { List <RegisteredLine> newRegisteredLines = new List <RegisteredLine>(); if (startIndex > 0) { for (int i = 0; i <= startIndex - 1; i++) { newRegisteredLines.Add(new RegisteredLine(this.registeredLines[i])); } } RegisteredLine firstRegistration = new RegisteredLine(this.points[startIndex], this.points[newIndex]); newRegisteredLines.Add(firstRegistration); if (newIndex < this.points.Count - 1) { RegisteredLine secondRegistration = new RegisteredLine(this.points[newIndex], this.points[endIndex]); newRegisteredLines.Add(secondRegistration); for (int h = newIndex; h <= this.registeredLines.Length - 1; h++) { newRegisteredLines.Add(new RegisteredLine(this.registeredLines[h])); } } this.registeredLines = newRegisteredLines.ToArray(); }
public void AddedPointAtEnd() { List <RegisteredLine> newRegisteredLines = this.registeredLines.ToList(); int index = this.points.Count; RegisteredLine newRegistration = new RegisteredLine(this.points[index - 2], this.points[index - 1]); newRegisteredLines.Add(newRegistration); this.registeredLines = newRegisteredLines.ToArray(); }
public void RegisterLineForCircle() { List <RegisteredLine> newRegisteredLines = this.registeredLines.ToList(); int index = this.points.Count; RegisteredLine newRegistration = new RegisteredLine(this.points[index - 1], this.points[0]); newRegisteredLines.Add(newRegistration); this.registeredLines = newRegisteredLines.ToArray(); this.circleLineRegistered = true; OnInternalValuesChange(true); }
public void BuildNewRegistration(bool buttonPressed = false) { this.registeredLines = null; if (buttonPressed) { this.currentSmoothLines = null; this.currentPlacedLines = null; if (this.smooth) { CalcSmoothLines(); } else { CalcPlacedLines(); } } List <RegisteredLine> newRegisteredLines = new List <RegisteredLine>(); for (int i = 1; i <= this.points.Count - 1; i++) { RegisteredLine newRegistration = new RegisteredLine(this.points[i - 1], this.points[i]); newRegisteredLines.Add(newRegistration); } this.registeredLines = newRegisteredLines.ToArray(); if (!buttonPressed) { OnInternalValuesChange(true); } if (buttonPressed) { if (this.circle && this.circleLineRegistered) { RegisterLineForCircle(); return; } OnInternalValuesChange(true); } }
public void RemovedPointInBetween(int removeIndex) { List <RegisteredLine> newRegisteredLines = new List <RegisteredLine>(); for (int i = 0; i <= removeIndex - 2; i++) { newRegisteredLines.Add(new RegisteredLine(this.registeredLines[i])); } RegisteredLine newRegistration = new RegisteredLine(this.registeredLines[removeIndex].line.lineRotation, this.points[removeIndex - 1], this.points[removeIndex + 1]); newRegisteredLines.Add(newRegistration); for (int i = removeIndex + 2; i <= this.points.Count - 1; i++) { RegisteredLine reRegister = new RegisteredLine(this.registeredLines[i - 1].line.lineRotation, this.points[i - 1], this.points[i]); newRegisteredLines.Add(reRegister); } this.registeredLines = newRegisteredLines.ToArray(); }
public RegisteredLine(RegisteredLine registeredLine) { this.start = registeredLine.start; this.end = registeredLine.end; this.line = new Line(registeredLine.line); }