From what I know, both dbGetOverlaps() and dbGetTrueOverlaps () return objects in a cellview whose bounding boxes overlap the area specified by a given bounding box. The overlap includes bounding boxes that are enclosed by, butt against, or intersect with the given bounding box.
ex: dbGetTrueOverlaps(cv list((0 0) (10 10)) list("POLY" "drawing"))
Is there a way/function to return only objects which enclose a bounding box.? (no butt against, no intersect)
I am not aware of a built-in function that would exclude the butting or intersecting boxes. However, the function dbPointArrayAnd(), for example, might be used to exclude boxes that are butting but not overlapping - you would have to convert the boxes to be tested into point lists which is an easy enough task for bBoxes, bBox to point list ->
Boxes that touch without overlap, or do not overlap or do not touch will not produce any output, only overlapping boxes would.
But this does not help in the case of not-intersecting. There are other functions like this, such as dbPointArrayAndNot() that might help. There is a dbLayerEnclose() function that would allow you to check that the entire area of one shape is covered by or enclosed by another shape - but this function works with shape, not bounding boxes. You might generate a dummy or scratch cellview to create shapes to represent the boxes and then use dbLayerEnclose on those shapes, post-process the results and reflect back in the original cellview. Are you interested in shapes/instances at level 0 only, or do you wish to see down the hierarchy? This sounds like it could be a fair amount of work. Also be aware that the dbGetOverlaps and dbGetTrueOverlaps can be computationally intensive, so you might also want or need to consider other functions like dbProduceOverlap and dbProduceOverlapInst.
I hope that the notes above might help you.