kwrightapache commented on issue #11883: URL: https://github.com/apache/lucene/issues/11883#issuecomment-1327419070
The basic question that needs to be answered mathematically is: is there any point on that plane's intersection with the surface of the planet that is within all the other bounds? I believe this can be computed readily by the following process: (1) For each bound, find the intersection(s) of the bound with the plane and with the world. (2) Check if that point is within all other bounds. If not, use the intersection of the next bound and the plane, and verify that it still works with previous bounds. If those fail, move the point again and retry. If we begin to repeat, give up; there is no point that qualifies. A better way of stating the same process is as follows: (1) For the plane and for all the bounds, get a list of intersection points to look at. (2) We ONLY need to consider points from this list. If we don't find any that work, there is no intersection. The issue here is that the bounds given are Membership objects. Unfortunately we cannot assume they are planes. So we need a new primitive for Membership objects: void Membership.getIntersectionPoints(List<Vector>, Plane). This is easy to implement for sidedPlanes but that's not at all the only object that needs to have this support. A major chunk of work is therefore needed, and the contract for Membership will change. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org