How to determin if an object is ACTUALLY visible, not just says it is

is there is way to determine if an object is actually visible - for example it may have the property visible=true, but is covered by another object so it is not actually visible, or if it is nested in a parent that has been set to visible=false?

I know that I could check with the parent to see if it is visible, but im not sure how to determine if the object is being covered up by another object.

Thanks