Commit f9d4d45d authored by Luna Riegel's avatar Luna Riegel
Browse files

Fix: Filter Features before collision calculation

Filters out Water and Land Features before calculating FeatureCollisions
as these FeatureTypes will require separate, special checks.
parent 197b48b3
...@@ -18,6 +18,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; ...@@ -18,6 +18,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject;
import de.hft.stuttgart.citydoctor2.datastructure.Building; import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture; import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject; import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.datastructure.FeatureType;
import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject; import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
...@@ -129,6 +130,10 @@ public class FeatureCollisionCheck extends Check{ ...@@ -129,6 +130,10 @@ public class FeatureCollisionCheck extends Check{
private void checkForFeatureCollisions(CityObject subject){ private void checkForFeatureCollisions(CityObject subject){
Collection<CityObject> candidates = cache.getCandidates(subject, epsilon); Collection<CityObject> candidates = cache.getCandidates(subject, epsilon);
candidates = candidates.stream()
.filter(c -> c.getFeatureType() != FeatureType.LAND &&
c.getFeatureType() != FeatureType.WATER )
.toList();
List<Geometry> subjGeoms = new ArrayList<>(); List<Geometry> subjGeoms = new ArrayList<>();
subject.accept(new CheckableUtilsVisitor() { subject.accept(new CheckableUtilsVisitor() {
@Override @Override
...@@ -189,8 +194,6 @@ public class FeatureCollisionCheck extends Check{ ...@@ -189,8 +194,6 @@ public class FeatureCollisionCheck extends Check{
return intersections; return intersections;
} }
@Override @Override
public Check createNewInstance() { public Check createNewInstance() {
return new FeatureCollisionCheck(); return new FeatureCollisionCheck();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment