Top Description Inners Constructors Methods
org.apache.commons.math3.geometry.spherical.oned

public Class ArcsSet

extends AbstractRegion<Sphere1D, Sphere1D>
implements Iterable<double[]>
Class Inheritance
All Implemented Interfaces
java.lang.Iterable
Imports
java.util.ArrayList, .Collection, .Iterator, .List, .NoSuchElementException, org.apache.commons.math3.exception.MathIllegalArgumentException, .MathInternalError, .NumberIsTooLargeException, org.apache.commons.math3.exception.util.LocalizedFormats, org.apache.commons.math3.geometry.Point, org.apache.commons.math3.geometry.partitioning.AbstractRegion, .BSPTree, .BoundaryProjection, .Side, .SubHyperplane, org.apache.commons.math3.util.FastMath, .MathUtils, .Precision

This class represents a region of a circle: a set of arcs.

Note that due to the wrapping around \(2 \pi\), barycenter is ill-defined here. It was defined only in order to fulfill the requirements of the Region interface, but its use is discouraged.

Since
3.3

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
ArcsSet.InconsistentStateAt2PiWrapping

Specialized exception for inconsistent BSP tree state inconsistency.

public static class
ArcsSet.Split

Class holding the results of the split method.

private class
ArcsSet.SubArcsIterator

Local iterator for sub-arcs.

Constructor Summary

AccessConstructor and Description
public
ArcsSet(final double
tolerance below which close sub-arcs are merged together
tolerance
)

Build an arcs set representing the whole circle.

public
ArcsSet(final double
lower bound of the arc
lower
,
final double
upper bound of the arc
upper
,
final double
tolerance below which close sub-arcs are merged together
tolerance
)

Build an arcs set corresponding to a single arc.

public
ArcsSet(final BSPTree<Sphere1D>
inside/outside BSP tree representing the arcs set
tree
,
final double
tolerance below which close sub-arcs are merged together
tolerance
)

Build an arcs set from an inside/outside BSP tree.

public
ArcsSet(final Collection<SubHyperplane<Sphere1D>>
collection of boundary elements
boundary
,
final double
tolerance below which close sub-arcs are merged together
tolerance
)

Build an arcs set from a Boundary REPresentation (B-rep).

Method Summary

Modifier and TypeMethod and Description
private void
addArcLimit(final BSPTree<Sphere1D>
BSP tree under construction
tree
,
final double
arc limit
alpha
,
final boolean
if true, the limit is the start of an arc
isStart
)

Add an arc limit to a BSP tree under construction.

public List<Arc>

Returns:

a new ordered list containing Arc elements
asList
()

Build an ordered list of arcs representing the instance.

public ArcsSet
buildNew(final BSPTree<Sphere1D>
inside/outside BSP tree representing the new region
tree
)

Implements abstract org.apache.commons.math3.geometry.partitioning.AbstractRegion.buildNew.

Implements org.apache.commons.math3.geometry.partitioning.Region.buildNew.

Build a region using the instance as a prototype.

private static BSPTree<Sphere1D>

Returns:

the built tree
buildTree
(final double
lower angular bound of the arc
lower
,
final double
upper angular bound of the arc
upper
,
final double
tolerance below which close sub-arcs are merged together
tolerance
)

Build an inside/outside tree representing a single arc.

private void
check2PiConsistency()

Check consistency.

private BSPTree<Sphere1D>

Returns:

child node just after the internal node
childAfter
(BSPTree<Sphere1D>
internal node at which the sub-tree starts
node
)

Find the child node just after an internal node.

private BSPTree<Sphere1D>

Returns:

child node just before the internal node
childBefore
(BSPTree<Sphere1D>
internal node at which the sub-tree starts
node
)

Find the child node just before an internal node.

protected void
private ArcsSet

Returns:

split part (may be null)
createSplitPart
(final List<Double>
limit angles of the split part
limits
)

Create a split part.

private double

Returns:

limit angle
getAngle
(final BSPTree<Sphere1D>
internal node to check
node
)

Get the limit angle of an internal node.

private BSPTree<Sphere1D>

Returns:

smallest internal node (i.e. first after 0.0 radians, in trigonometric direction), or null if there are no internal nodes (i.e. the set is either empty or covers the full circle)
getFirstArcStart
()

Get the node corresponding to the first arc start.

private BSPTree<Sphere1D>

Returns:

