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