-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
LoadPLYFile should be able to load large ply files correctly #2243
Conversation
Thanks for investigating this and proposing a fix. |
So will this fix already proposed and be provided in next release? |
Let's see what others have to say. But for sure we will merge this very soon and it will be in the next release. |
That sounds cool. Anyway you can feel free to close the pull request |
Nice to see this changes! |
Patch on top of #2145
Your Environment
Expected Behavior
pcl::io::LoadPLYFile should be able to load large ply files correctly
Current Behavior
While trying to load a 40 GB .ply point cloud using the following:
I get a point cloud which all points are
(0, 0, 0)
Issue
In io/src/ply/ply_parser.cpp line 498, the ply parse function is trying to check whether
end_header_callback_
is return true. Otherwise it will return from the ply parse procedure. And this return will remain all points as its initial value(0,0,0)
And in io/src/ply/ply_io.cpp line 95, the endHeaderCallback is return a checking between
data.size()
with a expressioncloud_->point_step * cloud_->width * cloud_->height
which is not always true whilecloud_->point_step * cloud_->width * cloud_->height
is larger than 4,294,967,295(Max number of 32 bit integer)Resolution
As proposed in pull request, I changed the checking as below
It works in my env.
Context
We are trying to process large building information to be able to be processed by our computing engine