Diego Guidi

Results 96 comments of Diego Guidi

I'm working on resolving an issue with this geom: `MULTIPOLYGON (((-124.134 -79.199, -124.141 -79.316, -124.164 -79.431, -124.202 -79.542, -124.254 -79.647, -124.319 -79.745, -124.396 -79.833, -124.484 -79.91, -124.582 -79.975, -124.687 -80.027,...

@FObermaier I slightly changed the logic. Now when a potential hole of a shell is found, we check also the shell holes, to see if any hole contains the potential...

@FObermaier any advice on this?

> I actually don't quite know how to proceed. Actually, I have the same feeling: with the "new" [polygon builder logic](https://github.com/NetTopologySuite/NetTopologySuite.IO.ShapeFile/pull/80/commits/603a9c1d2a11133aaa76483c34905471ea6c482d) all the tests are green, but I fear that...

@FObermaier added a "temporary" static property as a flag, I need to think a bit better about how to manage the entire "flag" thing... suggestions are welcome! after a brief...

> I didn't expected to be too much slower but actually - based on some poor-man's [performance tests](https://github.com/NetTopologySuite/NetTopologySuite.IO.ShapeFile/blob/fix_polywithinvalidshell/test/NetTopologySuite.IO.ShapeFile.Test/Issue70Fixture.cs#L162) - it's **much** (~3X) slower ``` WRITE => elapsed: '00:00:00.4138680' ShapeFileDataReader flag...

just a small note: tests marked as `Explicit` are always executed in my machine (using VS2019). this is why I used `Ignore` instead: now I understood that probably it's something...

> AFAIK `Explicit` will always run from within the UI (VisualStudio). exactly what happens to me

["For faster computation, a polygon is considered to be inside another one if a single point of its external ring is included into the other one"](https://github.com/OSGeo/gdal/blob/363178015ae009fa1187d8c1e20b3587db43aa58/ogr/ogrgeometryfactory.cpp#L1513) maybe we can refactor...

> I'd assume that without the cheap envelope precondition test we'll see a performance degeneration. I just mean that `IsHoleContainedInShell` check should just use `PointLocation.IsInRing`