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

Gilles commented on GEOMETRY-23:
--------------------------------

If I take this statement
{quote}I picture the representation of an n-dimensional vector as an n-tuple as 
a matter of definition and not implementation.
{quote}
as meaning that "Commons Geometry" represents the "vector" concept by a data 
structure that stores Cartesian coordinates, then the alternative to having 
{{ofCartesian}} is to rename {{Vector3D}} to {{CartesianVector3D}}.

I.e. the equivalent of
{code:java}
Vector3D v = Vector3D.ofCartesian(1, 2, 3);
{code}
is
{code:java}
CartesianVector3D v = CartesianVector3D.of(1, 2, 3);
{code}
This has the big advantage to completely remove the ambiguity on what is being 
represented (one-to-one mapping between math and code), {{of}} becomes 
self-documenting and {{CartesianVector3D}} can be a 
["ValJO"|https://blog.joda.org/2014/03/valjos-value-java-objects.html].

> 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)

Reply via email to