-
-
Notifications
You must be signed in to change notification settings - Fork 59
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
Add "E57Simple" API #41
Conversation
As you can tell from the work I put into the original fork, I'm not a fan of "put everything in one file". Would it be feasible to at least split this into two - one for read (E57SimpleRead) and one for write (E57SimpleWrite)? |
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.
There are also a couple of easy fixes in the CodeFactor CI (blank lines). And maybe you can take a look at what it has identified as complex methods to see if they can be made less complex?
Thanks a lot for the feedback and good suggestions. I will look into it next week and get back to you. |
Thanks for the submission! |
generate uuids todo: time handling
* do not require optional coordinateMetadata * generate new guid automatically when writing scans
Add support for normals as per E57_EXT_surface_normals. Currently only writing of normals as float32 is supported.
Follows the sizes used in the Foundation API.
default member initializers prevent aggregate initialization until C++14
* remove duplicate documentation - consolidate docuemntation in E57Simple.h
virtuality there is unused as no classes inherits from these
* remove extra semicolons
* these are unused
These callbacks don't fit the aim from the E57Simple API. For writing custom extensions use the Foundation API.
* remove unused includes
create WriterImpl.cpp, WriterImpl.h, ReaderImpl.cpp, src/ReaderImpl.h
* make sure everything is formatted - some changed slipped the incremental formatting
I have rebased the branch to sync with master. Aside the changes to address the comments above, I have also added the necessary The code is now split into 2 files. I have tried to improve the code complexity side as well, but clearly most of the code is still based on the original implementation. I have at least removed some of those extremely long if cases in Reader by employing early exits there. That way it is also more consistent with the Writer. Many of the other cleanups discussed above went really well. Thanks for those suggestions! |
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.
Thanks - looking good!
A few changes requested and a couple of questions/suggestions.
Most of the methods of Reader are const, while most of the methods of Writer are not const.
* create E57SimpleData.h, E57SimpleReader.h, E57SimpleWriter.h
Hi, sorry for a slow response from my side. Thanks for the feedback! I'm looking into the changes and I will get back to you tomorrow. |
No problem at all Jiri! I appreciate you taking the time to work on this and that you are willing to incorporate feedback. |
automatic fix with clang-tidy
I'm done with the last round of changes. Thanks for all he suggestions. Most of them I have just applied directly. I took a broader look at the constness of the member methods of both Reader and Writer and I have changed all of them to follow the semantic constness w.r.t. E57 file. Constness is also now the same for the Impl classes. I have also applied Cheers, |
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.
Thank you very much for your work on this Jiri!
Hi,
this is a port of E57Simple API of the reference library.
Main goal of this is to simplify reading and writing of point clouds with the most common attributes: float x, y, z; float nx, ny, nz; uint8 r, g, b (and any subset of these).
I have removed all the platform specific dependencies from the code, removed the unused code and formatted the code to fit the rest of the library. All duplicate documentation comments have been removed and the doxygen documentation is collected in
E57Simple.h
.The main changes compared to the original implementation are:
Data3DPointsData
to simplify calls toSetUpData3DPointsData
You might want to merge this with squashing all the changes. I have kept here the commits to indicate the changes made to the original code.
Cheers,
Jiri
Jiri Hörner
Software Development Engineer, Vuforia
jhoerner@ptc.com
vuforia.com
Parametric Technology Gesellschaft m.b.H., Operngasse 17-21, 1040 Wien, Austria. Firmensitz: Wien, FN: 111171 m, Firmenbuchgericht: Handelsgericht Wien.
The information contained in this email transmission is confidential and may be privileged. If you are not the intended recipient, any use, dissemination, distribution, publication, or copying of the information contained in this email is strictly prohibited. If you have received this email in error, please immediately notify me by calling the above number and delete the email from your system. Thank you for your co-operation.
Copyright © 2020 PTC Inc. and/or all its affiliates or subsidiaries. All rights reserved