[ https://issues.apache.org/jira/browse/MATH-1211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luc Maisonobe resolved MATH-1211. --------------------------------- Resolution: Fixed Fix Version/s: 3.5 Your analysis was perfectly correct and your solution was good. I only made a minor change so it is easier to understand. Fixed in git repository. Beware the fix is currently only in the MATH_3_X branch, which is not the master branch. It will be included in the upcoming 3.5 release. Thanks for the report and the fix. > PolyhedronsSet.firstIntersection(Vector3D point, Line line) sometimes reports > intersections on wrong end of line > ---------------------------------------------------------------------------------------------------------------- > > Key: MATH-1211 > URL: https://issues.apache.org/jira/browse/MATH-1211 > Project: Commons Math > Issue Type: Bug > Reporter: Mike Zimmerman > Fix For: 3.5 > > Attachments: IntersectionTest.java > > > I constructed a PolyhedronsSet from a list of triangular faces representing > an icosphere (using the instructions found at > https://mail-archives.apache.org/mod_mbox/commons-user/201208.mbox/<5039fe35.2090...@free.fr>). > This seems to produce correct INSIDE/OUTSIDE results for randomly chosen > points. I think my mesh triangles are defined appropriately. > However, using PolyhedronsSet.firstIntersection(Vector3D point, Line line) to > shoot randomly oriented rays from the origin sometimes gives a wrong mesh > intersection point "behind" the origin. The intersection algorithm is > sometimes picking up faces of the sphere-shaped mesh on the wrong > semi-infinite portion of the line, i.e. > meshIntersectionPoint.subtract(point).dotProduct(line.getDirection())<0 where > point is the Vector3D at center of the sphere and line extends outward > through the mesh. > I think the dot product above should always be positive. If multiple > intersections exist along a "whole" line then the first one in "front" of the > line's origin should be returned. This makes ray tracing with a > PolyhedronsSet possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)