-
Notifications
You must be signed in to change notification settings - Fork 56
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
Special condensed packing for point data #33
Comments
This has also crossed my mind a few times. :) |
Is there still interest in this? If it would be considered, I'd consider attempting a PR. My general thoughts would be:
|
I had some time on a flight, tried to implement this, and learned why drawing the rest of the owl is non-trivial 😉. It took me embarrassingly long to realize that only the leaf nodes contain a single x and y, because all intermediate nodes contain more than one point 🙈. So it seems like the complexity is mostly in the structure of the boxes and the use of It would increase complexity and might have a small performance regression for the non-point case, but it seems like we could work around this by having a subtraction offset (computed based on the number of items in the tree) and based on the tree level. This is an interesting problem, and it would be really awesome to have a single tree structure that works equally well for points and non-points, so I think I'll still try to get a solution in the near future |
@kylebarron awesome, thanks for working on this! I attempted this in the past but run into the same issue — it demanded a significant increase in complexity and branching not just in indexing but search methods too, and at some point it seemed that it would be easier to just fork the project with a separate point-based version rather than implement it all in one class. But if you find an elegant way to incorporate this, I'd be happy to review. |
I wonder if it's possible to use twice less memory specifically for point data, where we know that
maxX
andmaxY
duplicateminX
andminY
. This could look like an option in the constructor (onlyPoints = false
), and then adding special case handling for indexed leaves.The text was updated successfully, but these errors were encountered: