private ReadOnlyCollection <Vector2> GenerateDeadEnd(HalfEdge <IVertexBuilder, IHalfEdgeBuilder, IFaceBuilder> a) { Contract.Requires(a != null); //Get the builder for the edge ending at _vertex var b = a.BuilderEndingWith(_vertex); var ld = b.Left.ClosestPointDistanceAlongLine(_vertex.Position); b.LeftEnd = b.Left.Position + b.Left.Direction * ld; var rd = b.Right.ClosestPointDistanceAlongLine(_vertex.Position); b.RightEnd = b.Right.Position + b.Right.Direction * rd; //Dead ends do not create *any* junction, so return null for the junction shape return(null); }