ExtractPolygonalPrismData & ConcaveHull yeild wrong results
tl;dr If the concave hull is made of multiple polygons, when the prism checks if a point is inside, the result is sometimes wrong. I also have the solution.
To test it, I made a cloud of 2 rings, found there concave hull, and applied ExtractPolygonalPrismData on them.
before fix:

after fix:

To Reproduce I've put a working code in my github
pcl:x64-windows 1.12.0#4
Possible Solution
I've written and tested a solution.
But first I'll explain the bug. each point is tested if it is inside a polygon using this code.
The problem is that if there is more than one ring in the polyongs, the code flattens them to one polygons, adding more segments that doesn't exist.
To solve this, I took the polygons from ConcaveHull, which discribe the rings and their order, and passed it to ExtractPolygonalPrismData::segment. Then, I added an overload to isXYPointIn2DXYPolygon that recieved the rings order as well, and check each of them seperatly.
I could do a PR if someone would read and aprove.
Please go ahead and make a PR and also a unit test that verifies the result, to avoid future bugs.
https://github.com/PointCloudLibrary/pcl/pull/5168 @larshg review and approve please