public class TriangleWavePositionIterator extends Object implements Iterator
/\ /\ <--- Amplitude / \ / \ ________/ \_________/ \_____ ^ ^ | Wave length|
Modifier and Type | Field and Description |
---|---|
protected double |
amplitude
Amplitude of the wave, in meters.
|
protected Position |
firstPosition
First position along the line.
|
protected Globe |
globe
Globe used to compute geographic positions.
|
protected Angle |
halfWaveLength
Wavelength, as a geographic angle.
|
protected Position |
nextControlPosition
Position of the next control point.
|
protected Iterator<? extends Position> |
positions
Control positions.
|
protected int |
state
Current state of the state machine.
|
protected static int |
STATE_FIRST
Initial state.
|
protected static int |
STATE_LINE
Drawing connecting line between waves.
|
protected static int |
STATE_TOOTH_PEAK
At peak of wave.
|
protected static int |
STATE_WAVE_START
About to draw wave.
|
protected Position |
thisPosition
Current position.
|
protected double |
thisStep
Distance (in meters) to the next wave start or end.
|
protected Position |
waveEndPosition
End position for the current wave.
|
Constructor and Description |
---|
TriangleWavePositionIterator(Iterable<? extends Position> positions,
double waveLength,
double amplitude,
Globe globe)
Create a new iterator to compute the positions of a triangle wave.
|
Modifier and Type | Method and Description |
---|---|
protected Position |
computeNext()
Compute the next position along the line, and transition the state machine to the next state (if appropriate).
|
boolean |
hasNext() |
Position |
next() |
void |
remove()
Not supported.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining
protected double amplitude
protected Position firstPosition
protected Globe globe
protected Angle halfWaveLength
protected Position nextControlPosition
protected int state
protected static final int STATE_FIRST
protected static final int STATE_LINE
protected static final int STATE_TOOTH_PEAK
protected static final int STATE_WAVE_START
protected Position thisPosition
protected double thisStep
protected Position waveEndPosition
public TriangleWavePositionIterator(Iterable<? extends Position> positions, double waveLength, double amplitude, Globe globe)
positions
- Control positions for the triangle wave line.waveLength
- Distance (in meters) between waves.amplitude
- Amplitude (in meters) of the wave. This is the distance from the base line to the tip of each
triangular wave.globe
- Globe used to compute geographic positions.protected Position computeNext()