public static float GetRadius(VegetationMaskArea mask) { Vector3 maskCenter = GetMaskCenter(mask); List <Vector3> worldPositions = mask.GetWorldSpaceNodePositions(); // calculate the radius by using the average distance from the mask center float magnitudeSum = 0f; foreach (Vector3 worldPosition in worldPositions) { magnitudeSum += (worldPosition - maskCenter).magnitude; } float radius = magnitudeSum / mask.Nodes.Count; return(radius); }
/// <summary> /// Get the center of the mask polygon /// </summary> /// <param name="mask"></param> /// <returns></returns> public static Vector3 GetMaskCenter(VegetationMaskArea mask) { List <Vector3> worldPositions = mask.GetWorldSpaceNodePositions(); return(PolygonUtils.GetMeanVector(worldPositions.ToArray())); }