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 Remove(EventBean @event, ExprEvaluatorContext exprEvaluatorContext) { _eventsPerStream[0] = @event; double x = AdvancedIndexEvaluationHelper.EvalDoubleColumn( _config.XEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_X, _eventsPerStream, false, exprEvaluatorContext); double y = AdvancedIndexEvaluationHelper.EvalDoubleColumn( _config.YEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_Y, _eventsPerStream, false, exprEvaluatorContext); PointRegionQuadTreeRowIndexRemove.Remove(x, y, @event, _quadTree); }
internal static AdvancedIndexConfigContextPartition ConfigureQuadTree( string indexName, ExprEvaluator[] parameters, ExprEvaluatorContext exprEvaluatorContext) { var x = AdvancedIndexEvaluationHelper.EvalDoubleParameter(parameters[0], indexName, AdvancedIndexQuadTreeConstants.PARAM_XMIN, exprEvaluatorContext); var y = AdvancedIndexEvaluationHelper.EvalDoubleParameter(parameters[1], indexName, AdvancedIndexQuadTreeConstants.PARAM_YMIN, exprEvaluatorContext); var width = AdvancedIndexEvaluationHelper.EvalDoubleParameter(parameters[2], indexName, AdvancedIndexQuadTreeConstants.PARAM_WIDTH, exprEvaluatorContext); if (width <= 0) { throw AdvancedIndexEvaluationHelper.InvalidParameterValue(indexName, AdvancedIndexQuadTreeConstants.PARAM_WIDTH, width, "value>0"); } var height = AdvancedIndexEvaluationHelper.EvalDoubleParameter(parameters[3], indexName, AdvancedIndexQuadTreeConstants.PARAM_HEIGHT, exprEvaluatorContext); if (height <= 0) { throw AdvancedIndexEvaluationHelper.InvalidParameterValue(indexName, AdvancedIndexQuadTreeConstants.PARAM_HEIGHT, height, "value>0"); } var leafCapacity = parameters.Length > 4 ? AdvancedIndexEvaluationHelper.EvalIntParameter(parameters[4], indexName, AdvancedIndexQuadTreeConstants.PARAM_LEAFCAPACITY, exprEvaluatorContext) : PointRegionQuadTreeFactory <object> .DEFAULT_LEAF_CAPACITY; if (leafCapacity < 1) { throw AdvancedIndexEvaluationHelper.InvalidParameterValue(indexName, AdvancedIndexQuadTreeConstants.PARAM_LEAFCAPACITY, leafCapacity, "value>=1"); } var maxTreeHeight = parameters.Length > 5 ? AdvancedIndexEvaluationHelper.EvalIntParameter(parameters[5], indexName, AdvancedIndexQuadTreeConstants.PARAM_MAXTREEHEIGHT, exprEvaluatorContext) : PointRegionQuadTreeFactory <object> .DEFAULT_MAX_TREE_HEIGHT; if (maxTreeHeight < 2) { throw AdvancedIndexEvaluationHelper.InvalidParameterValue(indexName, AdvancedIndexQuadTreeConstants.PARAM_MAXTREEHEIGHT, maxTreeHeight, "value>=2"); } return(new AdvancedIndexConfigContextPartitionQuadTree(x, y, width, height, leafCapacity, maxTreeHeight)); }
public void Remove(EventBean @event, ExprEvaluatorContext exprEvaluatorContext) { _eventsPerStream[0] = @event; var x = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.XEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_X, _eventsPerStream, false, exprEvaluatorContext); var y = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.YEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_Y, _eventsPerStream, false, exprEvaluatorContext); var width = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.WidthEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_WIDTH, _eventsPerStream, false, exprEvaluatorContext); var height = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.HeightEval, _organization.IndexName, AdvancedIndexQuadTreeConstants.COL_HEIGHT, _eventsPerStream, false, exprEvaluatorContext); MXCIFQuadTreeRowIndexRemove.Remove(x, y, width, height, @event, _quadTree); }
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); } }