public void UpdatePointPositionsWithTransforms(Transform[] pointTransforms, Source.Polygon.Coordinates coordinates)         // Assuming unchanged point count
        {
            for (int index = 0; index < pointTransforms.Length; index++)
            {
                Transform eachPointTransform = pointTransforms[index];

                if (coordinates == Source.Polygon.Coordinates.World)
                {
                    _points[index] = eachPointTransform.position.xy();
                }

                if (coordinates == Source.Polygon.Coordinates.Local)
                {
                    _points[index] = eachPointTransform.localPosition.xy();
                }
            }

            // Polygon calculations.
            Calculate();
        }
        public static Polygon PolygonWithPointTransforms(Transform[] pointTransforms, Source.Polygon.Coordinates coordinates)
        {
            // Create points array.
            Vector2[] points = new Vector2[pointTransforms.Length];
            for (int index = 0; index < pointTransforms.Length; index++)
            {
                Transform eachPointTransform = pointTransforms[index];

                if (coordinates == Source.Polygon.Coordinates.World)
                {
                    points[index] = eachPointTransform.position.xy();
                }

                if (coordinates == Source.Polygon.Coordinates.Local)
                {
                    points[index] = eachPointTransform.localPosition.xy();
                }
            }

            return(Polygon.PolygonWithPoints(points));
        }