I guess it might make a difference if you mean a 2d line or 3d? Take elevation out of it, and I think it would be (relatively) easy to determine if a straight line passes within x meters of a point. Use the pos array as the center spot, then the bounding box information for the +/- values from that spot. Like, for 2d, you really only want to know whether the line AB intersects a line segment set perpendicular to AB with the center at the position array.

For 3d, it becomes more complicated with the angles, but I think the same principles would apply.

(Sorry if this doesn't really help.)

Thinking about it more, as a function, you could do it by measuring distances from the center position C, and using the vector between A and B.

- check if either A or B is within the bounding box area.

That'll make the routine shorter!

- get vector from A to C, if it isn't within a few degrees* ignore the whole thing

- get distance and vector from A to B; and a distance from A to C and B to C

- pick a spot X half way from A to B on the vector

- check if X is within the bounding box area

- if not, then figure out which is further away from C - either A or B - and replace it with X (that should make sure you keep narrowing on on the point on the line AB that is closest to C

- and get the distance/vector/half way point again

- probably include a check so that if X is only moving by a few meters, then that's the end of the analysis

Oof. That still looks pretty ugly. Hopefully someone else who knows what they're doing will see this.

*

I guess the real trigonometry way would be to start with the vector and distance from A to C, and the size of the object. Figure out how many minutes of angle (? I think that's right) the object takes up. Get the vector from A to B, and if it is within the vector +/- the size of the object, then it intersects.

But, that is stretching the very limits of my math brain. Now, I need a scotch.