first leaf node (i.e. node corresponding to the region just after 0.0 radians)
getFirstLeaf
(final BSPTree<Sphere1D>
tree root
root
)

Get the first leaf node of a tree.

private BSPTree<Sphere1D>

Returns:

last leaf node (i.e. node corresponding to the region just before \( 2 \pi \) radians)
getLastLeaf
(final BSPTree<Sphere1D>
tree root
root
)

Get the last leaf node of a tree.

private boolean

Returns:

true is the node has a parent end is after it in trigonometric order
isAfterParent
(final BSPTree<Sphere1D>
child node considered
node
)

Check if a node is the child after its parent in trigonometric order.

private boolean

Returns:

true if the node corresponds to the end angle of an arc
isArcEnd
(final BSPTree<Sphere1D>
internal node to check
node
)

Check if an internal node corresponds to the end angle of an arc.

private boolean

Returns:

true if the node corresponds to the start angle of an arc
isArcStart
(final BSPTree<Sphere1D>
internal node to check
node
)

Check if an internal node corresponds to the start angle of an arc.

private boolean

Returns:

true is the node has a parent end is before it in trigonometric order
isBeforeParent
(final BSPTree<Sphere1D>
child node considered
node
)

Check if a node is the child before its parent in trigonometric order.

private boolean

Returns:

true if the limit angle is direct
isDirect
(final BSPTree<Sphere1D>
internal node to check
node
)

Check if an internal node has a direct limit angle.

public Iterator<double[]>
iterator()

Implements java.lang.Iterable.iterator.

Returns an iterator over elements of type T.

private BSPTree<Sphere1D>

Returns:

leaf node just after the internal node
leafAfter
(BSPTree<Sphere1D>
internal node at which the sub-tree starts
node
)

Find the leaf node just after an internal node.

private BSPTree<Sphere1D>

Returns:

leaf node just before the internal node
leafBefore
(BSPTree<Sphere1D>
internal node at which the sub-tree starts
node
)

Find the leaf node just before an internal node.

private BSPTree<Sphere1D>

Returns:

next internal node in trigonometric order, or null if this is the last internal node
nextInternalNode
(BSPTree<Sphere1D>
current internal node
node
)

Get the next internal node.

private BSPTree<Sphere1D>

Returns:

previous internal node in trigonometric order, or null if this is the first internal node
previousInternalNode
(BSPTree<Sphere1D>
current internal node
node
)

Get the previous internal node.

public BoundaryProjection<Sphere1D>
public Side
side(final Arc
arc to check instance against
arc
)
Deprecated as of 3.6, replaced with split(Arc).

Compute the relative position of the instance with respect to an arc.

public ArcsSet.Split

Returns:

an object containing both the part of the instance on the plus side of the arc and the part of the instance on the minus side of the arc
split
(final Arc
splitting arc
arc
)

Split the instance in two parts by an arc.

Inherited from org.apache.commons.math3.geometry.partitioning.AbstractRegion:
applyTransformcheckPointcheckPointcheckPointcheckPointcontainscopySelfgetBarycentergetBoundarySizegetSizegetTolerancegetTreeintersectionisEmptyisEmptyisFullisFullsetBarycentersetBarycentersetSizeside

Constructor Detail

ArcsSetback to summary
public ArcsSet(final double tolerance)

Build an arcs set representing the whole circle.

Parameters
tolerance:double

tolerance below which close sub-arcs are merged together

ArcsSetback to summary
public ArcsSet(final double lower, final double upper, final double tolerance) throws NumberIsTooLargeException

Build an arcs set corresponding to a single arc.

If either lower is equals to upper or the interval exceeds \( 2 \pi \), the arc is considered to be the full circle and its initial defining boundaries will be forgotten. lower is not allowed to be greater than upper (an exception is thrown in this case).

Parameters
lower:double

lower bound of the arc

upper:double

upper bound of the arc

tolerance:double

tolerance below which close sub-arcs are merged together

Exceptions
NumberIsTooLargeException:
if lower is greater than upper
ArcsSetback to summary
public ArcsSet(final BSPTree<Sphere1D> tree, final double tolerance) throws InconsistentStateAt2PiWrapping

Build an arcs set from an inside/outside BSP tree.

The leaf nodes of the BSP tree must have a Boolean attribute representing the inside status of the corresponding cell (true for inside cells, false for outside cells). In order to avoid building too many small objects, it is recommended to use the predefined constants Boolean.TRUE and Boolean.FALSE

