-
Notifications
You must be signed in to change notification settings - Fork 98
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
PointCulling as trait #273
PointCulling as trait #273
Conversation
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the ℹ️ Googlers: Go here for more info. |
src/octree/batch_iterator.rs
Outdated
iterator.try_for_each(|point: Point| point_stream.push_point_and_callback(point))?; | ||
point_stream.callback() | ||
let mut iterator: Box<Iterator<Item = NodeId>> = | ||
get_node_id_iterator(&self.octree, &self.culling); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here the origin of most changes. (still wip) the node id iterator returns the id filtered by the geo query expressed by the culling and then the operation on the nodes can be parallelized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does get_node_id_iterator come from? I don't see it in the other PR.
#[derive(Debug, Clone)] | ||
pub struct OrientedBeam { | ||
pub struct OrientedBeam<S> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about making this its own small PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to change the f64 in S to allow for Sync and Send for the trait. The other changes except for the trait are again already in master, here unfortunately yet not visible cause the PR of NodeIdIterator is still open
At a high level, do you think we could keep the |
Resuming from the spontaneous pairing session with Nikolai: keeping the point culling enum struct allows to spare costly dereferencing from Arc and Box with the cost of few disambiguation lines https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b5ad139bdfae3bcc3e93d15911c8ee0a |
this PR has been splitted up. |
To prepare parallelization across nodes, we split into node search first and then point iteration and filtering. PointCulling has being reformatted into a trait to perform the most common operations.