double getMinDepth(ModelPathEntity mpe, double searchRadius)
        {
            List <AbmachPoint> jetIntersectList = surface.GetPointsInsideBox(BoundingBoxBuilder.GetSearchBox(mpe.PositionAsVector3, searchRadius));
            double             minDepth         = 1e16;

            foreach (AbmachPoint pt in jetIntersectList)
            {
                double depth = getPointDepth(pt);
                if (depth < minDepth)
                {
                    minDepth = depth;
                }
            }
            return(minDepth);
        }
        double getAveDepth(ModelPathEntity mpe, double searchRadius)
        {
            double depth = 0;

            List <AbmachPoint> jetIntersectList = surface.GetPointsInsideBox(BoundingBoxBuilder.GetSearchBox(mpe.PositionAsVector3, searchRadius));
            int pointCount = 0;

            foreach (AbmachPoint pt in jetIntersectList)
            {
                if (pt.JetHit)
                {
                    depth += getPointDepth(pt);
                    pointCount++;
                }
            }

            depth = pointCount > 0 ? depth / pointCount : 0;

            return(depth);
        }