org.osm2world.core.map_elevation.creation
Class ElevationCalculator.ElevationDeterminationScenario.AngleForce

Object
  extended by ElevationCalculator.ElevationDeterminationScenario.AngleForce
All Implemented Interfaces:
ElevationCalculator.ElevationDeterminationScenario.Force
Enclosing class:
ElevationCalculator.ElevationDeterminationScenario

protected static final class ElevationCalculator.ElevationDeterminationScenario.AngleForce
extends Object
implements ElevationCalculator.ElevationDeterminationScenario.Force

force that tries to reduce extreme angles. If the center node is not on the interpolation between the two adjacent lines, a force will try to move it there.


Field Summary
protected  Double effect
          effect used in apply()
protected  ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1
           
protected  ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2
           
protected  ElevationCalculator.ElevationDeterminationScenario.ForceNode node
           
 
Constructor Summary
ElevationCalculator.ElevationDeterminationScenario.AngleForce(ElevationCalculator.ElevationDeterminationScenario.ForceNode node, ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1, ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2)
           
 
Method Summary
 void apply()
          applies this force to the nodes affected by it.
 void prepare(float forceScale)
          Calculates the effect of the next application, but doesn't modify the ElevationCalculator.ElevationDeterminationScenario.ForceNodes yet.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

node

protected final ElevationCalculator.ElevationDeterminationScenario.ForceNode node

neighbor1

protected final ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1

neighbor2

protected final ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2

effect

protected Double effect
effect used in apply()

Constructor Detail

ElevationCalculator.ElevationDeterminationScenario.AngleForce

public ElevationCalculator.ElevationDeterminationScenario.AngleForce(ElevationCalculator.ElevationDeterminationScenario.ForceNode node,
                                                                     ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1,
                                                                     ElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2)
Method Detail

prepare

public void prepare(float forceScale)
Description copied from interface: ElevationCalculator.ElevationDeterminationScenario.Force
Calculates the effect of the next application, but doesn't modify the ElevationCalculator.ElevationDeterminationScenario.ForceNodes yet. Must be called once before each ElevationCalculator.ElevationDeterminationScenario.Force.apply() call. This method has been introduced to remove effects of the force order (otherwise, later forces could "react" to the previous ones).

Specified by:
prepare in interface ElevationCalculator.ElevationDeterminationScenario.Force
Parameters:
forceScale - scale factor for the force's strength

apply

public void apply()
Description copied from interface: ElevationCalculator.ElevationDeterminationScenario.Force
applies this force to the nodes affected by it.

Specified by:
apply in interface ElevationCalculator.ElevationDeterminationScenario.Force