In the following path,
val path1 = PLPath( NormalPath( Vector( NormalArc( 7, 5, SkewPantsHexagon( 1, true, Set( SkewCurve(PantsBoundary(1, Z3(2)), PantsBoundary(2, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(2, Z3(2)), PantsBoundary(3, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(1, Z3(1)), PantsBoundary(2, Z3(1)), 0.2, 2), SkewCurve(PantsBoundary(0, Z3(2)), PantsBoundary(1, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(3, Z3(1)), PantsBoundary(3, Z3(2)), 0.2, 1), SkewCurve(PantsBoundary(0, Z3(0)), PantsBoundary(0, Z3(1)), 0.2, 1) ) ) ), NormalArc( 5, 3, SkewPantsHexagon( 1, false, Set( SkewCurve(PantsBoundary(1, Z3(2)), PantsBoundary(2, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(2, Z3(2)), PantsBoundary(3, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(1, Z3(1)), PantsBoundary(2, Z3(1)), 0.2, 2), SkewCurve(PantsBoundary(0, Z3(2)), PantsBoundary(1, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(3, Z3(1)), PantsBoundary(3, Z3(2)), 0.2, 1), SkewCurve(PantsBoundary(0, Z3(0)), PantsBoundary(0, Z3(1)), 0.2, 1) ) ) ), NormalArc( 0, 1, SkewPantsHexagon( 2, true, Set( SkewCurve(PantsBoundary(1, Z3(2)), PantsBoundary(2, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(2, Z3(2)), PantsBoundary(3, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(1, Z3(1)), PantsBoundary(2, Z3(1)), 0.2, 2), SkewCurve(PantsBoundary(0, Z3(2)), PantsBoundary(1, Z3(0)), 0.2, 1), SkewCurve(PantsBoundary(3, Z3(1)), PantsBoundary(3, Z3(2)), 0.2, 1), SkewCurve(PantsBoundary(0, Z3(0)), PantsBoundary(0, Z3(1)), 0.2, 1) ) ) ) ) ), Vector(0.0, 0.07541963176135802, 0.2), Vector(2.15, 0.0, 0.2) )
the third arc has zero length. However, while plotting the arc in blue, we get three arcs of non zero length -
the first is across edges 20 and 21, the second is nearly parallel to edge 2, and the third runs halfway along edge 14, to continue nowhere. The third arc should just be a point, so that the path starts at a vertex of edge 21 and comes back to it.