summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-05 16:40:27 +0100
committerskal <pascal.massimino@gmail.com>2026-02-05 16:40:27 +0100
commitf6f3c13fcd287774a458730722854baab8a17366 (patch)
tree44420eecdd2e2dd84d68be12cb12641064eb1c5a /CMakeLists.txt
parent93a65b43094641b4c188b4fc260b8ed44c883728 (diff)
feat(physics): Implement SDF-based physics engine and BVH
Completed Task #49. - Implemented CPU-side SDF library (sphere, box, torus, plane). - Implemented Dynamic BVH construction (rebuilt every frame). - Implemented PhysicsSystem with semi-implicit Euler integration and collision resolution. - Added visual debugging for BVH nodes. - Created test_3d_physics interactive test and test_physics unit tests. - Updated project docs and triaged new tasks.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 274386a..06b142e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -110,6 +110,8 @@ set(GPU_SOURCES
set(3D_SOURCES
src/3d/renderer.cc
src/3d/visual_debug.cc
+ src/3d/bvh.cc
+ src/3d/physics.cc
)
set(PLATFORM_SOURCES src/platform.cc third_party/glfw3webgpu/glfw3webgpu.c)
set(UTIL_SOURCES src/util/asset_manager.cc)
@@ -139,6 +141,7 @@ if (DEFINED ASSET_PACKER_PATH)
else()
add_executable(asset_packer tools/asset_packer.cc)
target_link_libraries(asset_packer PRIVATE procedural)
+ target_include_directories(asset_packer PRIVATE third_party)
set(ASSET_PACKER_CMD $<TARGET_FILE:asset_packer>)
set(ASSET_PACKER_DEPENDS asset_packer)
endif()
@@ -342,6 +345,9 @@ if(DEMO_BUILD_TESTS)
add_demo_test(test_procedural ProceduralGenTest src/tests/test_procedural.cc)
target_link_libraries(test_procedural PRIVATE procedural ${DEMO_LIBS})
+ add_demo_test(test_physics PhysicsTest src/tests/test_physics.cc)
+ target_link_libraries(test_physics PRIVATE 3d util procedural ${DEMO_LIBS})
+
add_demo_test(test_3d ThreeDSystemTest src/tests/test_3d.cc)
add_demo_test(test_shader_composer ShaderComposerTest src/tests/test_shader_composer.cc ${GEN_TEST_CC})
@@ -358,6 +364,10 @@ if(DEMO_BUILD_TESTS)
add_demo_executable(test_3d_render src/tests/test_3d_render.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
target_link_libraries(test_3d_render PRIVATE 3d gpu audio procedural util ${DEMO_LIBS})
add_dependencies(test_3d_render generate_timeline generate_demo_assets generate_tracker_music)
+
+ add_demo_executable(test_3d_physics src/tests/test_3d_physics.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
+ target_link_libraries(test_3d_physics PRIVATE 3d gpu audio procedural util ${DEMO_LIBS})
+ add_dependencies(test_3d_physics generate_timeline generate_demo_assets generate_tracker_music)
endif()
#-- - Extra Tools -- -