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

Reply via email to