Closed axtavt closed 3 months ago
Created PR #172
Case 2 - incorrect result of ray_shoot() for polygon with self-touching face:
const polygon = new Flatten.Polygon();
polygon.addFace([
point(90, 10), point(100, 10), point(100, 50), point(110, 50), point(110, 10), point(100, 10), point(100, 0),
point(120, 0), point(120, 60), point(90, 60)
]);
let contains = ray_shoot(polygon, point(85, 10)); // should be OUTSIDE, returns INSIDE instead
Created PR #173
Hi @axtavt , Thank you so much for your contribution I will check your PR's
Hello @axtavt , You PR is great but I made a small change: when sorting intersection points, I added sorting by face_index and then by edge arc_length, that ensure that two points originated from same edges, will be neighbors in sorted array. Then if the first point is counted, second one is ignored. Thank you for noticing and fixing this problem.
Fixed release in v1.5.2
Attempt to unify polygons when one of them is a particular multipolygon with touching faces (valid) causes
Error: Cannot complete boolean operation
:It's caused by incorrect heaviour of
ray_shoot()
for such a mutlipolygon: