/// <summary> /// adds a circle shaped occluder /// </summary> /// <param name="position">Position.</param> /// <param name="radius">Radius.</param> public void AddCircleOccluder(System.Numerics.Vector2 position, float radius) { var dirToCircle = position - _origin; var angle = Mathf.Atan2(dirToCircle.Y, dirToCircle.X); var stepSize = MathHelper.Pi / LineCountForCircleApproximation; var startAngle = angle + MathHelper.PiOver2; var lastPt = Mathf.AngleToVector(startAngle, radius) + position; for (var i = 1; i < LineCountForCircleApproximation; i++) { var nextPt = Mathf.AngleToVector(startAngle + i * stepSize, radius) + position; AddLineOccluder(lastPt, nextPt); lastPt = nextPt; } }