Parameters
tree:BSPTree<Sphere1D>

inside/outside BSP tree representing the arcs set

tolerance:double

tolerance below which close sub-arcs are merged together

Exceptions
InconsistentStateAt2PiWrapping:
if the tree leaf nodes are not consistent across the \( 0, 2 \pi \) crossing
ArcsSetback to summary
public ArcsSet(final Collection<SubHyperplane<Sphere1D>> boundary, final double tolerance) throws InconsistentStateAt2PiWrapping

Build an arcs set from a Boundary REPresentation (B-rep).

The boundary is provided as a collection of sub-hyperplanes. Each sub-hyperplane has the interior part of the region on its minus side and the exterior on its plus side.

The boundary elements can be in any order, and can form several non-connected sets (like for example polygons with holes or a set of disjoints polyhedrons considered as a whole). In fact, the elements do not even need to be connected together (their topological connections are not used here). However, if the boundary does not really separate an inside open from an outside open (open having here its topological meaning), then subsequent calls to the checkPoint method will not be meaningful anymore.

If the boundary is empty, the region will represent the whole space.

Parameters
boundary:Collection<SubHyperplane<Sphere1D>>

collection of boundary elements

tolerance:double

tolerance below which close sub-arcs are merged together

Exceptions
InconsistentStateAt2PiWrapping:
if the tree leaf nodes are not consistent across the \( 0, 2 \pi \) crossing

Method Detail

addArcLimitback to summary
private void addArcLimit(final BSPTree<Sphere1D> tree, final double alpha, final boolean isStart)

Add an arc limit to a BSP tree under construction.

Parameters
tree:BSPTree<Sphere1D>

BSP tree under construction

alpha:double

arc limit

isStart:boolean

if true, the limit is the start of an arc

asListback to summary
public List<Arc> asList()

Build an ordered list of arcs representing the instance.

This method builds this arcs set as an ordered list of Arc elements. An empty tree will build an empty list while a tree representing the whole circle will build a one element list with bounds set to \( 0 and 2 \pi \).

Returns:List<Arc>

a new ordered list containing Arc elements

buildNewback to summary
public ArcsSet buildNew(final BSPTree<Sphere1D> tree)

Implements abstract org.apache.commons.math3.geometry.partitioning.AbstractRegion.buildNew.

Implements org.apache.commons.math3.geometry.partitioning.Region.buildNew.

Doc from org.apache.commons.math3.geometry.partitioning.AbstractRegion.buildNew.

Build a region using the instance as a prototype.

This method allow to create new instances without knowing exactly the type of the region. It is an application of the prototype design pattern.

The leaf nodes of the BSP tree must have a Boolean attribute representing the inside status of the corresponding cell (true for inside cells, false for outside cells). In order to avoid building too many small objects, it is recommended to use the predefined constants Boolean.TRUE and Boolean.FALSE. The tree also must have either null internal nodes or internal nodes representing the boundary as specified in the getTree method).

Parameters
tree:BSPTree<Sphere1D>

Doc from org.apache.commons.math3.geometry.partitioning.Region.buildNew.

inside/outside BSP tree representing the new region

Returns:ArcsSet

Doc from org.apache.commons.math3.geometry.partitioning.Region.buildNew.

the built region

Annotations
@Override
buildTreeback to summary
private static BSPTree<Sphere1D> buildTree(final double lower, final double upper, final double tolerance) throws NumberIsTooLargeException

Build an inside/outside tree representing a single arc.

Parameters
lower:double

lower angular bound of the arc

upper:double

upper angular bound of the arc

tolerance:double

tolerance below which close sub-arcs are merged together

Returns:BSPTree<Sphere1D>

the built tree

Exceptions
NumberIsTooLargeException:
if lower is greater than upper
check2PiConsistencyback to summary
private void check2PiConsistency() throws InconsistentStateAt2PiWrapping

Check consistency.

Exceptions
InconsistentStateAt2PiWrapping:
if the tree leaf nodes are not consistent across the \( 0, 2 \pi \) crossing
childAfterback to summary
private BSPTree<Sphere1D> childAfter(BSPTree<Sphere1D> node)

Find the child node just after an internal node.

Parameters
node:BSPTree<Sphere1D>

internal node at which the sub-tree starts

