commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Juntunen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GEOMETRY-23) Remove Euclidean Point Classes
Date Sat, 03 Nov 2018 20:31:00 GMT

    [ https://issues.apache.org/jira/browse/GEOMETRY-23?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16674190#comment-16674190
] 

Matt Juntunen commented on GEOMETRY-23:
---------------------------------------

It looks doubtful that we'll get any feedback from my post on the dev mailing list, so I guess
it's just up to us here. Bummer.

My main sticking point on this issue is that I want the names of our classes/methods to be
in line with other geometry-related libraries. Every library I've seen uses some version of
a "vector" name (eg, {{Vector3f}}, {{Vector3}}, {{vec3}}) to represent points and vectors.
These classes also invariably use Cartesian coordinates. This includes GLSL, Three.js, G3D,
the Unity game engine, the JMonkey game engine, the Bullet physics engine, commons-math, etc.
I'd like commons-geometry to follow this industry-standard convention.

On a related note, I've thought about your points as they relate to the transform code I'm
working on now and I think that I could make some changes there in order to better reflect
the mathematical realities. So far I've changed {{AffineTransform?D}} to {{TransformMatrix?D}},
since matrices are only one way to implement affine transforms; and {{Rotation}} to {{QuaternionRotation}},
since I'm also planning on implementing rotations through Euler angles. These can be found
at https://github.com/darkma773r/commons-geometry/tree/transforms. I only mention this to
say that I think you have a point with what you're saying; I just want to keep our vector/point
classes (the most basic building in our library) in line with industry standards.

What are your thoughts? As far as the coordinate conversion thing, I'm picturing that as a
separate ticket. I'll let you create that, since I like it the way it is:-)


> Remove Euclidean Point Classes
> ------------------------------
>
>                 Key: GEOMETRY-23
>                 URL: https://issues.apache.org/jira/browse/GEOMETRY-23
>             Project: Apache Commons Geometry
>          Issue Type: Improvement
>            Reporter: Matt Juntunen
>            Priority: Major
>              Labels: pull-request-available
>
> Based on discussion of the current Point/Vector API in GEOMETRY-14 and research into
other geometric libraries, I think we should remove the Euclidean Point?D classes and make
Vector?D also implement Point. This will end up being similar to the previous commons-math
design but avoids the issue raised in MATH-1284 since the Point and Vector interfaces are
not related. They just happen to be implemented by the same class, which we're calling Vector?D
since a vector can be used to indicate a point (by adding it to the origin).
> In the course of trying this out this design, I ended up removing 7 classes and simplifying
several methods. I think that's a good indicator that this is a good design choice.
>  
> Pull request: https://github.com/apache/commons-geometry/pull/15



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

Mime
View raw message