[ 
https://issues.apache.org/jira/browse/GEOMETRY-11?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Juntunen resolved GEOMETRY-11.
-----------------------------------
    Resolution: Done

> Replace tolerance with GeometryContext
> --------------------------------------
>
>                 Key: GEOMETRY-11
>                 URL: https://issues.apache.org/jira/browse/GEOMETRY-11
>             Project: Apache Commons Geometry
>          Issue Type: Wish
>            Reporter: Matt Juntunen
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> All of the partitioning-related concrete classes (ex: Plane, PolygonsSet, 
> PolyhedronsSet, etc) use a double value named tolerance in order to address 
> issues with floating point accuracy. For example, when determining if a point 
> lies in a plane, the point does not need to lie exactly on the plane but just 
> be within +- tolerance distance from it. Code testing values against each 
> other using this toleranceĀ isĀ repeated throughout the code base (ex: x >= y - 
> tolerance). We should abstract the concept of the tolerance into a 
> GeometryContext class and provide methods for testing values against each 
> other using the tolerance. This will reduce the chance of bugs and will also 
> allow for more sophisticated handling of floating point accuracy later on.
> The GeometryContext class would be similar to the MathContext class used by 
> BigDecimal but would contain the logic for making comparisons in addition to 
> the configuration for the comparisons.
> {code:java}
> public class GeometryContext {
>    public GeometryContext(tolerance){...}
>    public double getTolerance(){ ... }
>    // return -1, 0, +1
>    public int compare(double a, double b) { ... }
> }{code}
> Pull request: https://github.com/apache/commons-geometry/pull/22



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to