Hello,

thank you very much! I am looking forward to your review comments since
this is my first time trying to contribute to an open source project. I
also noticed a few things with my code, that should be corrected. Some
comments don’t make sense and there shouldn’t be any need for ordering the
edges like i do right now in my current implementation. Also I think the
code should then be refactored to fit better the desired API design. Also a
discussion should be held if face merging is necessary.

Greetings
Andreas

Matt Juntunen <matt.a.juntu...@gmail.com> schrieb am Mi. 1. Feb. 2023 um
06:20:

> Hello!
>
> Andreas, thank you for your contribution! It's good to see some work going
> into commons-geometry since I've had to step away recently. Gilles is right
> in that we didn't include the hull module in the 1.0 release because I felt
> like it still needed work. What I'd like to do is remove that module
> completely and pull the convex hull generation directly into the euclidean
> module and hide the implementation algorithm details (as discussed in
> GEOMETRY-144). I've replied to your comment on that Jira issue and I hope
> to take a detailed look at your code over this weekend, if not before. If
> you're interested in seeing the API I was aiming for when working on this,
> my unfinished code is languishing on Github [1].
>
> Regards,
> Matt J
>
> [1]
>
> https://github.com/darkma773r/commons-geometry/blob/quickhull/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/ConvexHull3D.java
>
>
>
>
> On Mon, Jan 30, 2023 at 2:38 AM Andreas Goss <andreas.goss1...@gmail.com>
> wrote:
>
> > 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