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;
import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture;
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.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
......@@ -129,6 +130,10 @@ public class FeatureCollisionCheck extends Check{
private void checkForFeatureCollisions(CityObject subject){
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<>();
subject.accept(new CheckableUtilsVisitor() {
@Override
......@@ -189,8 +194,6 @@ public class FeatureCollisionCheck extends Check{
return intersections;
}
@Override
public Check createNewInstance() {
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