You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gilles Sadowski (Jira)" <ji...@apache.org> on 2020/03/30 15:17:00 UTC

[jira] [Commented] (GEOMETRY-92) Segment is not mathematically correct

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

Gilles Sadowski commented on GEOMETRY-92:
-----------------------------------------

How about
* {{Line}} (instead of {{FullLine}})
* {{OutgoingRay}} (instead of {{Ray}})
* {{IncomingRay}} (instead of {{ReverseRay}})

?

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