[
https://issues.apache.org/jira/browse/GEOMETRY-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16814024#comment-16814024
]
Matt Juntunen commented on GEOMETRY-32:
---------------------------------------
Update:
I now have the general BSP/region code in place and tested in the
{{commons-geometry-core}} module (including transforms and boolean operations)
and I'm working on updating the concrete implementations in
{{commons-geometry-euclidean}}. I'm about halfway through {{oned}} so far.
Here's some example code for creating a region with two disjoint intervals:
{code:java}
DoublePrecisionContext precision = new EpsilonDoublePrecisionContext(1e-6);
Interval intervalA = Interval.of(1, 2, precision);
Interval intervalB = Interval.of(3, 4, precision);
intervalA.contains(Vector1D.of(1.5)); // true
intervalB.contains(Vector1D.of(3.5)); // true
RegionBSPTree1D tree = intervalA.toTree();
tree.union(intervalB.toTree());
tree.contains(Vector1D.of(1.5)); // true
tree.contains(Vector1D.of(3.5)); // true
tree.contains(Vector1D.of(2.5)); // false
{code}
> 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: 10m
> 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
(v7.6.3#76005)