Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

de-cruft & improve quest #20

Open
4 tasks
tcql opened this issue Dec 21, 2015 · 0 comments
Open
4 tasks

de-cruft & improve quest #20

tcql opened this issue Dec 21, 2015 · 0 comments

Comments

@tcql
Copy link
Owner

tcql commented Dec 21, 2015

Wrapping up a couple of big priorities that I've partially started on and hope to tackle a bit more during the holiday break

  • Determine likely operations up front using bbox tests and simple logic
    • Ex: In intersect mode, Subject Boundary + Clip Boundary require intersection. Subject Boundary + Clip Hole require subtraction. We know this from the beginning and can calculate ahead
    • Bbox checks let us avoid work, which is 👍🚀
  • Convert arrays to Ring and Vector up front. Only convert back to arrays during output.
  • Change input format to use formalized objects
    • Following GeoJSON style means that the algorithm has to have intrinsic knowledge (that is unspecified!) and has to sort out whether you passed it a multipolygon with 3 rings or a polygon with one ring and 2 holes
    • Instead I want to implement a Polygon(ring, [holes]) class that can be used to generate proper input structures.
  • Internalize pointInPolygon, isClockwise and other utility methods to make GH dependencyless

I think all in all this will help clean up and narrow down the focus, which will make it easier to reason about better degeneracy handling and let us kill failing degenerate cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant