Accord.Collections.SPCell.Contains C# (CSharp) Метод

Contains() публичный Метод

Determines whether a point lies inside this cell.
public Contains ( double point ) : bool
point double The point.
Результат bool
        public bool Contains(double[] point)
        {
            for (int d = 0; d < corner.Length; d++)
            {
                if (corner[d] - width[d] > point[d])
                    return false;

                if (corner[d] + width[d] < point[d])
                    return false;
            }

            return true;
        }
    }

Usage Example

Пример #1
0
        /// <summary>
        ///   Inserts a point in the Space-Partitioning tree.
        /// </summary>
        ///
        public bool Add(double[] point)
        {
            // Ignore objects which do not belong in this quad tree
            if (!boundary.Contains(point))
            {
                return(false);
            }

            // On-line update of cumulative size and center-of-mass
            cum_size++;
            double mult1 = (double)(cum_size - 1) / (double)cum_size;
            double mult2 = 1.0 / (double)cum_size;

            for (int d = 0; d < center_of_mass.Length; d++)
            {
                center_of_mass[d] *= mult1;
                center_of_mass[d] += mult2 * point[d];
            }

            // If there is space in this quad tree and it is a leaf, add the object here
            if (IsLeaf && this.point == null)
            {
                this.point = point;
                return(true);
            }

            // Don't add duplicates for now (this is not very nice)
            if (this.point.IsEqual(point, rtol: 1e-10))
            {
                return(true);
            }

            // Otherwise, we need to subdivide the current cell
            if (IsLeaf)
            {
                subdivide();
            }

            // Find out where the point can be inserted
            for (int i = 0; i < Children.Length; i++)
            {
                if (Children[i].Add(point))
                {
                    return(true);
                }
            }

            // Otherwise, the point cannot be inserted (this should never happen)
            return(false);
        }