Rob:
I’m a little surprised that you’re giving an entire package to hull. Wouldn’t
determining a convex hull in spherical geometry differ from in euclidean?
Yes, they would differ. The idea is that the algorithm-specific modules would
contain the basic interfaces for the algorithm as well as implementations for
specific spaces. For example, the hull module contains the space-independent
ConvexHull and ConvexHullGenerator interfaces as well as implementations for
euclidean 2D space. If we added a spherical implementation it would go in this
module, too.
Are we going to do more than just euclidean and spherical? Maybe our names
should be “euclidean” and “non-euclidean” so that we can put all of the
different geometries that avoid the parallel postulate in one sub-project?
I don't currently have any plans to add new spaces but I think it's a
possibility. I personally prefer having explicit modules for each space.
Gilles:
only JDK exception types are part of the public API
I see what you're talking about with the exceptions in commons-numbers but I
don't understand the reasoning behind it. Why don't we want to expose custom
exception types to users? Wouldn't they want to be able to write catch clauses
for specific conditions? In the case of the geometry code, one big condition
that comes up all the time is the zero norm condition. This is why I have a
special type for it.
I'd avoid defining classes in "o.a.c.geometry" unless you are
sure that no other (maven) module than "core" will.
[Safer would be to create a "o.a.c.geometry.core" package and
move the "Geometry", "Space", "Point" and "Vector" classes
into it.]
Sounds good. I'll move everything in that module to be under the
o.a.c.geometry.core package.
Thanks,
Matt
________________________________
From: Gilles <[email protected]>
Sent: Saturday, April 14, 2018 1:50 PM
To: [email protected]
Subject: Re: [geometry] Initial Project Structure
On Sat, 14 Apr 2018 10:46:40 -0400, Rob Tompkins wrote:
>> On Apr 14, 2018, at 9:00 AM, Gilles <[email protected]>
>> wrote:
>>
>> Hello.
>>
>> On Sat, 14 Apr 2018 04:24:35 +0000, Matt Juntunen wrote:
>>> Hi Gilles,
>>>
>>> That's actually really close to what I ended up with after I
>>> started
>>> moving the code over. I currently have
>>>
>>> * commons-geometry-core
>>> * commons-geometry-euclidean
>>> * commons-geometry-spherical
>>> * commons-geometry-hull
>
> I’m a little surprised that you’re giving an entire package to hull.
> Wouldn’t determining a convex hull in spherical geometry differ from
> in euclidean?
https://github.com/darkma773r/commons-geometry/tree/geometry-1/commons-geometry-hull/src/main/java/org/apache/commons/geometry
> Are we going to do more than just euclidean and spherical? Maybe our
> names should be “euclidean” and “non-euclidean” so that we can put
> all
> of the different geometries that avoid the parallel postulate in one
> sub-project?
>
> All thoughts, I’m +0 to +1 for the packages shown.
>
> Cheers,
> -Rob
>
>>> * commons-geometry-enclosing
>>> [...]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]