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

Object
  extended by ForceElevationCalculator.ElevationDeterminationScenario
Enclosing class:
ForceElevationCalculator

protected static class ForceElevationCalculator.ElevationDeterminationScenario
extends Object

Group of connected GridElements that are set up for elevation determination. A calculate() call will determine and store the final elevation profile for each element.


Nested Class Summary
protected static class ForceElevationCalculator.ElevationDeterminationScenario.AngleForce
          force that tries to reduce extreme angles.
protected static class ForceElevationCalculator.ElevationDeterminationScenario.ConnectionForce
          force that influences the elevation of two connected nodes in a way that fits incline information.
protected static class ForceElevationCalculator.ElevationDeterminationScenario.DirectionConnectionForce
          Connection to be used if only incline=up/down is given.
protected static interface ForceElevationCalculator.ElevationDeterminationScenario.Force
           
protected static class ForceElevationCalculator.ElevationDeterminationScenario.ForceNode
          a node that is affected by the forces during elevation determination.
 class ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnArea
          ForceElevationCalculator.ElevationDeterminationScenario.ForceNode representing a point on a MapArea
 class ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnLine
          ForceElevationCalculator.ElevationDeterminationScenario.ForceNode representing a point on a MapWaySegment
 class ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnNode
          ForceElevationCalculator.ElevationDeterminationScenario.ForceNode based on a MapNode
 class ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnTerrainPoint
           
protected static class ForceElevationCalculator.ElevationDeterminationScenario.InclineConnectionForce
          Connection to be used if there is explicit incline information.
protected static class ForceElevationCalculator.ElevationDeterminationScenario.NeighborshipForce
          Force for linking two nodes that are at a small distance from each other in the terrain.
protected static class ForceElevationCalculator.ElevationDeterminationScenario.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.ElevationDeterminationScenario.UnknownInclineConnectionForce
          Connection to be used if there is no incline information.
protected static class ForceElevationCalculator.ElevationDeterminationScenario.VerticalDistanceForce
          force that tries to enforce a minimum vertical distance between two nodes, used at intersections and overlaps
 
Field Summary
protected  Map<MapArea,List<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode>> areaMap
           
protected  CellularTerrainElevation eleData
           
protected  Collection<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode> forceNodes
           
protected  Collection<ForceElevationCalculator.ElevationDeterminationScenario.Force> forces
           
protected  Set<MapOverlap<?,?>> knownOverlaps
           
protected  Map<MapWaySegment,List<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode>> lineMap
           
protected  Map<MapNode,ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnNode> nodeMap
           
protected  Map<TerrainPoint,ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnTerrainPoint> terrainPointMap
           
 
Constructor Summary
ForceElevationCalculator.ElevationDeterminationScenario(CellularTerrainElevation eleData)
           
 
Method Summary
 void addArea(MapArea area)
           
 void addElement(MapElement e)
           
 void addIntersectionWW(MapIntersectionWW intersection)
           
 void addNode(MapNode node)
           
 void addOverlap(MapOverlap<?,?> o)
           
 void addOverlapAA(MapOverlapAA overlap)
           
 void addOverlapWA(MapOverlapWA overlap)
           
 void addTerrainPoint(TerrainPoint point)
           
 void addWaySegment(MapWaySegment line)
           
 void calculate()
          simulates several abstract "forces" affecting the elevation of grid elements.
protected  float forceScaleForStep(int step)
           
protected  int getCalculationSteps()
          determines the number of calculation steps.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eleData

protected final CellularTerrainElevation eleData

nodeMap

protected final Map<MapNode,ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnNode> nodeMap

lineMap

protected final Map<MapWaySegment,List<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode>> lineMap

areaMap

protected final Map<MapArea,List<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode>> areaMap

terrainPointMap

protected final Map<TerrainPoint,ForceElevationCalculator.ElevationDeterminationScenario.ForceNodeOnTerrainPoint> terrainPointMap

knownOverlaps

protected final Set<MapOverlap<?,?>> knownOverlaps

forces

protected final Collection<ForceElevationCalculator.ElevationDeterminationScenario.Force> forces

forceNodes

protected final Collection<ForceElevationCalculator.ElevationDeterminationScenario.ForceNode> forceNodes
Constructor Detail

ForceElevationCalculator.ElevationDeterminationScenario

public ForceElevationCalculator.ElevationDeterminationScenario(CellularTerrainElevation eleData)
Method Detail

addElement

public final void addElement(MapElement e)

addOverlap

public final void addOverlap(MapOverlap<?,?> o)

addNode

public final void addNode(MapNode node)

addWaySegment

public final void addWaySegment(MapWaySegment line)

addArea

public final void addArea(MapArea area)

addIntersectionWW

public void addIntersectionWW(MapIntersectionWW intersection)

addOverlapWA

public void addOverlapWA(MapOverlapWA overlap)

addOverlapAA

public void addOverlapAA(MapOverlapAA overlap)

addTerrainPoint

public final void addTerrainPoint(TerrainPoint point)

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.


forceScaleForStep

protected final float forceScaleForStep(int step)

getCalculationSteps

protected int getCalculationSteps()
determines the number of calculation steps. The default implementation returns ForceElevationCalculator.CALCULATION_STEPS.