public bool ContainsPoint(HoleInstanceMetadata instanceMetadata, DoubleVector3 pointWorld, double agentRadius)
        {
            var pointLocal3 = Vector3.Transform(pointWorld.ToDotNetVector(), instanceMetadata.WorldTransformInv);
            var pointLocal  = new IntVector2((int)pointLocal3.X, (int)pointLocal3.Y);

            if (!dilatedPunchResultByAgentRadius.TryGetValue(agentRadius, out var dilatedPunchedLand))
            {
                dilatedPunchedLand = PolygonOperations.Offset()
                                     .Include(punchResult.FlattenToPolygonAndIsHoles())
                                     .Dilate(agentRadius)
                                     .Execute();
                dilatedPunchResultByAgentRadius[agentRadius] = dilatedPunchedLand;
            }

            return(dilatedPunchedLand.PointInPolytree(pointLocal, out var _));
        }