Skip to content

Conversation

@zfergus
Copy link
Member

@zfergus zfergus commented Jul 30, 2025

Description

  • Added a figure to the documentation for default dependencies of the ipc::toolkit library.
  • Updated GraphViz configuration to include transparent backgrounds and Menlo font.
  • Refactored BVH class to use unique_ptr to hide SimpleBVH
  • Updated Sweep and Prune and Sweep and Tiniest Queue classes to use a Pimpl pattern for encapsulation.
  • Change potential.tpp to potential.cpp file to hide implementation details.
  • Update Abseil to 20250512.1

Type of change

  • Enhancement (non-breaking change which improves existing functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • Potential breaking change if downstream libraries implicitly relied on previously public dependencies.

- Added a figure to the documentation for default dependencies of the ipc::toolkit library.
- Updated GraphViz configuration to include transparent backgrounds and Menlo font.
- Refactored BVH class to use unique_ptr to hide SimpleBVH
- Updated Sweep and Prune and Sweep and Tiniest Queue classes to use a Pimpl pattern for encapsulation.
- Change potential.tpp to potential.cpp file to hide implementation details.
@codecov
Copy link

codecov bot commented Jul 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.24%. Comparing base (dbb1ab4) to head (c575980).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #183      +/-   ##
==========================================
- Coverage   96.25%   96.24%   -0.02%     
==========================================
  Files         104      105       +1     
  Lines        7991     8064      +73     
==========================================
+ Hits         7692     7761      +69     
- Misses        299      303       +4     
Flag Coverage Δ
unittests 96.24% <100.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@zfergus zfergus requested a review from Copilot July 30, 2025 14:50
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors the ipc::toolkit library to make most dependencies private rather than public, reducing the exposure of implementation details to downstream consumers. It also adds GraphViz documentation showing the library's dependency structure.

  • Implements Pimpl (Pointer to Implementation) pattern for BVH, SweepAndPrune, and SweepAndTiniestQueue classes
  • Converts potential.tpp template implementation file to potential.cpp to hide implementation details
  • Updates CMake configuration to make dependencies private and adds explicit dependencies for tests and Python bindings

Reviewed Changes

Copilot reviewed 21 out of 23 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/src/tests/candidates/test_normals.cpp Improves test code with cleaner matrix initialization and clearer lambda parameter naming
tests/CMakeLists.txt Adds explicit dependencies for libigl and OneTBB that tests require
src/ipc/potentials/ Converts template implementation to compiled source and adds required includes
src/ipc/broad_phase/ Implements Pimpl pattern to hide scalable_ccd and SimpleBVH dependencies
python/CMakeLists.txt Adds explicit dependencies for Python bindings
docs/ Adds dependency graph documentation with improved GraphViz styling
CMakeLists.txt Changes most dependencies from PUBLIC to PRIVATE linkage
Comments suppressed due to low confidence (1)

cmake/recipes/abseil.cmake:15

  • The Abseil version '20250512.1' appears to be from May 2025, which is in the future relative to my knowledge cutoff of January 2025. Please verify this version exists or use a known stable version like '20240116.2'.
CPMAddPackage("gh:abseil/abseil-cpp#20250512.1")

@zfergus zfergus added this to the v1.5.0 milestone Jul 30, 2025
@zfergus zfergus merged commit 91f442e into main Jul 30, 2025
18 checks passed
@zfergus zfergus deleted the private-dependencies branch July 30, 2025 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants