-
-
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
Copy cloud in cloud #567
Copy cloud in cloud #567
Conversation
For void free functions when arguments are wrong throw this exception
@jspricke can we pull this ? |
@taketwo, can you have a look at it have some stuff pending that require it ;) |
I see you have something adapted from OpenCV. As far as I know we already have some other stuff from OpenCV in module |
hmm, well I didn't put it in 2d since it is meant for interpolating a border and not only in 2d. |
But where would |
Regarding the new exception type you introduced, I think |
{ | ||
BORDER_CONSTANT = 0, BORDER_REPLICATE = 1, | ||
BORDER_REFLECT = 2, BORDER_WRAP = 3, | ||
BORDER_REFLECT_101 = 4, BORDER_TRANSPARENT = 5, |
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.
BORDER_TRANSPARENT
does not seem to be handled by interpolate()
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 It's used in copyPointCloud. @nizar-sallem can you add a comment about that on in the Doxygen?
I am not sure, does you function require organized point clouds? If this is the case would be nice to mention in docs and also make a run-time check. Also there are a few places where a space is missing (near I think this is pretty much everything from my side. |
I would vote for putting |
I am wondering if this new |
Well it really copies a cloud inside another bigger cloud that is what it does independently of the border stuff. |
As far as I see you create a new cloud which is the same size as the input plus the borders: cloud_out.width = cloud_in.width + left + right;
cloud_out.height = cloud_in.height + top + bottom;
cloud_out.points.resize (cloud_out.width * cloud_out.height); Also |
Yes, but from a semantic point of view you are copying a cloud A inside a bigger cloud B while interpolating border or not. |
Well I will agree with you, as an author you know better :) But I am still concerned about non-organized clouds. Suppose you have a 10x10 cloud and want 1 point border in each direction. If it is organized, then |
Actually, discard my calculations, they are valid, but do not prove anything. |
Well it makes sense if you think about it as a single line from a bigger cloud, no ? |
Okay, again you probably know better :) I guess this whole discussion happened simply because I do not have a slightest idea of what is the use-case of the function :) |
Just wait then you will get your answer Sir :) next PR uses it extensively. |
Haha I guess so, but that's a chicken and egg problem in a sense. You can not make the next PR without merging this one, we can not adequately discuss this one without seeing the next one. Doh :) Gathering together Jochen's and my suggestions:
And then we are good to go. |
Yup :) |
Done |
@taketwo where are the missing spaces please ? |
Lines 409, 436. |
@jspricke I think it was you who suggested this name. Is there any reason why you used snake-case? |
No :). Just wanted to point out a better name. |
lol I will rename it to PCL rules. |
Add function that allows to opy a point cloud A inside a bigger point cloud B. The position where to copy is given by top, bottom, left and right margins. The empty lines/columns are filled by interpolating original cloud lines/columns The aim is to replace spring stuff with faster method
Done |
Add ability to copy a cloud inside another one while interpolating borders.