[
https://issues.apache.org/jira/browse/GEOMETRY-92?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17089593#comment-17089593
]
Matt Juntunen commented on GEOMETRY-92:
---------------------------------------
bq. What I try to aim at is that classes which users will most directly
instantiate are close to the "common name"
Is this not already the case? 2D should already be at this point and 3D will be
closer to it with the completion of GEOMETRY-94.
bq. base classes can have longer or more "pedantic" names (like Hyperplane3D
instead of "Plane")
Again, is this not already the case? {{Plane}} is not a base class. It is the
primary hyperplane class for 3D and will be used directly by users.
bq. A first step might be to standardize from a programmatic POV (a.o.
consistent use of the suffix to indicate the dimension of the full space, like
for Vector3D.
Are you suggesting that _all_ classes have a suffix indicating their dimension.
For example, {{Plane3D}}, {{QuaternionRotation3D}}, {{AxisAngleSequence3D}},
{{Sphere3D}}, etc. This seems excessive to me.
I'm confused about what changes you're proposing exactly. Could you provide a
listing of the new class names you're picturing for each package?
> Segment is not mathematically correct
> -------------------------------------
>
> Key: GEOMETRY-92
> URL: https://issues.apache.org/jira/browse/GEOMETRY-92
> Project: Apache Commons Geometry
> Issue Type: Improvement
> Reporter: Matt Juntunen
> Priority: Major
> Labels: beta1
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The {{Segment}} class is not mathematically correct because line segments are
> defined as having distinct start and end points, whereas the start and end
> points in {{Segment}} are optional. In other words, an instance of
> {{Segment}} can represent an entire line, a ray, or a segment. I propose
> renaming the existing {{Segment}} class to {{ConvexSubLine}} and creating
> subclasses to represent the distinct types of sublines.
> * {{ConvexSubLine}} - Abstract convex subline class. The factory methods
> (such as fromPoints()), would examine the inputs and return one of the
> specific subclasses below. Each subclass would also contain its own factory
> methods that apply input validation (eg, no null points when creating a
> {{Segment}}). This would also allow each subclass to optimize some
> computations based on the known characteristics of the represented entity.
> ** {{FullLine}} - no start or end points
> ** {{Segment}} - contains non-null start point and end point
> ** {{Ray}} - contains non-null start point and null end point
> ** {{ReverseRay}} - contains non-null end point and null start point (not
> sure if there is a more mathematical term for this)
> These changes would also apply to the 3D classes:
> * {{ConvexSubLine3D}}
> ** {{FullLine3D}}
> ** {{Segment3D}}
> ** {{Ray3D}}
> ** {{ReverseRay3D}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)