PointCloudLibrary / PointCloudLibrary/pcl
Isn't it very easy to messup when using current PointCloud/Index/SearchMethod interface design?
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
There is no reason to split filter index with acceleration structure.
Why not just design a "PointCloudReference" class that contain filter index and corresponding acceleration structure (and contain a shared pointer that point to actual PointCloud),
and provide:
- KNN search, Radius search... etc methods which are originally provided via SearchMethod.
- Point iterator methods which are originally provided via PointCloud/Index
- Automatic acceleration structure update when PointCloud/Index is been updated
and every function do not directly use "PointCloud/Index/SearchMethod" as parameter, but using "PointCloudReference" instead...
Isn't this way is much more clear, intuitive and easy to use? and the interface will be more concise, and will need much lesser check work...
for example: no more setSearchMethod, setIndices... etc.
PointCloudRef<PointT> input;
...// init input
PointCloudRef<PointT> output;
pcl::NormalEstimationOMP<PointT, PointT> ne;
ne.setInputCloud(input);
ne.compute(output);
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing PointCloud, Index, and SearchMethod interfaces and how they are used by NormalEstimationOMP. Define the proposed PointCloudReference responsibilities and affected APIs before implementation. Done requires an agreed design that covers searches, point iteration, shared point-cloud ownership, and acceleration-structure updates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100