public object Evaluate( EventBean[] eventsPerStream, bool isNewData, ExprEvaluatorContext context) { var meX = meXEval.Evaluate(eventsPerStream, isNewData, context); if (meX == null) { return null; } var meY = meYEval.Evaluate(eventsPerStream, isNewData, context); if (meY == null) { return null; } var meWidth = meWidthEval.Evaluate(eventsPerStream, isNewData, context); if (meWidth == null) { return null; } var meHeight = meHeightEval.Evaluate(eventsPerStream, isNewData, context); if (meHeight == null) { return null; } var otherX = otherXEval.Evaluate(eventsPerStream, isNewData, context); if (otherX == null) { return null; } var otherY = otherYEval.Evaluate(eventsPerStream, isNewData, context); if (otherY == null) { return null; } var otherWidth = otherWidthEval.Evaluate(eventsPerStream, isNewData, context); if (otherWidth == null) { return null; } var otherHeight = otherHeightEval.Evaluate(eventsPerStream, isNewData, context); if (otherHeight == null) { return null; } var x = TypeExtensions.AsDouble(meX); var y = TypeExtensions.AsDouble(meY); var width = TypeExtensions.AsDouble(meWidth); var height = TypeExtensions.AsDouble(meHeight); return BoundingBox.IntersectsBoxIncludingEnd( x, y, x + width, y + height, TypeExtensions.AsDouble(otherX), TypeExtensions.AsDouble(otherY), TypeExtensions.AsDouble(otherWidth), TypeExtensions.AsDouble(otherHeight)); }