PointCloudLibrary / PointCloudLibrary/pcl

Isn't it very easy to messup when using current PointCloud/Index/SearchMethod interface design?

Open
#3,259 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

needs: feedback
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:

  1. KNN search, Radius search... etc methods which are originally provided via SearchMethod.
  2. Point iterator methods which are originally provided via PointCloud/Index
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.