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

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

protected static final class ForceElevationCalculator.ElevationDeterminationScenario.AngleForce
extends Object
implements ForceElevationCalculator.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  ForceElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1
           
protected  ForceElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2
           
protected  ForceElevationCalculator.ElevationDeterminationScenario.ForceNode node
           
 
Constructor Summary
ForceElevationCalculator.ElevationDeterminationScenario.AngleForce(ForceElevationCalculator.ElevationDeterminationScenario.ForceNode node, ForceElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1, ForceElevationCalculator.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 ForceElevationCalculator.ElevationDeterminationScenario.ForceNodes yet.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

node

protected final ForceElevationCalculator.ElevationDeterminationScenario.ForceNode node

neighbor1

protected final ForceElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor1

neighbor2

protected final ForceElevationCalculator.ElevationDeterminationScenario.ForceNode neighbor2

effect

protected Double effect
effect used in apply()

Constructor Detail

ForceElevationCalculator.ElevationDeterminationScenario.AngleForce

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

prepare

public void prepare(float forceScale)
Description copied from interface: ForceElevationCalculator.ElevationDeterminationScenario.Force
Calculates the effect of the next application, but doesn't modify the ForceElevationCalculator.ElevationDeterminationScenario.ForceNodes yet. Must be called once before each ForceElevationCalculator.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 ForceElevationCalculator.ElevationDeterminationScenario.Force
Parameters:
forceScale - scale factor for the force's strength

apply

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

Specified by:
apply in interface ForceElevationCalculator.ElevationDeterminationScenario.Force