org.osm2world.core.map_elevation.creation
public class EleConstraintValidator extends Object implements EleConstraintEnforcer
EleConstraintEnforcer
that passes all calls though,
but looks for obvious contradictions in the constraints to help with debugging.EleConstraintEnforcer.ConstraintType
Constructor and Description |
---|
EleConstraintValidator(MapData mapData,
EleConstraintEnforcer enforcer) |
Modifier and Type | Method and Description |
---|---|
void |
addConnectors(Iterable<EleConnector> connectors)
makes connectors known to this enforcer.
|
void |
enforceConstraints()
tries to enforce the previously added constraints
on elevations of connectors that have been added using
EleConstraintEnforcer.addConnectors(Iterable) |
void |
requireIncline(EleConstraintEnforcer.ConstraintType type,
double incline,
List<EleConnector> cs)
requires an incline along a sequence of connectors.
|
void |
requireSameEle(EleConnector c1,
EleConnector c2)
requires two connectors to be at the same elevation
|
void |
requireSameEle(Iterable<EleConnector> cs)
requires a number of connectors to be at the same elevation
|
void |
requireSmoothness(EleConnector v1,
EleConnector v2,
EleConnector v3)
requires that there is a "smooth" transition between two line segments
|
void |
requireVerticalDistance(EleConstraintEnforcer.ConstraintType type,
double distance,
EleConnector upper,
EleConnector lower)
requires two connectors' elevations to differ by a given distance
|
void |
requireVerticalDistance(EleConstraintEnforcer.ConstraintType type,
double distance,
EleConnector upper,
EleConnector base1,
EleConnector base2)
requires a connector to be a give distance above a line segment
defined by two other connectors.
|
public EleConstraintValidator(MapData mapData, EleConstraintEnforcer enforcer)
public void addConnectors(Iterable<EleConnector> connectors)
EleConstraintEnforcer
EleConstraintEnforcer.enforceConstraints()
.addConnectors
in interface EleConstraintEnforcer
connectors
- connectors with elevation values initially set to
terrain elevation at their xz positionpublic void requireSameEle(EleConnector c1, EleConnector c2)
EleConstraintEnforcer
requireSameEle
in interface EleConstraintEnforcer
public void requireSameEle(Iterable<EleConnector> cs)
EleConstraintEnforcer
requireSameEle
in interface EleConstraintEnforcer
public void requireVerticalDistance(EleConstraintEnforcer.ConstraintType type, double distance, EleConnector upper, EleConnector lower)
EleConstraintEnforcer
requireVerticalDistance
in interface EleConstraintEnforcer
public void requireVerticalDistance(EleConstraintEnforcer.ConstraintType type, double distance, EleConnector upper, EleConnector base1, EleConnector base2)
EleConstraintEnforcer
requireVerticalDistance
in interface EleConstraintEnforcer
distance
- distance, may be negative if 'upper' is actually belowpublic void requireIncline(EleConstraintEnforcer.ConstraintType type, double incline, List<EleConnector> cs)
EleConstraintEnforcer
requireIncline
in interface EleConstraintEnforcer
incline
- incline value,
negative values are inclines in opposite directionpublic void requireSmoothness(EleConnector v1, EleConnector v2, EleConnector v3)
EleConstraintEnforcer
requireSmoothness
in interface EleConstraintEnforcer
public void enforceConstraints()
EleConstraintEnforcer
EleConstraintEnforcer.addConnectors(Iterable)
enforceConstraints
in interface EleConstraintEnforcer