Returns:BSPTree<Sphere1D>

child node just after the internal node

childBeforeback to summary
private BSPTree<Sphere1D> childBefore(BSPTree<Sphere1D> node)

Find the child node just before an internal node.

Parameters
node:BSPTree<Sphere1D>

internal node at which the sub-tree starts

Returns:BSPTree<Sphere1D>

child node just before the internal node

computeGeometricalPropertiesback to summary
protected void computeGeometricalProperties()

Implements abstract org.apache.commons.math3.geometry.partitioning.AbstractRegion.computeGeometricalProperties.

Doc from org.apache.commons.math3.geometry.partitioning.AbstractRegion.computeGeometricalProperties.

Compute some geometrical properties.

The properties to compute are the barycenter and the size.

Annotations
@Override
createSplitPartback to summary
private ArcsSet createSplitPart(final List<Double> limits)

Create a split part.

As per construction, the list of limit angles is known to have an even number of entries, with start angles at even indices and end angles at odd indices.

Parameters
limits:List<Double>

limit angles of the split part

Returns:ArcsSet

split part (may be null)

getAngleback to summary
private double getAngle(final BSPTree<Sphere1D> node)

Get the limit angle of an internal node.

Parameters
node:BSPTree<Sphere1D>

internal node to check

Returns:double

limit angle

getFirstArcStartback to summary
private BSPTree<Sphere1D> getFirstArcStart()

Get the node corresponding to the first arc start.

Returns:BSPTree<Sphere1D>

smallest internal node (i.e. first after 0.0 radians, in trigonometric direction), or null if there are no internal nodes (i.e. the set is either empty or covers the full circle)

getFirstLeafback to summary
private BSPTree<Sphere1D> getFirstLeaf(final BSPTree<Sphere1D> root)

Get the first leaf node of a tree.

Parameters
root:BSPTree<Sphere1D>

tree root

Returns:BSPTree<Sphere1D>

first leaf node (i.e. node corresponding to the region just after 0.0 radians)

getLastLeafback to summary
private BSPTree<Sphere1D> getLastLeaf(final BSPTree<Sphere1D> root)

Get the last leaf node of a tree.

Parameters
root:BSPTree<Sphere1D>

tree root

Returns:BSPTree<Sphere1D>

last leaf node (i.e. node corresponding to the region just before \( 2 \pi \) radians)

isAfterParentback to summary
private boolean isAfterParent(final BSPTree<Sphere1D> node)

Check if a node is the child after its parent in trigonometric order.

Parameters
node:BSPTree<Sphere1D>

child node considered

Returns:boolean

true is the node has a parent end is after it in trigonometric order

isArcEndback to summary
private boolean isArcEnd(final BSPTree<Sphere1D> node)

Check if an internal node corresponds to the end angle of an arc.

Parameters
node:BSPTree<Sphere1D>

internal node to check

Returns:boolean

true if the node corresponds to the end angle of an arc

isArcStartback to summary
private boolean isArcStart(final BSPTree<Sphere1D> node)

Check if an internal node corresponds to the start angle of an arc.

Parameters
node:BSPTree<Sphere1D>

internal node to check

Returns:boolean

true if the node corresponds to the start angle of an arc

isBeforeParentback to summary
private boolean isBeforeParent(final BSPTree<Sphere1D> node)

Check if a node is the child before its parent in trigonometric order.

Parameters
node:BSPTree<Sphere1D>

child node considered

Returns:boolean

true is the node has a parent end is before it in trigonometric order

isDirectback to summary
private boolean isDirect(final BSPTree<Sphere1D> node)

Check if an internal node has a direct limit angle.

Parameters
node:BSPTree<Sphere1D>

internal node to check

Returns:boolean

true if the limit angle is direct

iteratorback to summary
public Iterator<double[]> iterator()

Implements java.lang.Iterable.iterator.

Doc from java.lang.Iterable.iterator.

Returns an iterator over elements of type T.

The iterator returns the limit angles pairs of sub-arcs in trigonometric order.

The iterator does not support the optional remove operation.

Returns:Iterator<double[]>

an Iterator.

leafAfterback to summary
private BSPTree<Sphere1D> leafAfter(BSPTree<Sphere1D> node)

Find the leaf node just after an internal node.

Parameters
node:BSPTree<Sphere1D>

internal node at which the sub-tree starts

Returns:BSPTree<Sphere1D>

