org.osm2world.core.map_elevation.creation
Class ForceElevationCalculator.ForceElevationDeterminationScenario

Object
  extended by AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario
      extended by ForceElevationCalculator.ForceElevationDeterminationScenario
All Implemented Interfaces:
AdvancedAbstractElevationCalculator.ElevationDeterminationScenario
Enclosing class:
ForceElevationCalculator

protected static class ForceElevationCalculator.ForceElevationDeterminationScenario
extends AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario


Nested Class Summary
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.AngleForce
          force that tries to reduce extreme angles.
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.ConnectionForce
          force that influences the elevation of two connected nodes in a way that fits incline information.
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.DirectionConnectionForce
          Connection to be used if only incline=up/down is given.
protected static interface ForceElevationCalculator.ForceElevationDeterminationScenario.Force
           
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.InclineConnectionForce
          Connection to be used if there is explicit incline information.
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.NeighborshipForce
          Force for linking two nodes that are at a small distance from each other in the terrain.
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.NodeElevationForce
          force trying to keep nodes with tagged elevation (or, with a weaker force, TerrainNodes with elevation data) close to that value
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.SameEleForce
          force that tries to keep two nodes at the same elevation
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.UnknownInclineConnectionForce
          Connection to be used if there is no incline information.
protected static class ForceElevationCalculator.ForceElevationDeterminationScenario.VerticalDistanceForce
          force that tries to enforce a minimum vertical distance between two nodes, used at intersections and overlaps
 
Nested classes/interfaces inherited from class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario
AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNodeOnArea, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNodeOnLine, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNodeOnNode, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNodeOnTerrainPoint
 
Field Summary
protected  CellularTerrainElevation eleData
           
protected  Collection<ForceElevationCalculator.ForceElevationDeterminationScenario.Force> forces
           
 
Fields inherited from class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario
areaMap, forceNodes, knownOverlaps, lineMap, nodeMap, terrainPointMap
 
Constructor Summary
ForceElevationCalculator.ForceElevationDeterminationScenario(CellularTerrainElevation eleData)
           
 
Method Summary
 void calculate()
          simulates several abstract "forces" affecting the elevation of grid elements.
protected  void handleConstantElevation(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node, Float ele, boolean tagged)
           
protected  void handleSameElevation(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node1, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node2)
           
protected  void handleVerticalMinDistance(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode lowerNode, AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode upperNode, double minDistance)
           
 
Methods inherited from class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario
addElement, addOverlap, addTerrainPoint, writeResult
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eleData

protected final CellularTerrainElevation eleData

forces

protected final Collection<ForceElevationCalculator.ForceElevationDeterminationScenario.Force> forces
Constructor Detail

ForceElevationCalculator.ForceElevationDeterminationScenario

public ForceElevationCalculator.ForceElevationDeterminationScenario(CellularTerrainElevation eleData)
Method Detail

handleConstantElevation

protected void handleConstantElevation(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node,
                                       Float ele,
                                       boolean tagged)
Specified by:
handleConstantElevation in class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario

handleVerticalMinDistance

protected void handleVerticalMinDistance(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode lowerNode,
                                         AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode upperNode,
                                         double minDistance)
Specified by:
handleVerticalMinDistance in class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario

handleSameElevation

protected void handleSameElevation(AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node1,
                                   AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario.ForceNode node2)
Specified by:
handleSameElevation in class AdvancedAbstractElevationCalculator.AbstractElevationDeterminationScenario

calculate

public void calculate()
simulates several abstract "forces" affecting the elevation of grid elements. Each force represents available information (such as the required clearing above roads - a force will push bridges away from the road if they are too low) or desirable characteristics of the grid's elevation (e.g. smooth curves - a straightening force will quickly increase for extreme angles). Uses calculateStep(float) for the individual calculation steps.