Example #1
0
        public float?GetAverageHeightFromNeighbourhood(int pKernelSizeMultiplier)
        {
            int pKernelSize = CGroundArray.GetKernelSize();

            pKernelSize *= pKernelSizeMultiplier;

            int   defined   = 0;
            float heightSum = 0;

            for (int x = -pKernelSize; x < pKernelSize; x++)
            {
                for (int y = -pKernelSize; y < pKernelSize; y++)
                {
                    int    xIndex = indexInField.Item1 + x;
                    int    yIndex = indexInField.Item2 + y;
                    CField el     = GetFieldWithOffset(x, y);
                    if (el != null && el.IsDefined())
                    {
                        defined++;
                        heightSum += (float)el.GetHeight();
                    }
                }
            }
            if (defined == 0)
            {
                return(null);
            }
            return(heightSum / defined);
        }
Example #2
0
        private bool HasAllNeighboursDefined(bool p8neighbourhood)
        {
            bool neighbourhood4Defined = Left.IsDefined() && Right.IsDefined() && Top.IsDefined() && Bot.IsDefined();

            if (!p8neighbourhood)
            {
                return(neighbourhood4Defined);
            }
            else
            {
                return(neighbourhood4Defined && Left.Top.IsDefined() && Right.Top.IsDefined() && Left.Bot.IsDefined() &&
                       Right.Bot.IsDefined());
            }
        }