Class InteriorAngleGreatArcConnector
java.lang.Object
org.apache.commons.geometry.euclidean.internal.AbstractPathConnector<AbstractGreatArcConnector.ConnectableGreatArc>
org.apache.commons.geometry.spherical.twod.AbstractGreatArcConnector
org.apache.commons.geometry.spherical.twod.InteriorAngleGreatArcConnector
- Direct Known Subclasses:
InteriorAngleGreatArcConnector.Maximize,InteriorAngleGreatArcConnector.Minimize
Great arc connector that selects between multiple connection options
based on the resulting interior angle. An interior angle in this
case is the angle created between an incoming arc and an outgoing arc
as measured on the minus (interior) side of the incoming arc. If looking
along the direction of the incoming arc, smaller interior angles
point more to the left and larger ones point more to the right.
This class provides two concrete implementations: InteriorAngleGreatArcConnector.Maximize and
InteriorAngleGreatArcConnector.Minimize, which choose connections with the largest or smallest interior
angles respectively.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classImplementation ofInteriorAngleGreatArcConnectorthat chooses arc connections that produce the largest interior angles.static classImplementation ofInteriorAngleGreatArcConnectorthat chooses arc connections that produce the smallest interior angles.Nested classes/interfaces inherited from class org.apache.commons.geometry.spherical.twod.AbstractGreatArcConnector
AbstractGreatArcConnector.ConnectableGreatArcNested classes/interfaces inherited from class org.apache.commons.geometry.euclidean.internal.AbstractPathConnector
AbstractPathConnector.ConnectableElement<E extends AbstractPathConnector.ConnectableElement<E>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic List<GreatArcPath> connectMaximized(Collection<GreatArc> arcs) Convenience method for connecting a set of arcs with interior angles maximized when possible.static List<GreatArcPath> connectMinimized(Collection<GreatArc> arcs) Convenience method for connecting a set of line segments with interior angles minimized when possible.protected abstract booleanisBetterAngle(double newAngle, double previousAngle) Return true ifnewAnglerepresents a better interior angle thanpreviousAngle.selectConnection(AbstractGreatArcConnector.ConnectableGreatArc incoming, List<AbstractGreatArcConnector.ConnectableGreatArc> outgoing) Method called to select a connection to use for a given segment when multiple non-length-zero connections are available.Methods inherited from class org.apache.commons.geometry.spherical.twod.AbstractGreatArcConnector
add, add, connect, connectAll, connectAllMethods inherited from class org.apache.commons.geometry.euclidean.internal.AbstractPathConnector
addPathElement, computePathRoots, connectPathElements, selectPointConnection
-
Constructor Details
-
InteriorAngleGreatArcConnector
public InteriorAngleGreatArcConnector()
-
-
Method Details
-
selectConnection
protected AbstractGreatArcConnector.ConnectableGreatArc selectConnection(AbstractGreatArcConnector.ConnectableGreatArc incoming, List<AbstractGreatArcConnector.ConnectableGreatArc> outgoing) Method called to select a connection to use for a given segment when multiple non-length-zero connections are available. In this case, the selection of the outgoing connection depends only on the desired characteristics of the connected path.- Specified by:
selectConnectionin classAbstractPathConnector<AbstractGreatArcConnector.ConnectableGreatArc>- Parameters:
incoming- the incoming segmentoutgoing- list of available outgoing connections; will always contain at least two elements- Returns:
- the connection to use
-
isBetterAngle
protected abstract boolean isBetterAngle(double newAngle, double previousAngle) Return true ifnewAnglerepresents a better interior angle thanpreviousAngle.- Parameters:
newAngle- the new angle under considerationpreviousAngle- the previous best angle- Returns:
- true if
newAnglerepresents a better interior angle thanpreviousAngle
-
connectMaximized
Convenience method for connecting a set of arcs with interior angles maximized when possible. This method is equivalent tonew Maximize().connect(segments).- Parameters:
arcs- arcs to connect- Returns:
- a list of connected arc paths
- See Also:
-
connectMinimized
Convenience method for connecting a set of line segments with interior angles minimized when possible. This method is equivalent tonew Minimize().connect(segments).- Parameters:
arcs- arcs to connect- Returns:
- a list of connected arc paths
- See Also:
-