public void Add(EventBean @event, ExprEvaluatorContext exprEvaluatorContext)
        {
            _eventsPerStream[0] = @event;
            var x = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.XEval, _organization.IndexName,
                                                                   AdvancedIndexQuadTreeConstants.COL_X, _eventsPerStream, true,
                                                                   exprEvaluatorContext);
            var y = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.YEval, _organization.IndexName,
                                                                   AdvancedIndexQuadTreeConstants.COL_Y, _eventsPerStream, true,
                                                                   exprEvaluatorContext);
            var width = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.WidthEval, _organization.IndexName,
                                                                       AdvancedIndexQuadTreeConstants.COL_WIDTH, _eventsPerStream, true,
                                                                       exprEvaluatorContext);
            var height = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.HeightEval, _organization.IndexName,
                                                                        AdvancedIndexQuadTreeConstants.COL_HEIGHT, _eventsPerStream,
                                                                        true, exprEvaluatorContext);
            bool added = MXCIFQuadTreeRowIndexAdd.Add(x, y, width, height, @event, _quadTree, _organization.IsUnique,
                                                      _organization.IndexName);

            if (!added)
            {
                throw AdvancedIndexEvaluationHelper.InvalidColumnValue(_organization.IndexName, "(x,y,width,height)",
                                                                       "(" + x + "," + y + "," + width + "," + height + ")",
                                                                       "a value intersecting index bounding box (range-end-inclusive) " + _quadTree.Root.Bb);
            }
        }
        public void Add(EventBean @event, ExprEvaluatorContext exprEvaluatorContext)
        {
            _eventsPerStream[0] = @event;
            double x = AdvancedIndexEvaluationHelper.EvalDoubleColumn(
                _config.XEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_X, _eventsPerStream, true,
                exprEvaluatorContext);
            double y = AdvancedIndexEvaluationHelper.EvalDoubleColumn(
                _config.YEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_Y, _eventsPerStream, true,
                exprEvaluatorContext);
            bool added = PointRegionQuadTreeRowIndexAdd.Add(x, y, @event, _quadTree, _organization.IsUnique,
                                                            _organization.IndexName);

            if (!added)
            {
                throw AdvancedIndexEvaluationHelper.InvalidColumnValue(_organization.IndexName, "(x,y)",
                                                                       "(" + x + "," + y + ")",
                                                                       "a value within index bounding box (range-end-non-inclusive) " + _quadTree.Root.Bb);
            }
        }