Is there any way to tell if an object, say for example it is a metal object, actually occupies a given point (as opposed to surrounding it like a U or O shape). The bounding box cannot be used because the object may surround but not actually have metal at the point in question. Expecially if it is a trace. I need to know if the object actually occupies the point itself with part of its body.
You have at least two options:
you have the x:y coordinates of the point, just create a small bbox , like (x-0.001:y-0.001) : (x+0.001:y+0.001) and then use
dbgetTrueOverlaps(d_cellViewl_bBox[ tx_layer | t | nil [ lx_level ] ][ g_doRowCol ])=> ld_fig | nil
If your object is overlapping this small bbox then it shuld be found in the ld_fig list.
Take care: ld_fig is "a list of lists [of lists [of lists [....]]] of db_objects" (nested lists).
If you know the x:y coordinates of the point and also the coordinates of your shape as poligon points you can use an algorithm like "ray casting" , see http://en.wikipedia.org/wiki/Ray_casting_algorithm#Ray_casting_algorithm .
You have to deal with the points are are on the perimeter: are they in or are they out ?
In reply to marcelpreda:
A couple of additional thoughts. First, you don't need to create a small box - a zero area box will do (i.e. list(x:y x:y)).
For the ray casting idea, you can find an implementation - abPointInPolygon - here