Thanks for the quick reply. I need to create an Jira account first for
that. I requested an account by writing to priv...@commons.apache.org

Kind Regards
Andreas

Gilles Sadowski <gillese...@gmail.com> schrieb am Mo. 30. Jan. 2023 um
00:11:

> Hello.
>
> Le dim. 29 janv. 2023 à 19:25, Andreas Goss
> <andreas.goss1...@gmail.com> a écrit :
> >
> > Hello,
> >
> > I want to contribute a solution for the open Jira task GEOMETRY-110 (
> >
> https://issues.apache.org/jira/projects/GEOMETRY/issues/GEOMETRY-110?filter=allopenissues
> ).
> > I tried my best to organize the code according to guidelines and at least
> > the maven build was succesful. I created a pull-request for the github
> > clone. If someone could give me a code review and point out areas to
> > improve the code or errors i would be very thankful.
>
> Thank you for tackling this issue.
> It was part of a broader discussion about the API around the hull
> functionality.
> IIRC, the "commons-geometry-hull" module was not included in the first
> release of "Commons Geometry" because Matt Juntunen was convinced
> that a few enhancements were necessary.  Hopefully, he'll chime in order to
> make this recollection more precise.
>
> A general question is whether we want to expose (make "public") classes
> that implement the algorithm(s), such as "QuickHull3D".  For example, we
> could perhaps have (untested and required comments missing...):
> ---CUT---
> public interface ConvexHull3D extends ConvexHull<Vector3D> {
>
>     public enum Generate {
>         QUICK_HULL((c, p) -> new QuickHull3D(p).generate(c));
>
>         private final BiFunction<Collection<Vector3D>,
> DoubleEquivalence, ConvexHull3D> generator;
>
>         private HullGenerator3D(BiFunction<Collection<Vector3D>,
> DoubleEquivalence, ConvexHull3D> generator) {
>             this.generator = generator;
>         }
>
>         public ConvexHull3D from(Collection<Vector3D> points,
> DoubleEquivalence equivalence) {
>             return generator.apply(points, equivalence));
>         }
>     }
>
>     public Collection<? extends ConvexPolygon3D> getFacets();
> }
>
> private class QuickHull3D {
>     private final DoubleEquivalence precision;
>
>     QuickHull3D(DoubleEquivalence precision) {
>         this.precision = precision;
>     }
>
>     ConvexHull3D generate(Collection<Vector3D> points) {
>         // ...
>         return new SimpleConvexHull3D(...);
>     }
> }
>
> private class SimpleConvexHull3D implements ConvexHull3D {
>     private final List<Vector3D> vertices;
>     private final ConvexVolume region;
>     private Collection<ConvexPolygon3D> facets;
>
>     SimpleConvexHull3D(...) {
>         // ...
>     }
>
>     // ...
> }
> ---CUT---
>
> For other concrete (basic) remarks about the code, we can certainly
> continue the conversation in comments on the JIRA report.
>
> Best regards,
> Gilles
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

Reply via email to