Skip to content

Commit

Permalink
Make constraint enforcer robust against null ele values
Browse files Browse the repository at this point in the history
  • Loading branch information
tordanik committed Aug 22, 2024
1 parent cc5181d commit a42ff54
Showing 1 changed file with 11 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,7 @@

import static java.util.Arrays.asList;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;

import org.osm2world.core.map_elevation.data.EleConnector;

Expand Down Expand Up @@ -158,13 +151,10 @@ public void enforceConstraints() {

for (StiffConnectorSet stiffSet : stiffSetMap.values()) {

double averageEle = 0;

for (EleConnector connector : stiffSet) {
averageEle += connector.getPosXYZ().y;
}

averageEle /= stiffSet.size();
double averageEle = stiffSet.connectors.stream()
.filter(it -> it.getPosXYZ() != null)
.mapToDouble(it -> it.getPosXYZ().y)
.average().orElse(0.0);

for (EleConnector connector : stiffSet) {
connector.setPosXYZ(connector.pos.xyz(averageEle));
Expand All @@ -181,10 +171,12 @@ public void enforceConstraints() {

//TODO use clearing

switch (c.groundState) {
case ABOVE: c.setPosXYZ(c.getPosXYZ().addY(5)); break;
case BELOW: c.setPosXYZ(c.getPosXYZ().addY(-5)); break;
default: //stay at ground elevation
if (c.getPosXYZ() != null) {
switch (c.groundState) {
case ABOVE -> c.setPosXYZ(c.getPosXYZ().addY(5));
case BELOW -> c.setPosXYZ(c.getPosXYZ().addY(-5));
default -> { /* stay at ground elevation */ }
}
}

}
Expand Down

0 comments on commit a42ff54

Please sign in to comment.