[ https://issues.apache.org/jira/browse/GEOMETRY-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16931026#comment-16931026 ]
Matt Juntunen commented on GEOMETRY-32: --------------------------------------- I must not be getting emails from JIRA. I just now saw that you commented here. {quote}Why? {quote} Because otherwise points that were previously inside the region would now be outside. For example, consider the region consisting of the first quadrant in 2D. It is bounded by the line segment going from +infinity to zero on the y axis and the line segment 0 to +infinity on the x axis. If we transform this by negating each x component (reflecting along the y axis), then the y axis segment remains the same but the x axis segment now goes from 0 to -infinity, meaning it has reversed direction. We would expect the inside of the reflected region to be simply the second quadrant, but since the orientation of the bounding lines is significant, the inside of the region is now actually all quadrants except for the second. (The inside of the region is determined to lie on the left side of the bounding line when looking along its direction.) We therefore, need to swap the interior and exterior of the region in order to get the expected result. This holds true for all dimensions greater than 1 where the transform does not preserve spatial orientation. > BSPTree Updates > --------------- > > Key: GEOMETRY-32 > URL: https://issues.apache.org/jira/browse/GEOMETRY-32 > Project: Apache Commons Geometry > Issue Type: Improvement > Components: core > Reporter: Matt Juntunen > Priority: Major > Labels: pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > The following updates should be made to the BSPTree class: > - add an {{isLeaf()}} method to replace all of the {{node.getCut() == null}} > expressions > - add unit tests > _Edit [2019-02-17]:_ > Additional goals: > - Refactor the API to split the idea of a general BSPTree and a BSPTree used > for defining in/out regions. This could result in a BSPTree interface and a > RegionBSPTree interface. The goal here is to allow end-users to create their > own extensions of these classes and specialize them for their own > applications (for example, to implement spatial sorting or other algorithms). > This will be one of the only planned extension points in the library. > - Make the API easier to use and extend and reduce the necessity of casting > (especially unchecked casting) as much as possible. > - Add the idea of convex subhyperplanes to allow for more efficient tree > construction. -- This message was sent by Atlassian Jira (v8.3.2#803003)