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

Matt Juntunen commented on GEOMETRY-94:
---------------------------------------

I think I get what you're saying now: the term "subhyperplane" seems to be 
specific to our main BSP tree reference paper and is more like an 
implementation detail than a standard mathematical term. However, 
commons-geometry treats it like a standard term, which will lead to confusion 
on the part of the user. "HyperplaneConvexSet" does seem like a better choice 
from this point of view. So, what do you think of a naming schema like this:

* {{Hyperplane}}
* {{HyperplaneSubset}} <-- "SubHyperplane"
* {{HyperplaneConvexSubset}} <-- "ConvexSubHyperplane"

Implementations would follow the format of replacing "Hyperplane" with the 
common name of the hyperplane for that dimension.

Below is a listing of the primary classes using this format. I've also included 
classes that we're discussing in GEOMETRY-92 so we can get a full picture.

* Euclidean 2D
** {{Line}} - implements Hyperplane
** {{LineSubset}} - implements HyperplaneSubset
** {{LineConvexSubset}} - implements HyperplaneConvexSubset
** {{EmbeddedTreeLineSubset}} - extends LineSubset
** {{LineSpanningSubset}} - formerly "Line.Span", extends LineConvexSubset
** {{Ray}} - extends LineConvexSubset
** {{ReverseRay}} - extends LineConvexSubset
** {{Segment}} - extends LineConvexSubset

* Euclidean 3D
** {{Plane}} - implements Hyperplane
** {{PlaneSubset}} - implements HyperplaneSubset
** {{PlaneConvexSubset}} - implements HyperplaneConvexSubset
** {{EmbeddedTreePlaneSubset}} - extends PlaneSubset
** {{PlaneSpanningSubset}} - extends PlaneConvexSubset 
** {{PlaneFiniteConvexSubset}} - extends PlaneConvexSubset
** {{Triangle3D}} - extends PlaneFiniteConvexSubset
** {{Line3D}}
** {{LineSubset3D}}
** {{LineConvexSubset3D}}
** {{EmbeddedTreeLineSubset3D}} - extends LineSubset3D
** {{LineSpanningSubset3D}} - extends {{LineSubset3D}}
** {{Ray3D}} - extends LineConvexSubset3D
** {{ReverseRay3D}} - extends LineConvexSubset3D
** {{Segment3D}} - extends LineConvexSubset3D

* Spherical 2D
** {{GreatCircle}} - implements Hyperplane
** {{GreatCircleSubset}} - implements HyperplaneSubset
** {{GreatCircleConvexSubset}} - implements HyperplaneConvexSubset
** {{EmbeddedTreeGreatCircleSubset}} - extends GreatCircleSubset
** {{GreatArc}} - extends GreatCircleConvexSubset

One alternative to the above naming scheme would be to place the additional 
descriptors in the class name before the name of the hyperplane. We would then 
have {{ConvexHyperplaneSubset}} instead of {{HyperplaneConvexSubset}}. This 
would make the descriptor stand out more and would prevent all of the class 
names from starting with the same word. I may like that better but I haven't 
yet decided.

> ConvexSubPlane Subclasses
> -------------------------
>
>                 Key: GEOMETRY-94
>                 URL: https://issues.apache.org/jira/browse/GEOMETRY-94
>             Project: Apache Commons Geometry
>          Issue Type: New Feature
>            Reporter: Matt Juntunen
>            Priority: Major
>              Labels: beta1
>
> There should be specific subclasses of {{ConvexSubPlane}} to allow for 
> optimization and ease of use.
>  - {{OpenConvexSubPlane}} - extends {{ConvexSubPlane}}; represents a convex 
> subplane that is open on a least one side and has infinite size
>  - {{ClosedConvexSubPlane}} - extends {{ConvexSubPlane}}; represents a convex 
> subplane with finite size; the 2D subspace is a polygon
>  - {{Triangle3D}} - extends {{ClosedConvexSubPlane}}; represents a triangle 
> in 3D space; most 3D models are or can easily be represented with triangles 
> so it would be good to have a dedicated class for this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to