FILT: Voxelize Point Cloud - #1724
Conversation
84b8ca9 to
e21b5df
Compare
Review 1/5 — Correctness, crash & UB risksHarsh review of Blocking
High
Medium
|
Review 2/5 — CPU, memory & out-of-core compatibilityGood news first: the algorithm is genuinely streaming on the input side. Out-of-core access patterns
Responsiveness
Documentation of intent
|
Review 3/5 — Parameter keys, naming & API consistencyParameter keys: variable names and string values disagree with each other and with the repo
Repo conventions, confirmed by grep across
Parameter types and layout
Missing user control over the created geometry — the main functional gap vs issue #704Issue #704 asks for two versions: V1 = "the user supplies the image geometry", V2 = "allow user to create the image geometry in the same way as the Partition Geometry filter". The auto-size path implements neither: it hard-codes origin This is what makes the overflow item in Review 1 so easy to hit: spacing is permanently 1.0 in whatever units the point cloud happens to use, so a millimetre- or micron-scale cloud produces an absurd voxel count with no recourse.
Code hygiene
|
Review 4/5 — Test coverageCredit where due: Structural gaps
Coverage gaps in what is asserted
Regression tests to add alongside the Review 1 fixes
Nit
|
Review 5/5 — Documentation
Structure
Accuracy
Missing caveats
|
e21b5df to
c38c443
Compare
c38c443 to
a570787
Compare
Fixes: #704
Naming Conventions
Naming of variables should descriptive where needed. Loop Control Variables can use
iif warranted. Most of these conventions are enforced through the clang-tidy and clang-format configuration files. See the filesimplnx/docs/Code_Style_Guide.mdfor a more in depth explanation.Filter Checklist
The help file
simplnx/docs/Porting_Filters.mdhas documentation to help you port or write new filters. At the top is a nice checklist of items that should be noted when porting a filter.Unit Testing
The idea of unit testing is to test the filter for proper execution and error handling. How many variations on a unit test each filter needs is entirely dependent on what the filter is doing. Generally, the variations can fall into a few categories:
Code Cleanup