leaf node just after the internal node

leafBeforeback to summary
private BSPTree<Sphere1D> leafBefore(BSPTree<Sphere1D> node)

Find the leaf node just before an internal node.

Parameters
node:BSPTree<Sphere1D>

internal node at which the sub-tree starts

Returns:BSPTree<Sphere1D>

leaf node just before the internal node

nextInternalNodeback to summary
private BSPTree<Sphere1D> nextInternalNode(BSPTree<Sphere1D> node)

Get the next internal node.

Parameters
node:BSPTree<Sphere1D>

current internal node

Returns:BSPTree<Sphere1D>

next internal node in trigonometric order, or null if this is the last internal node

previousInternalNodeback to summary
private BSPTree<Sphere1D> previousInternalNode(BSPTree<Sphere1D> node)

Get the previous internal node.

Parameters
node:BSPTree<Sphere1D>

current internal node

Returns:BSPTree<Sphere1D>

previous internal node in trigonometric order, or null if this is the first internal node

projectToBoundaryback to summary
public BoundaryProjection<Sphere1D> projectToBoundary(final Point<Sphere1D> point)

Overrides org.apache.commons.math3.geometry.partitioning.AbstractRegion.projectToBoundary.

Implements org.apache.commons.math3.geometry.partitioning.Region.projectToBoundary.

Doc from org.apache.commons.math3.geometry.partitioning.AbstractRegion.projectToBoundary.

Project a point on the boundary of the region.

Parameters
point:Point<Sphere1D>

Doc from org.apache.commons.math3.geometry.partitioning.Region.projectToBoundary.

point to check

Returns:BoundaryProjection<Sphere1D>

Doc from org.apache.commons.math3.geometry.partitioning.Region.projectToBoundary.

projection of the point on the boundary

Annotations
@Override
Since
3.3
sideback to summary
public Side side(final Arc arc)

Deprecated

as of 3.6, replaced with split(Arc).Split#getSide()

Compute the relative position of the instance with respect to an arc.

The Side#MINUS side of the arc is the one covered by the arc.

Parameters
arc:Arc

arc to check instance against

Returns:Side

one of Side#PLUS, Side#MINUS, Side#BOTH or Side#HYPER

Annotations
@Deprecated
splitback to summary
public ArcsSet.Split split(final Arc arc)

Split the instance in two parts by an arc.

Parameters
arc:Arc

splitting arc

Returns:ArcsSet.Split

an object containing both the part of the instance on the plus side of the arc and the part of the instance on the minus side of the arc

org.apache.commons.math3.geometry.spherical.oned back to summary

public Class ArcsSet.InconsistentStateAt2PiWrapping

extends MathIllegalArgumentException
Class Inheritance

Specialized exception for inconsistent BSP tree state inconsistency.

This exception is thrown at ArcsSet construction time when the inside/outside state is not consistent at the 0, \(2 \pi \) crossing.

Field Summary

Modifier and TypeField and Description
private static final long

Constructor Summary

AccessConstructor and Description
public
InconsistentStateAt2PiWrapping()

Simple constructor.

Method Summary

Inherited from org.apache.commons.math3.exception.MathIllegalArgumentException:
getContextgetLocalizedMessagegetMessage

Field Detail

serialVersionUIDback to summary
private static final long serialVersionUID

Hides org.apache.commons.math3.exception.MathIllegalArgumentException.serialVersionUID.

Serializable UID.

Constructor Detail

InconsistentStateAt2PiWrappingback to summary
public InconsistentStateAt2PiWrapping()

Simple constructor.

org.apache.commons.math3.geometry.spherical.oned back to summary

public Class ArcsSet.Split

extends Object
Class Inheritance
  • java.lang.Object
  • org.apache.commons.math3.geometry.spherical.oned.ArcsSet.Split

Class holding the results of the split method.

Field Summary

Modifier and TypeField and Description
private final ArcsSet
minus

Part of the arcs set on the minus side of the splitting arc.

private final ArcsSet
plus

Part of the arcs set on the plus side of the splitting arc.

Constructor Summary

AccessConstructor and Description
private
Split(final ArcsSet
part of the arcs set on the plus side of the splitting arc
plus
,
final ArcsSet
part of the arcs set on the minus side of the splitting arc
minus
)

Build a Split from its parts.

Method Summary

Modifier and TypeMethod and Description
public ArcsSet

