-
-
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
Created shape generator in simulation module #895
base: master
Are you sure you want to change the base?
Conversation
151816e
to
0911f66
Compare
0911f66
to
46fb655
Compare
* \author Markus Schoeler ([email protected]) | ||
* \ingroup simulation | ||
*/ | ||
struct EIGEN_ALIGN16 PointXYZLNormal |
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.
@jspricke Would it make sense to promote this to the default collection of point types?
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.
Makes sense :).
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.
Should we have PointXYZLNormal
or PointXYZRGBLNormal
as a common point type? The latter will get quite large, although the RGB fields could proof useful in other scenarios.
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.
As far as I can see PCL uses a float[4] padding in PointXYZINormal
for the data anyway. So I guess using curvature, label and rgb would actually take the same amount of space as curvature and label?!?
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.
So I guess using curvature, label and rgb would actually take the same amount of space as curvature and label
Yes, you are right. Though the fact that it is possible to add other fields does not necessarily mean that this is ought to be done. I would say let's wait until we face those other scenarios that need the complex type. But this particular contribution only needs PointXYZLNormal
.
9e07ed9
to
5e15e11
Compare
ae8add6
to
fc20a32
Compare
* \note Templated function which copies only the fields available in out_cloud. Possible fields are x, y, z, label and normals. | ||
*/ | ||
template <typename PointOutType> inline void | ||
getCloud (typename pcl::PointCloud<PointOutType> &out_cloud) const |
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.
Isn't getCloudConstPtr()
already sufficient? Someone who needs a deep copy can always invoke copyPointCloud()
by himself...
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.
@taketwo: Actually I reconsidered your comment about generate returning the cloud. I think it would make the interface much more comprehensive and also save memory as the shape classes would just consist of lighweight functions instead of dynamically allocated objects like pointclouds . Also that way we do not need the getCloud.. and copyPointCloud functions at all.
However this would prevent transforming the generated clouds afterwards, which I guess is not so important anyway. It should not be too much work to do this.
Could you please change the type of |
8bd7a83
to
c0d44cb
Compare
d13ac1c
to
c75ba9f
Compare
Added the tool generate_shape and the example pcl_example_shape_generator Added simulation to doxygen generation Added ply, obj and stl file sampler under tools convert2pcd Changed the interface to the shape generator. generate will return a shared pointer. Removed other pointcloud getter functions. Shapes are now lightweight classes (mainly functions) and pointclouds are generated, but not stored in the class.
c75ba9f
to
0b3422d
Compare
This is a nice "hidden gem" in the closet. :) I know it's been some time since you contributed this, but I still have to ask, Merge conflict (mandatory)Can you rebase this post our 1.8.1 release? Unit tests (mandatory)I've noticed you haven't submitted any unit tests with your code, although I'm sure you must have used something to validade its output. Could you please submit that as well. Tutorial (optional)Although not required and fully aware that you already submitted an example, it would be great if you could submit also a tutorial similar to this, very very briefly explaining the purpose of the simulation module and showcasing the capabilities of the functionalities you added. It really helps to promote your contribution as users tend to explore the tutorials, not really the repository. Especially considering it's probably going to be the first simulation tutorial :) Thanks a lot for this 👍 |
Hey Sergio, sorry for not replying earlier. I will try to work on it when I get some time. When is the release date for 1.9? |
Hey Markus. I'm really sorry for replying so late! I didn't reply the moment I received the notification and since this PR is so old and I don't come to "this section" very often, I forgot about it. :( We released 1.8.1 in June this year and now we're incorporating all new features for 1.9.0. If you feel like you have some extra time at some point, we can now start working slowly into merging this. |
This pull request has been automatically marked as stale because it hasn't had Come back whenever you have time. We look forward to your contribution. |
This pull request has been automatically marked as stale because it hasn't had Come back whenever you have time. We look forward to your contribution. |
This pull request has been automatically marked as stale because it hasn't had Come back whenever you have time. We look forward to your contribution. |
This pull-request is the second part of my GSOC 2014 project.