public void UpdateWithTransforms(Transform[] pointTransforms, Source.Segment.Coordinates coordinates = Source.Segment.Coordinates.World)         // Assuming unchanged point count
        {
            if (coordinates == Source.Segment.Coordinates.World)
            {
                a = pointTransforms[0].position;
                b = pointTransforms[1].position;
                return;
            }

            // Source.Segment.Coordinates.Local
            a = pointTransforms[0].localPosition;
            b = pointTransforms[1].localPosition;
        }
        public static Segment SegmentWithPointTransforms(Transform[] pointTransforms, Source.Segment.Coordinates coordinates = Source.Segment.Coordinates.World)         // Uses Transform.localPosition.xy()
        {
            if (coordinates == Source.Segment.Coordinates.World)
            {
                return(Segment.SegmentWithPoints(pointTransforms[0].position, pointTransforms[1].position));
            }

            // Source.Segment.Coordinates.Local
            return(Segment.SegmentWithPoints(pointTransforms[0].localPosition, pointTransforms[1].localPosition));
        }