Returns:

part of the arcs set on the minus side of the splitting arc
getMinus
()

Get the part of the arcs set on the minus side of the splitting arc.

public ArcsSet

Returns:

part of the arcs set on the plus side of the splitting arc
getPlus
()

Get the part of the arcs set on the plus side of the splitting arc.

public Side

Returns:

Side#PLUS if only getPlus() returns non-null, Side#MINUS if only getMinus() returns non-null, Side#BOTH if both getPlus() and getMinus() return non-null or Side#HYPER if both getPlus() and getMinus() return null
getSide
()

Get the side of the split arc with respect to its splitter.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

minusback to summary
private final ArcsSet minus

Part of the arcs set on the minus side of the splitting arc.

plusback to summary
private final ArcsSet plus

Part of the arcs set on the plus side of the splitting arc.

Constructor Detail

Splitback to summary
private Split(final ArcsSet plus, final ArcsSet minus)

Build a Split from its parts.

Parameters
plus:ArcsSet

part of the arcs set on the plus side of the splitting arc

minus:ArcsSet

part of the arcs set on the minus side of the splitting arc

Method Detail

getMinusback to summary
public ArcsSet getMinus()

Get the part of the arcs set on the minus side of the splitting arc.

Returns:ArcsSet

part of the arcs set on the minus side of the splitting arc

getPlusback to summary
public ArcsSet getPlus()

Get the part of the arcs set on the plus side of the splitting arc.

Returns:ArcsSet

part of the arcs set on the plus side of the splitting arc

getSideback to summary
public Side getSide()

Get the side of the split arc with respect to its splitter.

Returns:Side

Side#PLUS if only getPlus() returns non-null, Side#MINUS if only getMinus() returns non-null, Side#BOTH if both getPlus() and getMinus() return non-null or Side#HYPER if both getPlus() and getMinus() return null

Since
3.6
org.apache.commons.math3.geometry.spherical.oned back to summary

private Class ArcsSet.SubArcsIterator

extends Object
implements Iterator<double[]>
Class Inheritance
  • java.lang.Object
  • org.apache.commons.math3.geometry.spherical.oned.ArcsSet.SubArcsIterator
All Implemented Interfaces
java.util.Iterator

Local iterator for sub-arcs.

Field Summary

Modifier and TypeField and Description
private BSPTree<Sphere1D>
current

Current node.

private final BSPTree<Sphere1D>
firstStart

Start of the first arc.

private double[]
pending

Sub-arc no yet returned.

Constructor Summary

AccessConstructor and Description
pack-priv
SubArcsIterator()

Simple constructor.

Method Summary

Modifier and TypeMethod and Description
public boolean
hasNext()

Implements java.util.Iterator.hasNext.

Returns true if the iteration has more elements.

public double[]
next()

Implements java.util.Iterator.next.

Returns the next element in the iteration.

public void
remove()

Overrides default java.util.Iterator.remove.

Removes from the underlying collection the last element returned by this iterator (optional operation).

private void
selectPending()

Walk the tree to select the pending sub-arc.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

currentback to summary
private BSPTree<Sphere1D> current

Current node.

firstStartback to summary
private final BSPTree<Sphere1D> firstStart

Start of the first arc.

pendingback to summary
private double[] pending

Sub-arc no yet returned.

Constructor Detail

SubArcsIteratorback to summary
pack-priv SubArcsIterator()

Simple constructor.

Method Detail

hasNextback to summary
public boolean hasNext()

Implements java.util.Iterator.hasNext.

Doc from java.util.Iterator.hasNext.

Returns true if the iteration has more elements. (In other words, returns true if next would return an element rather than throwing an exception.)

Returns:boolean

true if the iteration has more elements

nextback to summary
public double[] next()

Implements java.util.Iterator.next.

Doc from java.util.Iterator.next.

Returns the next element in the iteration.

Returns:double[]

the next element in the iteration

removeback to summary
public void remove()

Overrides default java.util.Iterator.remove.

Doc from java.util.Iterator.remove.

Removes from the underlying collection the last element returned by this iterator (optional operation). This method can be called only once per call to next.

The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method, unless an overriding class has specified a concurrent modification policy.

The behavior of an iterator is unspecified if this method is called after a call to the forEachRemaining method.

selectPendingback to summary
private void selectPending()

Walk the tree to select the pending sub-arc.