public override TraceBase Reverse() { TraceArc reverse = this.Clone() as TraceArc; reverse.Start = this.End.Clone() as PointD; reverse.End = this.Start.Clone() as PointD; return(reverse); }
public override TraceBase NewTraceFromStart(double length) { double degree = this.Degree * length / this.Length; TraceArc newTrace = this.Clone() as TraceArc; newTrace.Mid = this.Start.Rotate(this.Center, degree / 2); newTrace.End = this.Start.Rotate(this.Center, degree); return(newTrace); }
public override object Clone() { TraceArc traceArc = this.MemberwiseClone() as TraceArc; traceArc.Start = this.Start.Clone() as PointD; traceArc.Mid = this.Mid.Clone() as PointD; traceArc.End = this.End.Clone() as PointD; return(traceArc); }