using Microsoft.Msagl.Core.Geometry; using Microsoft.Msagl.Core.Geometry.Curves; using Microsoft.Msagl.Routing.Visibility; namespace Microsoft.Msagl.Routing.Spline.ConeSpanner { internal abstract class ObstacleSide : SegmentBase { internal PolylinePoint StartVertex { get; private set; } internal ObstacleSide(PolylinePoint startVertex) { StartVertex = startVertex; } internal abstract PolylinePoint EndVertex { get; } internal Polyline Polyline { get { return StartVertex.Polyline; } } internal override Point Start { get { return StartVertex.Point; } } internal override Point End { get { return EndVertex.Point; } } /// /// /// public override string ToString() { string typeString = this.GetType().ToString(); int lastDotLoc = typeString.LastIndexOf('.'); if (lastDotLoc >= 0) { typeString = typeString.Substring(lastDotLoc + 1); } return typeString + " [" + this.Start.ToString() + " -> " + this.End.ToString() + "]"; } } }