Find the active section-plane - if any.
That active section-plane has a plane [Geom object = [point, vector]].
There is also that section-plane’s normal [second item in its plane array - or reconstructed from the last three ?]
You can then do a raytest.
First determine if the ‘eye’ point for the raytest is behind the section-plane.
You have the raytest’s vector.
If the angle_between the normal and that vector is <90° it might be going to hit something beyond the section-cut.
Otherwise you can assume any ‘hit’ will be behind the plane and therefore should be visible.
But if there is a potential unseen ‘hit’, you can do the following:
Make a line [a Geom object [point.vect] NOT an ‘edge’ !] using the ray’s eye and its vector.
Intersect that line with the section-cut’s plane [Geom method http://ruby.sketchup.com/Geom.html#intersect_line_plane-class_method ].
You should get a point, now get the distance from the eye to that point [let’s call it ‘dsc’].
Get the distance from the eye to the hit’s point.
If it’s < dsc, then it’s hit a visible object.
If it’s > dsc, then it’s beyond the section plane.
If it’s == dsc then you need to do some testing to determine if it’s seen - in my experience the section-cut plane is itself a tiny distance inset from its actual plane…
So perhaps you need a tolerance for ‘on-plane’ hits that are actually [un]seen…
I can’t test this right now… over to you…