static void cpSweep1DSegmentQuery(cpSweep1D *sweep, void *obj, cpVect a, cpVect b, cpFloat t_exit, cpSpatialIndexSegmentQueryFunc func, void *data) { cpBB bb = cpBBExpand(cpBBNew(a.x, a.y, a.x, a.y), b); Bounds bounds = BBToBounds(sweep, bb); TableCell *table = sweep->table; for(int i=0, count=sweep->num; i<count; i++){ TableCell cell = table[i]; if(BoundsOverlap(bounds, cell.bounds)) func(obj, cell.obj, data); } }
static VALUE rb_cpBBexpand(VALUE self, VALUE other) { return BBNEW(cpBBExpand(*BBGET(self), *VGET(other))); }