public override TraceBase Reverse() { TraceLine reverse = this.Clone() as TraceLine; reverse.Start = this.End.Clone() as PointD; reverse.End = this.Start.Clone() as PointD; return(reverse); }
public override object Clone() { TraceLine traceLine = this.MemberwiseClone() as TraceLine; traceLine.Start = this.Start.Clone() as PointD; traceLine.End = this.End.Clone() as PointD; return(traceLine); }
public override TraceBase NewTraceFromStart(double length) { VectorD v = this.End - this.Start; PointD newEnd = this.Start + v * length / this.Length; TraceLine newTrace = this.Clone() as TraceLine; newTrace.End = newEnd; return(newTrace); }