Refactor NSS and DNSS implementations for improved readability and modularity#5
Refactor NSS and DNSS implementations for improved readability and modularity#5eclipse0922 wants to merge 2 commits intomasterfrom
Conversation
…dularity - Rewrote legacy code into clean C++17 style. - Added missing method implementations and input validation. - Introduced options struct for configurable parameters in NSS and DNSS. - Implemented CUDA support for DNSS rotational feature computation. - Added new CMake configuration for building with or without CUDA. - Updated README to reflect changes and provide build instructions. - Added .gitignore to exclude build directories.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
PR Description updated to latest commit (0afba09) |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨
|
User description
PR Type
Enhancement, Bug fix, Documentation
Description
Refactored NSS and DNSS implementations into clean C++17 with modular design and options structs.
Added input validation, fixed rotational-return math, and replaced legacy bucket operations with efficient lazy removal.
Implemented optional CUDA acceleration for DNSS rotational feature computation.
Updated README with algorithm notes, build instructions, and references.
Changes walkthrough 📝
NSS.cpp
Refactor sampling logic and add CUDA supportNSS.cpp
and options.
computeCenteredAndScaledVertices,computeRotationalReturnValue, andsphericalBucketIndex.normalSpaceSamplinganddualNormalSpaceSamplinglogic.RNG/shuffle.
NSS.h
Modernize header and optionsNSS.h
glm::fvec3fallback for portability.for new options and CUDA support.
dnss_cuda.cu
Add CUDA implementation for DNSSdnss_cuda.cu
CMakeLists.txt
Add CUDA build configurationCMakeLists.txt
DNSS_ENABLE_CUDAoption for optional CUDA acceleration.README.md
Update documentation and build guideREADME.md
instructions.