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)); }