Commit 05d47e69 authored by Luna Riegel's avatar Luna Riegel
Browse files

Fix: Filter out shared wall from collisions

parent 268d9e66
...@@ -172,13 +172,17 @@ public class FeatureCollisionCheck extends Check{ ...@@ -172,13 +172,17 @@ public class FeatureCollisionCheck extends Check{
.calculateGeometryIntersections(subjectGeom, candidateGeom, epsilon); .calculateGeometryIntersections(subjectGeom, candidateGeom, epsilon);
return intersections.stream() return intersections.stream()
.filter( polySect -> polySect.getType() != PolygonIntersection.IntersectionType.NONE) .filter( polySect -> polySect.getType() != PolygonIntersection.IntersectionType.NONE)
.filter(polySect -> notCollinear(polySect.getT1(),polySect.getT2()))
.map(polySect -> new Pair<>(polySect.getP1(), polySect.getP2())) .map(polySect -> new Pair<>(polySect.getP1(), polySect.getP2()))
.toList(); .toList();
} }
private boolean notCollinear(Triangle3d t1, Triangle3d t2){
return !t1.getNormal().normalize().equalsWithEpsilon(t2.getNormal().normalize(), 0.01);
}
private List<PolygonIntersection> getPolygonIntersections(Geometry subject, Geometry candidate){ private List<PolygonIntersection> getPolygonIntersections(Geometry subject, Geometry candidate){
List<PolygonIntersection> intersections = new ArrayList<>(); List<PolygonIntersection> intersections = new ArrayList<>();
for(Polygon sPoly : subject.getPolygons()){ for(Polygon sPoly : subject.getPolygons()){
for(Polygon cPoly : candidate.getPolygons()){ for(Polygon cPoly : candidate.getPolygons()){
intersections.add(SelfIntersectionUtil.polygonIntersection(sPoly, cPoly, 0.001, epsilon)); intersections.add(SelfIntersectionUtil.polygonIntersection(sPoly, cPoly, 0.001, epsilon));
......
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