[ https://issues.apache.org/jira/browse/MATH-1211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14484866#comment-14484866 ]
Luc Maisonobe commented on MATH-1211: ------------------------------------- Hi Mike, Could you attach a self-contained test to reproduce the error? > 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 > > 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)