From 81f744b805ce4207cb69863b74edf1a817c44fb7 Mon Sep 17 00:00:00 2001 From: Irlan Robson Date: Wed, 21 Dec 2016 19:15:43 -0200 Subject: [PATCH] linux fixes, bugfixes, comments --- build/vs2015/bounce.sln | 66 --- build/vs2015/bounce.vcxproj | 291 ----------- build/vs2015/bounce.vcxproj.filters | 458 ------------------ build/vs2015/glad.vcxproj | 180 ------- build/vs2015/glad.vcxproj.filters | 24 - build/vs2015/glfw.vcxproj | 198 -------- build/vs2015/glfw.vcxproj.filters | 78 --- build/vs2015/imgui.vcxproj | 183 ------- build/vs2015/imgui.vcxproj.filters | 45 -- build/vs2015/testbed.vcxproj | 235 --------- build/vs2015/testbed.vcxproj.filters | 123 ----- building.txt | 33 +- external/glad/glad.h | 2 +- external/glad/glad_glx.c | 312 ++++++++++++ external/glad/glad_glx.h | 433 +++++++++++++++++ external/glfw/CMakeLists.txt | 121 ----- external/glfw/glfw_config.h | 15 +- external/imgui/CMakeLists.txt | 18 - external/imgui/imgui_impl_glfw_gl3.cpp | 24 +- include/bounce/bounce.h | 58 +-- include/bounce/collision/broad_phase.h | 36 +- include/bounce/collision/distance.h | 43 +- include/bounce/collision/gjk/gjk.h | 12 +- include/bounce/collision/gjk/gjk_cache.h | 17 +- include/bounce/collision/gjk/gjk_proxy.h | 20 +- include/bounce/collision/sat/sat.h | 2 +- .../bounce/collision/sat/sat_edge_and_hull.h | 8 +- .../collision/sat/sat_vertex_and_hull.h | 6 +- include/bounce/collision/shapes/aabb3.h | 22 +- include/bounce/collision/shapes/box_hull.h | 20 +- include/bounce/collision/shapes/capsule.h | 9 +- include/bounce/collision/shapes/hull.h | 6 +- include/bounce/collision/shapes/mesh.h | 4 +- include/bounce/collision/shapes/sphere.h | 3 +- .../bounce/collision/shapes/triangle_hull.h | 8 +- include/bounce/collision/trees/dynamic_tree.h | 65 +-- include/bounce/collision/trees/static_tree.h | 36 +- include/bounce/common/draw.h | 14 +- include/bounce/common/geometry.h | 8 +- include/bounce/common/math/mat.h | 9 +- include/bounce/common/math/mat22.h | 4 +- include/bounce/common/math/mat33.h | 17 +- include/bounce/common/math/math.h | 6 +- include/bounce/common/math/quat.h | 11 +- include/bounce/common/math/transform.h | 32 +- include/bounce/common/math/vec2.h | 2 +- include/bounce/common/math/vec3.h | 2 +- include/bounce/common/memory/block_pool.h | 2 +- .../bounce/common/memory/stack_allocator.h | 4 +- include/bounce/common/settings.h | 2 +- include/bounce/common/template/array.h | 2 +- include/bounce/common/template/list.h | 8 +- include/bounce/common/template/object_array.h | 2 +- include/bounce/common/template/stack.h | 4 +- include/bounce/common/time.h | 204 ++++++-- include/bounce/dynamics/body.h | 65 +-- include/bounce/dynamics/contact_manager.h | 11 +- .../bounce/dynamics/contacts/collide/clip.h | 4 +- .../dynamics/contacts/collide/collide.h | 10 +- include/bounce/dynamics/contacts/contact.h | 8 +- .../dynamics/contacts/contact_cluster.h | 8 +- .../bounce/dynamics/contacts/contact_solver.h | 8 +- .../bounce/dynamics/contacts/convex_contact.h | 8 +- include/bounce/dynamics/contacts/manifold.h | 4 +- .../bounce/dynamics/contacts/mesh_contact.h | 24 +- include/bounce/dynamics/island.h | 4 +- include/bounce/dynamics/joint_manager.h | 10 +- include/bounce/dynamics/joints/cone_joint.h | 52 +- include/bounce/dynamics/joints/joint.h | 88 ++-- include/bounce/dynamics/joints/joint_solver.h | 14 +- include/bounce/dynamics/joints/mouse_joint.h | 75 ++- .../bounce/dynamics/joints/revolute_joint.h | 58 +-- include/bounce/dynamics/joints/sphere_joint.h | 56 +-- include/bounce/dynamics/joints/spring_joint.h | 64 ++- .../bounce/dynamics/shapes/capsule_shape.h | 2 +- include/bounce/dynamics/shapes/hull_shape.h | 2 +- include/bounce/dynamics/shapes/mesh_shape.h | 2 +- include/bounce/dynamics/shapes/shape.h | 72 ++- include/bounce/dynamics/shapes/sphere_shape.h | 2 +- include/bounce/dynamics/time_step.h | 6 +- include/bounce/dynamics/world.h | 31 +- include/bounce/dynamics/world_listeners.h | 2 +- include/bounce/quickhull/qh_hull.h | 4 +- include/bounce/quickhull/qh_hull.inl | 10 +- include/testbed/framework/debug_draw.h | 2 +- include/testbed/framework/mat44.h | 2 +- include/testbed/tests/box_stack.h | 4 +- include/testbed/tests/cluster_test.h | 2 +- include/testbed/tests/quadrics.h | 15 +- include/testbed/tests/quickhull_test.h | 4 +- include/testbed/tests/ray_cast.h | 43 +- include/testbed/tests/test.h | 9 +- premake5 | Bin 0 -> 1639384 bytes premake5.lua | 174 ++++--- readme.md | 17 +- src/bounce/collision/broad_phase.cpp | 6 +- src/bounce/collision/distance.cpp | 8 +- src/bounce/collision/gjk/gjk.cpp | 4 +- src/bounce/collision/gjk/gjk_cache.cpp | 4 +- src/bounce/collision/gjk/gjk_feature_pair.cpp | 2 +- src/bounce/collision/sat/sat.cpp | 4 +- .../collision/sat/sat_edge_and_hull.cpp | 6 +- .../collision/sat/sat_vertex_and_hull.cpp | 6 +- src/bounce/collision/shapes/hull.cpp | 32 +- src/bounce/collision/trees/dynamic_tree.cpp | 18 +- src/bounce/collision/trees/static_tree.cpp | 84 ++-- src/bounce/common/math/mat.cpp | 4 +- src/bounce/common/memory/block_pool.cpp | 8 +- src/bounce/common/memory/stack_allocator.cpp | 2 +- src/bounce/common/settings.cpp | 4 +- src/bounce/common/time.cpp | 78 --- src/bounce/dynamics/body.cpp | 12 +- src/bounce/dynamics/contact_manager.cpp | 24 +- src/bounce/dynamics/contacts/collide/clip.cpp | 6 +- .../dynamics/contacts/collide/collide.cpp | 24 +- .../collide/collide_capsule_and_hull.cpp | 14 +- .../contacts/collide/collide_capsules.cpp | 10 +- .../contacts/collide/collide_hulls.cpp | 12 +- .../contacts/collide/collide_hulls_cache.cpp | 10 +- .../collide/collide_sphere_and_capsule.cpp | 12 +- .../collide/collide_sphere_and_hull.cpp | 12 +- .../contacts/collide/collide_spheres.cpp | 8 +- src/bounce/dynamics/contacts/contact.cpp | 22 +- .../dynamics/contacts/contact_cluster.cpp | 4 +- .../dynamics/contacts/contact_solver.cpp | 10 +- .../dynamics/contacts/convex_contact.cpp | 21 +- src/bounce/dynamics/contacts/manifold.cpp | 2 +- src/bounce/dynamics/contacts/mesh_contact.cpp | 53 +- src/bounce/dynamics/draw_world.cpp | 40 +- src/bounce/dynamics/island.cpp | 18 +- src/bounce/dynamics/joint_manager.cpp | 8 +- src/bounce/dynamics/joints/cone_joint.cpp | 80 ++- src/bounce/dynamics/joints/joint.cpp | 14 +- src/bounce/dynamics/joints/joint_solver.cpp | 4 +- src/bounce/dynamics/joints/mouse_joint.cpp | 60 ++- src/bounce/dynamics/joints/revolute_joint.cpp | 47 +- src/bounce/dynamics/joints/sphere_joint.cpp | 30 +- src/bounce/dynamics/joints/spring_joint.cpp | 70 ++- src/bounce/dynamics/shapes/capsule_shape.cpp | 2 +- src/bounce/dynamics/shapes/hull_shape.cpp | 8 +- src/bounce/dynamics/shapes/mesh_shape.cpp | 8 +- src/bounce/dynamics/shapes/shape.cpp | 31 +- src/bounce/dynamics/shapes/sphere_shape.cpp | 2 +- src/bounce/dynamics/world.cpp | 36 +- src/bounce/quickhull/qh_hull.cpp | 46 +- src/testbed/framework/debug_draw.cpp | 16 +- src/testbed/framework/main.cpp | 101 ++-- src/testbed/framework/test.cpp | 54 +-- src/testbed/framework/test_entries.cpp | 60 +-- 149 files changed, 2371 insertions(+), 3413 deletions(-) delete mode 100644 build/vs2015/bounce.sln delete mode 100644 build/vs2015/bounce.vcxproj delete mode 100644 build/vs2015/bounce.vcxproj.filters delete mode 100644 build/vs2015/glad.vcxproj delete mode 100644 build/vs2015/glad.vcxproj.filters delete mode 100644 build/vs2015/glfw.vcxproj delete mode 100644 build/vs2015/glfw.vcxproj.filters delete mode 100644 build/vs2015/imgui.vcxproj delete mode 100644 build/vs2015/imgui.vcxproj.filters delete mode 100644 build/vs2015/testbed.vcxproj delete mode 100644 build/vs2015/testbed.vcxproj.filters create mode 100644 external/glad/glad_glx.c create mode 100644 external/glad/glad_glx.h delete mode 100644 external/glfw/CMakeLists.txt delete mode 100644 external/imgui/CMakeLists.txt create mode 100644 premake5 delete mode 100644 src/bounce/common/time.cpp diff --git a/build/vs2015/bounce.sln b/build/vs2015/bounce.sln deleted file mode 100644 index 4f3d5a8..0000000 --- a/build/vs2015/bounce.sln +++ /dev/null @@ -1,66 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2015 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bounce", "bounce.vcxproj", "{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glad", "glad.vcxproj", "{DD62977C-C999-980D-7286-7E105E9C140F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glfw", "glfw.vcxproj", "{9563977C-819A-980D-2A87-7E10169D140F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imgui", "imgui.vcxproj", "{0098A80F-6CAC-D0C0-352E-7420A101CDF1}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testbed", "testbed.vcxproj", "{90781ED9-FC57-9D74-0570-284B71CE03D6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug|Win32 = debug|Win32 - debug|x64 = debug|x64 - release|Win32 = release|Win32 - release|x64 = release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|Win32.ActiveCfg = debug|Win32 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|Win32.Build.0 = debug|Win32 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|x64.ActiveCfg = debug|x64 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|x64.Build.0 = debug|x64 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|Win32.ActiveCfg = release|Win32 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|Win32.Build.0 = release|Win32 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|x64.ActiveCfg = release|x64 - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|x64.Build.0 = release|x64 - {DD62977C-C999-980D-7286-7E105E9C140F}.debug|Win32.ActiveCfg = debug|Win32 - {DD62977C-C999-980D-7286-7E105E9C140F}.debug|Win32.Build.0 = debug|Win32 - {DD62977C-C999-980D-7286-7E105E9C140F}.debug|x64.ActiveCfg = debug|x64 - {DD62977C-C999-980D-7286-7E105E9C140F}.debug|x64.Build.0 = debug|x64 - {DD62977C-C999-980D-7286-7E105E9C140F}.release|Win32.ActiveCfg = release|Win32 - {DD62977C-C999-980D-7286-7E105E9C140F}.release|Win32.Build.0 = release|Win32 - {DD62977C-C999-980D-7286-7E105E9C140F}.release|x64.ActiveCfg = release|x64 - {DD62977C-C999-980D-7286-7E105E9C140F}.release|x64.Build.0 = release|x64 - {9563977C-819A-980D-2A87-7E10169D140F}.debug|Win32.ActiveCfg = debug|Win32 - {9563977C-819A-980D-2A87-7E10169D140F}.debug|Win32.Build.0 = debug|Win32 - {9563977C-819A-980D-2A87-7E10169D140F}.debug|x64.ActiveCfg = debug|x64 - {9563977C-819A-980D-2A87-7E10169D140F}.debug|x64.Build.0 = debug|x64 - {9563977C-819A-980D-2A87-7E10169D140F}.release|Win32.ActiveCfg = release|Win32 - {9563977C-819A-980D-2A87-7E10169D140F}.release|Win32.Build.0 = release|Win32 - {9563977C-819A-980D-2A87-7E10169D140F}.release|x64.ActiveCfg = release|x64 - {9563977C-819A-980D-2A87-7E10169D140F}.release|x64.Build.0 = release|x64 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|Win32.ActiveCfg = debug|Win32 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|Win32.Build.0 = debug|Win32 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|x64.ActiveCfg = debug|x64 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|x64.Build.0 = debug|x64 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|Win32.ActiveCfg = release|Win32 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|Win32.Build.0 = release|Win32 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|x64.ActiveCfg = release|x64 - {0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|x64.Build.0 = release|x64 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|Win32.ActiveCfg = debug|Win32 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|Win32.Build.0 = debug|Win32 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|x64.ActiveCfg = debug|x64 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|x64.Build.0 = debug|x64 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.release|Win32.ActiveCfg = release|Win32 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.release|Win32.Build.0 = release|Win32 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.release|x64.ActiveCfg = release|x64 - {90781ED9-FC57-9D74-0570-284B71CE03D6}.release|x64.Build.0 = release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/build/vs2015/bounce.vcxproj b/build/vs2015/bounce.vcxproj deleted file mode 100644 index a0e890c..0000000 --- a/build/vs2015/bounce.vcxproj +++ /dev/null @@ -1,291 +0,0 @@ - - - - - debug - Win32 - - - debug - x64 - - - release - Win32 - - - release - x64 - - - - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B} - true - Win32Proj - bounce - - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - - - - - - - - - - - - - - - - - bin\x32\debug\bounce\ - obj\x32\debug\bounce\ - bounce - .lib - - - bin\x64\debug\bounce\ - obj\x64\debug\bounce\ - bounce - .lib - - - bin\x32\release\bounce\ - obj\x32\release\bounce\ - bounce - .lib - - - bin\x64\release\bounce\ - obj\x64\release\bounce\ - bounce - .lib - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\include;%(AdditionalIncludeDirectories) - EditAndContinue - Disabled - false - Fast - - - Windows - true - - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\include;%(AdditionalIncludeDirectories) - ProgramDatabase - Disabled - false - Fast - - - Windows - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\include;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Windows - false - true - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\include;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Windows - false - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/vs2015/bounce.vcxproj.filters b/build/vs2015/bounce.vcxproj.filters deleted file mode 100644 index bca65bb..0000000 --- a/build/vs2015/bounce.vcxproj.filters +++ /dev/null @@ -1,458 +0,0 @@ - - - - - {89AF369E-F58E-B539-FEA6-40106A051C9B} - - - {D419DC43-C0E7-CF49-A97B-407095E8ABAE} - - - {0FC81CFD-FBEC-6B7D-2438-510D10BC6A9B} - - - {9AC16B4F-867C-5BFB-2F34-D4451BCEA58B} - - - {86F36B4F-72AE-5BFB-1B66-D4450700A68B} - - - {02B88A21-6E9B-9961-779E-C79DE30060B2} - - - {A12552DA-8D4B-1C41-7691-A10C6256410D} - - - {AC64A0F9-18D1-5BF4-E1C4-F3514DF07D5C} - - - {252146D6-1131-F2A6-7AEA-56C56619E13F} - - - {B4B69780-A071-872C-4929-007735C3D1BC} - - - {577D3B7B-43A3-05E2-2CE9-8AAD18AE2AAE} - - - {DB55CFD2-478D-176A-5097-7B8DBC4D3E63} - - - {09FBB88C-F54B-A4CE-1EB0-92900A603738} - - - {14818B0F-00FE-7E52-297B-7F6615571BE6} - - - {A1E236CD-8D08-0134-764E-86FF62132600} - - - {4E48B2E1-3A6E-7C48-23B4-01140F79A114} - - - {F52AA7E9-E14F-F669-0A9B-DBF9F61EF587} - - - {2DAB880B-99B4-887C-2230-9F7C8E38947C} - - - {F814F251-E4CC-339F-4DD4-0CFB39ABCE8F} - - - {33003210-1F8F-BBD9-C8AD-CFD4B41BCC7F} - - - {BE6BE8DC-AA90-375D-D3DB-1CEDBF5F367B} - - - {AA9DE8DC-96C2-375D-BF0D-1DEDAB91367B} - - - {A6DFD2EA-12ED-00D1-9BD3-FCBB07E0CC87} - - - {C5E8A1B9-B1F8-4D8A-1AB2-B2A806E13C23} - - - {50EF0F83-BC05-0E19-057D-993A71D2DEA0} - - - {49F28903-35EC-B255-1E59-49660AF218C2} - - - {D860140E-C485-638E-EDD0-481ED95462AC} - - - {7F194C76-EB7A-2984-74E8-6F36E0486043} - - - {2D17067F-19D2-F52A-C289-6E75AE2340BB} - - - {3881B4FC-2468-76F4-CDB8-DC11B97EEF5A} - - - {C5A586AC-B1B5-327D-1A6F-979B069E2116} - - - {720B02C1-5E1B-AE91-C7D4-12B0B3039D2A} - - - {1963BCFC-05F2-45C6-AE10-5AC19A7E566C} - - - - - include\bounce - - - include\bounce\collision - - - include\bounce\collision - - - include\bounce\collision\gjk - - - include\bounce\collision\gjk - - - include\bounce\collision\gjk - - - include\bounce\collision\sat - - - include\bounce\collision\sat - - - include\bounce\collision\sat - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\shapes - - - include\bounce\collision\trees - - - include\bounce\collision\trees - - - include\bounce\common - - - include\bounce\common - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\math - - - include\bounce\common\memory - - - include\bounce\common\memory - - - include\bounce\common - - - include\bounce\common\template - - - include\bounce\common\template - - - include\bounce\common\template - - - include\bounce\common\template - - - include\bounce\common - - - include\bounce\dynamics - - - include\bounce\dynamics - - - include\bounce\dynamics\contacts\collide - - - include\bounce\dynamics\contacts\collide - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics\contacts - - - include\bounce\dynamics - - - include\bounce\dynamics - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\joints - - - include\bounce\dynamics\shapes - - - include\bounce\dynamics\shapes - - - include\bounce\dynamics\shapes - - - include\bounce\dynamics\shapes - - - include\bounce\dynamics\shapes - - - include\bounce\dynamics - - - include\bounce\dynamics - - - include\bounce\dynamics - - - include\bounce\quickhull - - - - - src\bounce\collision - - - src\bounce\collision - - - src\bounce\collision\gjk - - - src\bounce\collision\gjk - - - src\bounce\collision\gjk - - - src\bounce\collision\sat - - - src\bounce\collision\sat - - - src\bounce\collision\sat - - - src\bounce\collision\shapes - - - src\bounce\collision\trees - - - src\bounce\collision\trees - - - src\bounce\common\math - - - src\bounce\common\memory - - - src\bounce\common\memory - - - src\bounce\common - - - src\bounce\common - - - src\bounce\dynamics - - - src\bounce\dynamics - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts\collide - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics\contacts - - - src\bounce\dynamics - - - src\bounce\dynamics - - - src\bounce\dynamics - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\joints - - - src\bounce\dynamics\shapes - - - src\bounce\dynamics\shapes - - - src\bounce\dynamics\shapes - - - src\bounce\dynamics\shapes - - - src\bounce\dynamics\shapes - - - src\bounce\dynamics - - - src\bounce\quickhull - - - - - include\bounce\collision\shapes - - - include\bounce\quickhull - - - \ No newline at end of file diff --git a/build/vs2015/glad.vcxproj b/build/vs2015/glad.vcxproj deleted file mode 100644 index fc2d28f..0000000 --- a/build/vs2015/glad.vcxproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - debug - Win32 - - - debug - x64 - - - release - Win32 - - - release - x64 - - - - {DD62977C-C999-980D-7286-7E105E9C140F} - true - Win32Proj - glad - - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - - - - - - - - - - - - - - - - - bin\x32\debug\glad\ - obj\x32\debug\glad\ - glad - .lib - - - bin\x64\debug\glad\ - obj\x64\debug\glad\ - glad - .lib - - - bin\x32\release\glad\ - obj\x32\release\glad\ - glad - .lib - - - bin\x64\release\glad\ - obj\x64\release\glad\ - glad - .lib - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - EditAndContinue - Disabled - false - Fast - CompileAsC - - - Windows - true - - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - ProgramDatabase - Disabled - false - Fast - CompileAsC - - - Windows - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - CompileAsC - - - Windows - false - true - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - CompileAsC - - - Windows - false - true - true - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/vs2015/glad.vcxproj.filters b/build/vs2015/glad.vcxproj.filters deleted file mode 100644 index 3f4c0a6..0000000 --- a/build/vs2015/glad.vcxproj.filters +++ /dev/null @@ -1,24 +0,0 @@ - - - - - {C196CD9C-2D76-4C38-368E-D70EA2ECB299} - - - {89565304-F535-D29F-FE4D-5D766AAC3801} - - - - - Headers - - - Headers - - - - - Sources - - - \ No newline at end of file diff --git a/build/vs2015/glfw.vcxproj b/build/vs2015/glfw.vcxproj deleted file mode 100644 index 2b629be..0000000 --- a/build/vs2015/glfw.vcxproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - debug - Win32 - - - debug - x64 - - - release - Win32 - - - release - x64 - - - - {9563977C-819A-980D-2A87-7E10169D140F} - true - Win32Proj - glfw - - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - - - - - - - - - - - - - - - - - bin\x32\debug\glfw\ - obj\x32\debug\glfw\ - glfw - .lib - - - bin\x64\debug\glfw\ - obj\x64\debug\glfw\ - glfw - .lib - - - bin\x32\release\glfw\ - obj\x32\release\glfw\ - glfw - .lib - - - bin\x64\release\glfw\ - obj\x64\release\glfw\ - glfw - .lib - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external\glfw;%(AdditionalIncludeDirectories) - EditAndContinue - Disabled - false - Fast - CompileAsC - - - Windows - true - - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external\glfw;%(AdditionalIncludeDirectories) - ProgramDatabase - Disabled - false - Fast - CompileAsC - - - Windows - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external\glfw;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - CompileAsC - - - Windows - false - true - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external\glfw;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - CompileAsC - - - Windows - false - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/vs2015/glfw.vcxproj.filters b/build/vs2015/glfw.vcxproj.filters deleted file mode 100644 index 0f71ea6..0000000 --- a/build/vs2015/glfw.vcxproj.filters +++ /dev/null @@ -1,78 +0,0 @@ - - - - - {C196CD9C-2D76-4C38-368E-D70EA2ECB299} - - - {89565304-F535-D29F-FE4D-5D766AAC3801} - - - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - Sources - - - \ No newline at end of file diff --git a/build/vs2015/imgui.vcxproj b/build/vs2015/imgui.vcxproj deleted file mode 100644 index 7b1660c..0000000 --- a/build/vs2015/imgui.vcxproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - - debug - Win32 - - - debug - x64 - - - release - Win32 - - - release - x64 - - - - {0098A80F-6CAC-D0C0-352E-7420A101CDF1} - true - Win32Proj - imgui - - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - true - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - StaticLibrary - false - Unicode - v140 - - - - - - - - - - - - - - - - - - - bin\x32\debug\imgui\ - obj\x32\debug\imgui\ - imgui - .lib - - - bin\x64\debug\imgui\ - obj\x64\debug\imgui\ - imgui - .lib - - - bin\x32\release\imgui\ - obj\x32\release\imgui\ - imgui - .lib - - - bin\x64\release\imgui\ - obj\x64\release\imgui\ - imgui - .lib - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - EditAndContinue - Disabled - false - Fast - - - Windows - true - - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - ProgramDatabase - Disabled - false - Fast - - - Windows - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Windows - false - true - true - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ..\..\external;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Windows - false - true - true - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/vs2015/imgui.vcxproj.filters b/build/vs2015/imgui.vcxproj.filters deleted file mode 100644 index d8aa08e..0000000 --- a/build/vs2015/imgui.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {C196CD9C-2D76-4C38-368E-D70EA2ECB299} - - - {89565304-F535-D29F-FE4D-5D766AAC3801} - - - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - - - Sources - - - Sources - - - Sources - - - \ No newline at end of file diff --git a/build/vs2015/testbed.vcxproj b/build/vs2015/testbed.vcxproj deleted file mode 100644 index 3038242..0000000 --- a/build/vs2015/testbed.vcxproj +++ /dev/null @@ -1,235 +0,0 @@ - - - - - debug - Win32 - - - debug - x64 - - - release - Win32 - - - release - x64 - - - - {90781ED9-FC57-9D74-0570-284B71CE03D6} - true - Win32Proj - testbed - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - Unicode - v140 - - - Application - false - Unicode - v140 - - - - - - - - - - - - - - - - - - - true - bin\x32\debug\testbed\ - obj\x32\debug\testbed\ - testbed - .exe - - - true - bin\x64\debug\testbed\ - obj\x64\debug\testbed\ - testbed - .exe - - - false - bin\x32\release\testbed\ - obj\x32\release\testbed\ - testbed - .exe - - - false - bin\x64\release\testbed\ - obj\x64\release\testbed\ - testbed - .exe - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\external;..\..\include;%(AdditionalIncludeDirectories) - EditAndContinue - Disabled - false - Fast - - - Console - true - glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies) - mainCRTStartup - - - - - NotUsing - Level3 - _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\external;..\..\include;%(AdditionalIncludeDirectories) - ProgramDatabase - Disabled - false - Fast - - - Console - true - glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies) - mainCRTStartup - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\external;..\..\include;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Console - false - true - true - glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies) - mainCRTStartup - - - - - NotUsing - Level3 - NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) - ..\..\external;..\..\include;%(AdditionalIncludeDirectories) - Full - true - true - false - true - false - Fast - - - Console - false - true - true - glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies) - mainCRTStartup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {C13B93F4-ADDD-BDCA-9698-D11E82D9441B} - - - {DD62977C-C999-980D-7286-7E105E9C140F} - - - {9563977C-819A-980D-2A87-7E10169D140F} - - - {0098A80F-6CAC-D0C0-352E-7420A101CDF1} - - - - - - \ No newline at end of file diff --git a/build/vs2015/testbed.vcxproj.filters b/build/vs2015/testbed.vcxproj.filters deleted file mode 100644 index 2edc665..0000000 --- a/build/vs2015/testbed.vcxproj.filters +++ /dev/null @@ -1,123 +0,0 @@ - - - - - {C196CD9C-2D76-4C38-368E-D70EA2ECB299} - - - {89565304-F535-D29F-FE4D-5D766AAC3801} - - - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - - - Sources - - - Sources - - - Sources - - - Sources - - - \ No newline at end of file diff --git a/building.txt b/building.txt index 6cfdc32..dcdd949 100644 --- a/building.txt +++ b/building.txt @@ -1,14 +1,35 @@ Bounce uses premake for generating project files in a platform agnostic manner. Grab premake from http://industriousone.com/premake. -Put premake.exe into bounce/. +Put premake into bounce/. Visual Studio 2015 -Open bounce/bat. -Open premake_vs2015.bat. This will run a premake script and open bounce/build/vs2015/bounce.sln. +Say { premake5 vs2015 } on a command line. +Open build/vs2015/bounce.sln. Set testbed as the startup project. -Press F5 or Ctrl-F5 to run. +Press F5 to run. -premake files for building on Mac will be available later because I don't run Mac currently and -therefore can't test the build system in this platform. \ No newline at end of file +Linux + +On a clean Ubuntu 16.04 install these packages first: + +mesa-common-dev +libgl1-mesa-dev +libglu1-mesa-dev + +x32 + +Say { premake5 gmake } on a terminal. +From build/gmake say { make config="debug_x32" }. +Open testbed from /bin/x32/testbed/. + +x64 + +Say { premake5 gmake } on a terminal. +From build/gmake say { make config="debug_x64" }. +Open testbed from /bin/x64/testbed/. + +Mac + +I don't run Mac currently and therefore can't test the build system in this platform. diff --git a/external/glad/glad.h b/external/glad/glad.h index f256317..030df9c 100644 --- a/external/glad/glad.h +++ b/external/glad/glad.h @@ -636,7 +636,7 @@ GLAPI int gladLoadGL(void); GLAPI int gladLoadGLLoader(GLADloadproc); #include -//#include +//#include #include #ifndef GLEXT_64_TYPES_DEFINED /* This code block is duplicated in glxext.h, so must be protected */ diff --git a/external/glad/glad_glx.c b/external/glad/glad_glx.c new file mode 100644 index 0000000..aaa6e08 --- /dev/null +++ b/external/glad/glad_glx.c @@ -0,0 +1,312 @@ +/* + + GLX loader generated by glad 0.1.12a0 on Tue Dec 20 17:04:11 2016. + + Language/Generator: C/C++ + Specification: glx + APIs: glx=1.4 + Profile: - + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + + Commandline: + --api="glx=1.4" --generator="c" --spec="glx" --extensions="" + Online: + http://glad.dav1d.de/#language=c&specification=glx&loader=on&api=glx%3D1.4 +*/ + +#include +#include +#include +#include + +static void* get_proc(const char *namez); + +#ifdef _WIN32 +#include +static HMODULE libGL; + +typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); +PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; + +static +int open_gl(void) { + libGL = LoadLibraryW(L"opengl32.dll"); + if(libGL != NULL) { + gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress( + libGL, "wglGetProcAddress"); + return gladGetProcAddressPtr != NULL; + } + + return 0; +} + +static +void close_gl(void) { + if(libGL != NULL) { + FreeLibrary(libGL); + libGL = NULL; + } +} +#else +#include +static void* libGL; + +#ifndef __APPLE__ +typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); +PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; +#endif + +static +int open_gl(void) { +#ifdef __APPLE__ + static const char *NAMES[] = { + "../Frameworks/OpenGL.framework/OpenGL", + "/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" + }; +#else + static const char *NAMES[] = {"libGL.so.1", "libGL.so"}; +#endif + + unsigned int index = 0; + for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) { + libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); + + if(libGL != NULL) { +#ifdef __APPLE__ + return 1; +#else + gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, + "glXGetProcAddressARB"); + return gladGetProcAddressPtr != NULL; +#endif + } + } + + return 0; +} + +static +void close_gl() { + if(libGL != NULL) { + dlclose(libGL); + libGL = NULL; + } +} +#endif + +static +void* get_proc(const char *namez) { + void* result = NULL; + if(libGL == NULL) return NULL; + +#ifndef __APPLE__ + if(gladGetProcAddressPtr != NULL) { + result = gladGetProcAddressPtr(namez); + } +#endif + if(result == NULL) { +#ifdef _WIN32 + result = (void*)GetProcAddress(libGL, namez); +#else + result = dlsym(libGL, namez); +#endif + } + + return result; +} + +int gladLoadGLX(Display *dpy, int screen) { + int status = 0; + + if(open_gl()) { + status = gladLoadGLXLoader((GLADloadproc)get_proc, dpy, screen); + close_gl(); + } + + return status; +} + +static Display *GLADGLXDisplay = 0; +static int GLADGLXscreen = 0; + +static int get_exts(void) { + return 1; +} + +static void free_exts(void) { + return; +} + +static int has_ext(const char *ext) { + const char *terminator; + const char *loc; + const char *extensions; + + if(!GLAD_GLX_VERSION_1_1) + return 0; + + extensions = glXQueryExtensionsString(GLADGLXDisplay, GLADGLXscreen); + + if(extensions == NULL || ext == NULL) + return 0; + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) + break; + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) + { + return 1; + } + extensions = terminator; + } + + return 0; +} + +int GLAD_GLX_VERSION_1_0; +int GLAD_GLX_VERSION_1_1; +int GLAD_GLX_VERSION_1_2; +int GLAD_GLX_VERSION_1_3; +int GLAD_GLX_VERSION_1_4; +PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent; +PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension; +PFNGLXMAKECURRENTPROC glad_glXMakeCurrent; +PFNGLXSELECTEVENTPROC glad_glXSelectEvent; +PFNGLXCREATECONTEXTPROC glad_glXCreateContext; +PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap; +PFNGLXQUERYVERSIONPROC glad_glXQueryVersion; +PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable; +PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap; +PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext; +PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress; +PFNGLXWAITGLPROC glad_glXWaitGL; +PFNGLXISDIRECTPROC glad_glXIsDirect; +PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow; +PFNGLXCREATEWINDOWPROC glad_glXCreateWindow; +PFNGLXCOPYCONTEXTPROC glad_glXCopyContext; +PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer; +PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers; +PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay; +PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable; +PFNGLXQUERYCONTEXTPROC glad_glXQueryContext; +PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual; +PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString; +PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext; +PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap; +PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib; +PFNGLXUSEXFONTPROC glad_glXUseXFont; +PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer; +PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig; +PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext; +PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent; +PFNGLXGETCONFIGPROC glad_glXGetConfig; +PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs; +PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap; +PFNGLXWAITXPROC glad_glXWaitX; +PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig; +PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable; +PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString; +PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString; +static void load_GLX_VERSION_1_0(GLADloadproc load) { + if(!GLAD_GLX_VERSION_1_0) return; + glad_glXChooseVisual = (PFNGLXCHOOSEVISUALPROC)load("glXChooseVisual"); + glad_glXCreateContext = (PFNGLXCREATECONTEXTPROC)load("glXCreateContext"); + glad_glXDestroyContext = (PFNGLXDESTROYCONTEXTPROC)load("glXDestroyContext"); + glad_glXMakeCurrent = (PFNGLXMAKECURRENTPROC)load("glXMakeCurrent"); + glad_glXCopyContext = (PFNGLXCOPYCONTEXTPROC)load("glXCopyContext"); + glad_glXSwapBuffers = (PFNGLXSWAPBUFFERSPROC)load("glXSwapBuffers"); + glad_glXCreateGLXPixmap = (PFNGLXCREATEGLXPIXMAPPROC)load("glXCreateGLXPixmap"); + glad_glXDestroyGLXPixmap = (PFNGLXDESTROYGLXPIXMAPPROC)load("glXDestroyGLXPixmap"); + glad_glXQueryExtension = (PFNGLXQUERYEXTENSIONPROC)load("glXQueryExtension"); + glad_glXQueryVersion = (PFNGLXQUERYVERSIONPROC)load("glXQueryVersion"); + glad_glXIsDirect = (PFNGLXISDIRECTPROC)load("glXIsDirect"); + glad_glXGetConfig = (PFNGLXGETCONFIGPROC)load("glXGetConfig"); + glad_glXGetCurrentContext = (PFNGLXGETCURRENTCONTEXTPROC)load("glXGetCurrentContext"); + glad_glXGetCurrentDrawable = (PFNGLXGETCURRENTDRAWABLEPROC)load("glXGetCurrentDrawable"); + glad_glXWaitGL = (PFNGLXWAITGLPROC)load("glXWaitGL"); + glad_glXWaitX = (PFNGLXWAITXPROC)load("glXWaitX"); + glad_glXUseXFont = (PFNGLXUSEXFONTPROC)load("glXUseXFont"); +} +static void load_GLX_VERSION_1_1(GLADloadproc load) { + if(!GLAD_GLX_VERSION_1_1) return; + glad_glXQueryExtensionsString = (PFNGLXQUERYEXTENSIONSSTRINGPROC)load("glXQueryExtensionsString"); + glad_glXQueryServerString = (PFNGLXQUERYSERVERSTRINGPROC)load("glXQueryServerString"); + glad_glXGetClientString = (PFNGLXGETCLIENTSTRINGPROC)load("glXGetClientString"); +} +static void load_GLX_VERSION_1_2(GLADloadproc load) { + if(!GLAD_GLX_VERSION_1_2) return; + glad_glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)load("glXGetCurrentDisplay"); +} +static void load_GLX_VERSION_1_3(GLADloadproc load) { + if(!GLAD_GLX_VERSION_1_3) return; + glad_glXGetFBConfigs = (PFNGLXGETFBCONFIGSPROC)load("glXGetFBConfigs"); + glad_glXChooseFBConfig = (PFNGLXCHOOSEFBCONFIGPROC)load("glXChooseFBConfig"); + glad_glXGetFBConfigAttrib = (PFNGLXGETFBCONFIGATTRIBPROC)load("glXGetFBConfigAttrib"); + glad_glXGetVisualFromFBConfig = (PFNGLXGETVISUALFROMFBCONFIGPROC)load("glXGetVisualFromFBConfig"); + glad_glXCreateWindow = (PFNGLXCREATEWINDOWPROC)load("glXCreateWindow"); + glad_glXDestroyWindow = (PFNGLXDESTROYWINDOWPROC)load("glXDestroyWindow"); + glad_glXCreatePixmap = (PFNGLXCREATEPIXMAPPROC)load("glXCreatePixmap"); + glad_glXDestroyPixmap = (PFNGLXDESTROYPIXMAPPROC)load("glXDestroyPixmap"); + glad_glXCreatePbuffer = (PFNGLXCREATEPBUFFERPROC)load("glXCreatePbuffer"); + glad_glXDestroyPbuffer = (PFNGLXDESTROYPBUFFERPROC)load("glXDestroyPbuffer"); + glad_glXQueryDrawable = (PFNGLXQUERYDRAWABLEPROC)load("glXQueryDrawable"); + glad_glXCreateNewContext = (PFNGLXCREATENEWCONTEXTPROC)load("glXCreateNewContext"); + glad_glXMakeContextCurrent = (PFNGLXMAKECONTEXTCURRENTPROC)load("glXMakeContextCurrent"); + glad_glXGetCurrentReadDrawable = (PFNGLXGETCURRENTREADDRAWABLEPROC)load("glXGetCurrentReadDrawable"); + glad_glXQueryContext = (PFNGLXQUERYCONTEXTPROC)load("glXQueryContext"); + glad_glXSelectEvent = (PFNGLXSELECTEVENTPROC)load("glXSelectEvent"); + glad_glXGetSelectedEvent = (PFNGLXGETSELECTEDEVENTPROC)load("glXGetSelectedEvent"); +} +static void load_GLX_VERSION_1_4(GLADloadproc load) { + if(!GLAD_GLX_VERSION_1_4) return; + glad_glXGetProcAddress = (PFNGLXGETPROCADDRESSPROC)load("glXGetProcAddress"); +} +static int find_extensionsGLX(void) { + if (!get_exts()) return 0; + free_exts(); + return 1; +} + +static void find_coreGLX(Display *dpy, int screen) { + int major = 0, minor = 0; + if(dpy == 0 && GLADGLXDisplay == 0) { + dpy = XOpenDisplay(0); + screen = XScreenNumberOfScreen(XDefaultScreenOfDisplay(dpy)); + } else if(dpy == 0) { + dpy = GLADGLXDisplay; + screen = GLADGLXscreen; + } + glXQueryVersion(dpy, &major, &minor); + GLADGLXDisplay = dpy; + GLADGLXscreen = screen; + GLAD_GLX_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GLX_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GLX_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GLX_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GLX_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; +} + +int gladLoadGLXLoader(GLADloadproc load, Display *dpy, int screen) { + glXQueryVersion = (PFNGLXQUERYVERSIONPROC)load("glXQueryVersion"); + if(glXQueryVersion == NULL) return 0; + find_coreGLX(dpy, screen); + load_GLX_VERSION_1_0(load); + load_GLX_VERSION_1_1(load); + load_GLX_VERSION_1_2(load); + load_GLX_VERSION_1_3(load); + load_GLX_VERSION_1_4(load); + + if (!find_extensionsGLX()) return 0; + return 1; +} + diff --git a/external/glad/glad_glx.h b/external/glad/glad_glx.h new file mode 100644 index 0000000..d402402 --- /dev/null +++ b/external/glad/glad_glx.h @@ -0,0 +1,433 @@ +/* + + GLX loader generated by glad 0.1.12a0 on Tue Dec 20 17:04:11 2016. + + Language/Generator: C/C++ + Specification: glx + APIs: glx=1.4 + Profile: - + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + + Commandline: + --api="glx=1.4" --generator="c" --spec="glx" --extensions="" + Online: + http://glad.dav1d.de/#language=c&specification=glx&loader=on&api=glx%3D1.4 +*/ + + +#include +#include +#include +#include + +#ifndef __glad_glxext_h_ + +#ifdef __glxext_h_ +#error GLX header already included, remove this include, glad already provides it +#endif + +#define __glad_glxext_h_ +#define __glxext_h_ + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void* (* GLADloadproc)(const char *name); + +#ifndef GLAPI +# if defined(GLAD_GLAPI_EXPORT) +# if defined(WIN32) || defined(__CYGWIN__) +# if defined(GLAD_GLAPI_EXPORT_BUILD) +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllexport)) extern +# else +# define GLAPI __declspec(dllexport) extern +# endif +# else +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllimport)) extern +# else +# define GLAPI __declspec(dllimport) extern +# endif +# endif +# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) +# define GLAPI __attribute__ ((visibility ("default"))) extern +# else +# define GLAPI extern +# endif +# else +# define GLAPI extern +# endif +#endif + +GLAPI int gladLoadGLX(Display *dpy, int screen); + +GLAPI int gladLoadGLXLoader(GLADloadproc, Display *dpy, int screen); + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GLX_OML_sync_control extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif +#endif +typedef XID GLXFBConfigID; +typedef struct __GLXFBConfigRec *GLXFBConfig; +typedef XID GLXContextID; +typedef struct __GLXcontextRec *GLXContext; +typedef XID GLXPixmap; +typedef XID GLXDrawable; +typedef XID GLXWindow; +typedef XID GLXPbuffer; +typedef void (APIENTRY *__GLXextFuncPtr)(void); +typedef XID GLXVideoCaptureDeviceNV; +typedef unsigned int GLXVideoDeviceNV; +typedef XID GLXVideoSourceSGIX; +typedef XID GLXFBConfigIDSGIX; +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; +typedef XID GLXPbufferSGIX; +typedef struct { + int event_type; /* GLX_DAMAGED or GLX_SAVED */ + int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* XID of Drawable */ + unsigned int buffer_mask; /* mask indicating which buffers are affected */ + unsigned int aux_buffer; /* which aux buffer was affected */ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXPbufferClobberEvent; +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + GLXDrawable drawable; /* drawable on which event was requested in event mask */ + int event_type; + int64_t ust; + int64_t msc; + int64_t sbc; +} GLXBufferSwapComplete; +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + GLXBufferSwapComplete glxbufferswapcomplete; + long pad[24]; +} GLXEvent; +typedef struct { + int type; + unsigned long serial; + Bool send_event; + Display *display; + int extension; + int evtype; + GLXDrawable window; + Bool stereo_tree; +} GLXStereoNotifyEventEXT; +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* i.d. of Drawable */ + int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ + int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ + unsigned int mask; /* mask indicating which buffers are affected*/ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXBufferClobberEventSGIX; +typedef struct { + char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ + int networkId; +} GLXHyperpipeNetworkSGIX; +typedef struct { + char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ + int channel; + unsigned int participationType; + int timeSlice; +} GLXHyperpipeConfigSGIX; +typedef struct { + char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ + int srcXOrigin, srcYOrigin, srcWidth, srcHeight; + int destXOrigin, destYOrigin, destWidth, destHeight; +} GLXPipeRect; +typedef struct { + char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ + int XOrigin, YOrigin, maxHeight, maxWidth; +} GLXPipeRectLimits; +#define GLX_EXTENSION_NAME "GLX" +#define GLX_PbufferClobber 0 +#define GLX_BufferSwapComplete 1 +#define __GLX_NUMBER_EVENTS 17 +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 +#define GLX_VENDOR 0x1 +#define GLX_VERSION 0x2 +#define GLX_EXTENSIONS 0x3 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 +#ifndef GLX_VERSION_1_0 +#define GLX_VERSION_1_0 1 +GLAPI int GLAD_GLX_VERSION_1_0; +typedef XVisualInfo * (APIENTRYP PFNGLXCHOOSEVISUALPROC)(Display *dpy, int screen, int *attribList); +GLAPI PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual; +#define glXChooseVisual glad_glXChooseVisual +typedef GLXContext (APIENTRYP PFNGLXCREATECONTEXTPROC)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); +GLAPI PFNGLXCREATECONTEXTPROC glad_glXCreateContext; +#define glXCreateContext glad_glXCreateContext +typedef void (APIENTRYP PFNGLXDESTROYCONTEXTPROC)(Display *dpy, GLXContext ctx); +GLAPI PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext; +#define glXDestroyContext glad_glXDestroyContext +typedef Bool (APIENTRYP PFNGLXMAKECURRENTPROC)(Display *dpy, GLXDrawable drawable, GLXContext ctx); +GLAPI PFNGLXMAKECURRENTPROC glad_glXMakeCurrent; +#define glXMakeCurrent glad_glXMakeCurrent +typedef void (APIENTRYP PFNGLXCOPYCONTEXTPROC)(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask); +GLAPI PFNGLXCOPYCONTEXTPROC glad_glXCopyContext; +#define glXCopyContext glad_glXCopyContext +typedef void (APIENTRYP PFNGLXSWAPBUFFERSPROC)(Display *dpy, GLXDrawable drawable); +GLAPI PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers; +#define glXSwapBuffers glad_glXSwapBuffers +typedef GLXPixmap (APIENTRYP PFNGLXCREATEGLXPIXMAPPROC)(Display *dpy, XVisualInfo *visual, Pixmap pixmap); +GLAPI PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap; +#define glXCreateGLXPixmap glad_glXCreateGLXPixmap +typedef void (APIENTRYP PFNGLXDESTROYGLXPIXMAPPROC)(Display *dpy, GLXPixmap pixmap); +GLAPI PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap; +#define glXDestroyGLXPixmap glad_glXDestroyGLXPixmap +typedef Bool (APIENTRYP PFNGLXQUERYEXTENSIONPROC)(Display *dpy, int *errorb, int *event); +GLAPI PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension; +#define glXQueryExtension glad_glXQueryExtension +typedef Bool (APIENTRYP PFNGLXQUERYVERSIONPROC)(Display *dpy, int *maj, int *min); +GLAPI PFNGLXQUERYVERSIONPROC glad_glXQueryVersion; +#define glXQueryVersion glad_glXQueryVersion +typedef Bool (APIENTRYP PFNGLXISDIRECTPROC)(Display *dpy, GLXContext ctx); +GLAPI PFNGLXISDIRECTPROC glad_glXIsDirect; +#define glXIsDirect glad_glXIsDirect +typedef int (APIENTRYP PFNGLXGETCONFIGPROC)(Display *dpy, XVisualInfo *visual, int attrib, int *value); +GLAPI PFNGLXGETCONFIGPROC glad_glXGetConfig; +#define glXGetConfig glad_glXGetConfig +typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)(); +GLAPI PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext; +#define glXGetCurrentContext glad_glXGetCurrentContext +typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)(); +GLAPI PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable; +#define glXGetCurrentDrawable glad_glXGetCurrentDrawable +typedef void (APIENTRYP PFNGLXWAITGLPROC)(); +GLAPI PFNGLXWAITGLPROC glad_glXWaitGL; +#define glXWaitGL glad_glXWaitGL +typedef void (APIENTRYP PFNGLXWAITXPROC)(); +GLAPI PFNGLXWAITXPROC glad_glXWaitX; +#define glXWaitX glad_glXWaitX +typedef void (APIENTRYP PFNGLXUSEXFONTPROC)(Font font, int first, int count, int list); +GLAPI PFNGLXUSEXFONTPROC glad_glXUseXFont; +#define glXUseXFont glad_glXUseXFont +#endif +#ifndef GLX_VERSION_1_1 +#define GLX_VERSION_1_1 1 +GLAPI int GLAD_GLX_VERSION_1_1; +typedef const char * (APIENTRYP PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display *dpy, int screen); +GLAPI PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString; +#define glXQueryExtensionsString glad_glXQueryExtensionsString +typedef const char * (APIENTRYP PFNGLXQUERYSERVERSTRINGPROC)(Display *dpy, int screen, int name); +GLAPI PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString; +#define glXQueryServerString glad_glXQueryServerString +typedef const char * (APIENTRYP PFNGLXGETCLIENTSTRINGPROC)(Display *dpy, int name); +GLAPI PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString; +#define glXGetClientString glad_glXGetClientString +#endif +#ifndef GLX_VERSION_1_2 +#define GLX_VERSION_1_2 1 +GLAPI int GLAD_GLX_VERSION_1_2; +typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)(); +GLAPI PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay; +#define glXGetCurrentDisplay glad_glXGetCurrentDisplay +#endif +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 +GLAPI int GLAD_GLX_VERSION_1_3; +typedef GLXFBConfig * (APIENTRYP PFNGLXGETFBCONFIGSPROC)(Display *dpy, int screen, int *nelements); +GLAPI PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs; +#define glXGetFBConfigs glad_glXGetFBConfigs +typedef GLXFBConfig * (APIENTRYP PFNGLXCHOOSEFBCONFIGPROC)(Display *dpy, int screen, const int *attrib_list, int *nelements); +GLAPI PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig; +#define glXChooseFBConfig glad_glXChooseFBConfig +typedef int (APIENTRYP PFNGLXGETFBCONFIGATTRIBPROC)(Display *dpy, GLXFBConfig config, int attribute, int *value); +GLAPI PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib; +#define glXGetFBConfigAttrib glad_glXGetFBConfigAttrib +typedef XVisualInfo * (APIENTRYP PFNGLXGETVISUALFROMFBCONFIGPROC)(Display *dpy, GLXFBConfig config); +GLAPI PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig; +#define glXGetVisualFromFBConfig glad_glXGetVisualFromFBConfig +typedef GLXWindow (APIENTRYP PFNGLXCREATEWINDOWPROC)(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +GLAPI PFNGLXCREATEWINDOWPROC glad_glXCreateWindow; +#define glXCreateWindow glad_glXCreateWindow +typedef void (APIENTRYP PFNGLXDESTROYWINDOWPROC)(Display *dpy, GLXWindow win); +GLAPI PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow; +#define glXDestroyWindow glad_glXDestroyWindow +typedef GLXPixmap (APIENTRYP PFNGLXCREATEPIXMAPPROC)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +GLAPI PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap; +#define glXCreatePixmap glad_glXCreatePixmap +typedef void (APIENTRYP PFNGLXDESTROYPIXMAPPROC)(Display *dpy, GLXPixmap pixmap); +GLAPI PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap; +#define glXDestroyPixmap glad_glXDestroyPixmap +typedef GLXPbuffer (APIENTRYP PFNGLXCREATEPBUFFERPROC)(Display *dpy, GLXFBConfig config, const int *attrib_list); +GLAPI PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer; +#define glXCreatePbuffer glad_glXCreatePbuffer +typedef void (APIENTRYP PFNGLXDESTROYPBUFFERPROC)(Display *dpy, GLXPbuffer pbuf); +GLAPI PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer; +#define glXDestroyPbuffer glad_glXDestroyPbuffer +typedef void (APIENTRYP PFNGLXQUERYDRAWABLEPROC)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +GLAPI PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable; +#define glXQueryDrawable glad_glXQueryDrawable +typedef GLXContext (APIENTRYP PFNGLXCREATENEWCONTEXTPROC)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +GLAPI PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext; +#define glXCreateNewContext glad_glXCreateNewContext +typedef Bool (APIENTRYP PFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +GLAPI PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent; +#define glXMakeContextCurrent glad_glXMakeContextCurrent +typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)(); +GLAPI PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable; +#define glXGetCurrentReadDrawable glad_glXGetCurrentReadDrawable +typedef int (APIENTRYP PFNGLXQUERYCONTEXTPROC)(Display *dpy, GLXContext ctx, int attribute, int *value); +GLAPI PFNGLXQUERYCONTEXTPROC glad_glXQueryContext; +#define glXQueryContext glad_glXQueryContext +typedef void (APIENTRYP PFNGLXSELECTEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long event_mask); +GLAPI PFNGLXSELECTEVENTPROC glad_glXSelectEvent; +#define glXSelectEvent glad_glXSelectEvent +typedef void (APIENTRYP PFNGLXGETSELECTEDEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long *event_mask); +GLAPI PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent; +#define glXGetSelectedEvent glad_glXGetSelectedEvent +#endif +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 +GLAPI int GLAD_GLX_VERSION_1_4; +typedef __GLXextFuncPtr (APIENTRYP PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName); +GLAPI PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress; +#define glXGetProcAddress glad_glXGetProcAddress +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/glfw/CMakeLists.txt b/external/glfw/CMakeLists.txt deleted file mode 100644 index 9c5ee15..0000000 --- a/external/glfw/CMakeLists.txt +++ /dev/null @@ -1,121 +0,0 @@ -add_definitions(-D_GLFW_USE_CONFIG_H) - -set(common_HEADERS internal.h - "${GLFW_BINARY_DIR}/src/glfw_config.h" - "${GLFW_SOURCE_DIR}/include/GLFW/glfw3.h" - "${GLFW_SOURCE_DIR}/include/GLFW/glfw3native.h") -set(common_SOURCES context.c init.c input.c monitor.c vulkan.c window.c) - -if (_GLFW_COCOA) - set(glfw_HEADERS ${common_HEADERS} cocoa_platform.h cocoa_joystick.h - posix_tls.h nsgl_context.h) - set(glfw_SOURCES ${common_SOURCES} cocoa_init.m cocoa_joystick.m - cocoa_monitor.m cocoa_window.m cocoa_time.c posix_tls.c - nsgl_context.m) -elseif (_GLFW_WIN32) - set(glfw_HEADERS ${common_HEADERS} win32_platform.h win32_joystick.h - wgl_context.h egl_context.h) - set(glfw_SOURCES ${common_SOURCES} win32_init.c win32_joystick.c - win32_monitor.c win32_time.c win32_tls.c win32_window.c - wgl_context.c egl_context.c) -elseif (_GLFW_X11) - set(glfw_HEADERS ${common_HEADERS} x11_platform.h xkb_unicode.h - linux_joystick.h posix_time.h posix_tls.h glx_context.h - egl_context.h) - set(glfw_SOURCES ${common_SOURCES} x11_init.c x11_monitor.c x11_window.c - xkb_unicode.c linux_joystick.c posix_time.c posix_tls.c - glx_context.c egl_context.c) -elseif (_GLFW_WAYLAND) - set(glfw_HEADERS ${common_HEADERS} wl_platform.h linux_joystick.h - posix_time.h posix_tls.h xkb_unicode.h egl_context.h) - set(glfw_SOURCES ${common_SOURCES} wl_init.c wl_monitor.c wl_window.c - linux_joystick.c posix_time.c posix_tls.c xkb_unicode.c - egl_context.c) - - ecm_add_wayland_client_protocol(glfw_SOURCES - PROTOCOL - ${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/relative-pointer/relative-pointer-unstable-v1.xml - BASENAME relative-pointer-unstable-v1) - ecm_add_wayland_client_protocol(glfw_SOURCES - PROTOCOL - ${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml - BASENAME pointer-constraints-unstable-v1) -elseif (_GLFW_MIR) - set(glfw_HEADERS ${common_HEADERS} mir_platform.h linux_joystick.h - posix_time.h posix_tls.h xkb_unicode.h egl_context.h) - set(glfw_SOURCES ${common_SOURCES} mir_init.c mir_monitor.c mir_window.c - linux_joystick.c posix_time.c posix_tls.c xkb_unicode.c - egl_context.c) -endif() - -if (APPLE) - # For some reason, CMake doesn't know about .m - set_source_files_properties(${glfw_SOURCES} PROPERTIES LANGUAGE C) -endif() - -add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS}) -set_target_properties(glfw PROPERTIES - OUTPUT_NAME ${GLFW_LIB_NAME} - VERSION ${GLFW_VERSION} - SOVERSION ${GLFW_VERSION_MAJOR} - POSITION_INDEPENDENT_CODE ON - FOLDER "GLFW3") - -target_compile_definitions(glfw PRIVATE -D_GLFW_USE_CONFIG_H) -target_include_directories(glfw PUBLIC - $ - $/include>) -target_include_directories(glfw PRIVATE - "${GLFW_SOURCE_DIR}/src" - "${GLFW_BINARY_DIR}/src" - ${glfw_INCLUDE_DIRS}) - -# HACK: When building on MinGW, WINVER and UNICODE need to be defined before -# the inclusion of stddef.h (by glfw3.h), which is itself included before -# win32_platform.h. We define them here until a saner solution can be found -# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack. -target_compile_definitions(glfw PRIVATE - "$<$:UNICODE;WINVER=0x0501>") - -# Enable a reasonable set of warnings (no, -Wextra is not reasonable) -target_compile_options(glfw PRIVATE - "$<$:-Wall>" - "$<$:-Wall>") - -if (BUILD_SHARED_LIBS) - if (WIN32) - if (MINGW) - # Remove the lib prefix on the DLL (but not the import library - set_target_properties(glfw PROPERTIES PREFIX "") - - # Add a suffix to the import library to avoid naming conflicts - set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.a") - else() - # Add a suffix to the import library to avoid naming conflicts - set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.lib") - endif() - elseif (APPLE) - # Add -fno-common to work around a bug in Apple's GCC - target_compile_options(glfw PRIVATE "-fno-common") - - set_target_properties(glfw PROPERTIES - INSTALL_NAME_DIR "lib${LIB_SUFFIX}") - elseif (UNIX) - # Hide symbols not explicitly tagged for export from the shared library - target_compile_options(glfw PRIVATE "-fvisibility=hidden") - endif() - - target_compile_definitions(glfw INTERFACE -DGLFW_DLL) - target_link_libraries(glfw PRIVATE ${glfw_LIBRARIES}) -else() - target_link_libraries(glfw INTERFACE ${glfw_LIBRARIES}) -endif() - -if (MSVC) - target_compile_definitions(glfw PRIVATE _CRT_SECURE_NO_WARNINGS) -endif() - -if (GLFW_INSTALL) - install(TARGETS glfw EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX}) -endif() - diff --git a/external/glfw/glfw_config.h b/external/glfw/glfw_config.h index 76dc937..2250ff0 100644 --- a/external/glfw/glfw_config.h +++ b/external/glfw/glfw_config.h @@ -37,7 +37,7 @@ // Define this to 1 if building GLFW for X11 /* #undef _GLFW_X11 */ // Define this to 1 if building GLFW for Win32 -#define _GLFW_WIN32 +//#define _GLFW_WIN32 // Define this to 1 if building GLFW for Cocoa /* #undef _GLFW_COCOA */ // Define this to 1 if building GLFW for Wayland @@ -63,3 +63,16 @@ // Define this to 1 if windows should use full resolution on Retina displays /* #undef _GLFW_USE_RETINA */ +#if defined ( _WIN32 ) + #define _GLFW_WIN32 + #define _GLFW_WGL +#elif defined ( __APPLE__ ) + #define _GLFW_COCOA + #define _GLFW_NSGL +#else + #define _GLFW_X11 + #define _GLFW_GLX +#endif + +#define _GLFW_USE_MENUBAR +#define _GLFW_USE_OPENGL diff --git a/external/imgui/CMakeLists.txt b/external/imgui/CMakeLists.txt deleted file mode 100644 index 048d0f6..0000000 --- a/external/imgui/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -set(imgui_HEADERS - imconfig.h - imgui.h - imgui_internal.h - imgui_impl_glfw_gl3.h - stb_rect_pack.h - stb_textedit.h - stb_truetype.h -) - -set(imgui_SOURCES - imgui.cpp - imgui_draw.cpp - imgui_impl_glfw_gl3.cpp -) - -include_directories(../) -add_library(imgui STATIC ${imgui_HEADERS} ${imgui_SOURCES}) \ No newline at end of file diff --git a/external/imgui/imgui_impl_glfw_gl3.cpp b/external/imgui/imgui_impl_glfw_gl3.cpp index e8ff8d4..d097d65 100644 --- a/external/imgui/imgui_impl_glfw_gl3.cpp +++ b/external/imgui/imgui_impl_glfw_gl3.cpp @@ -6,21 +6,23 @@ // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. // https://github.com/ocornut/imgui -#include "imgui.h" +#include #include "imgui_impl_glfw_gl3.h" -// GL3W/GLFW #if defined(__APPLE_CC__) -#include + #include #else -#include + // GLEW/GL3W/GLAD/... + #include #endif + #include -#ifdef _WIN32 -#undef APIENTRY -#define GLFW_EXPOSE_NATIVE_WIN32 -#define GLFW_EXPOSE_NATIVE_WGL -#include + +#if defined ( _WIN32 ) + #undef APIENTRY + #define GLFW_EXPOSE_NATIVE_WIN32 + #define GLFW_EXPOSE_NATIVE_WGL + #include #endif // Data @@ -208,7 +210,7 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects() glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array); const GLchar *vertex_shader = - "#version 330\n" + "#version 130\n" "uniform mat4 ProjMtx;\n" "in vec2 Position;\n" "in vec2 UV;\n" @@ -223,7 +225,7 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects() "}\n"; const GLchar* fragment_shader = - "#version 330\n" + "#version 130\n" "uniform sampler2D Texture;\n" "in vec2 Frag_UV;\n" "in vec4 Frag_Color;\n" diff --git a/include/bounce/bounce.h b/include/bounce/bounce.h index 081c14d..c6bfbcf 100644 --- a/include/bounce/bounce.h +++ b/include/bounce/bounce.h @@ -21,40 +21,40 @@ // Include this file header in your project to directly access Bounce objects. -#include -#include -#include -#include +#include +#include +#include +#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include -#include -#include -#include +#include +#include +#include +#include -#include -#include -#include +#include +#include +#include -#include -#include -#include +#include +#include +#include #endif \ No newline at end of file diff --git a/include/bounce/collision/broad_phase.h b/include/bounce/collision/broad_phase.h index fec07b8..7dfb836 100644 --- a/include/bounce/collision/broad_phase.h +++ b/include/bounce/collision/broad_phase.h @@ -19,7 +19,7 @@ #ifndef B3_BROAD_PHASE_H #define B3_BROAD_PHASE_H -#include +#include #include // A pair of broad-phase proxies. @@ -29,8 +29,8 @@ struct b3Pair i32 proxy2; }; -// The broad-phase collision interface. -// It is used to perform ray, AABB, and overlapping-pair queries +// The broad-phase interface. +// It is used to perform ray casts, volume queries, and overlapping queries // against AABBs. class b3BroadPhase { @@ -38,14 +38,14 @@ public: b3BroadPhase(); ~b3BroadPhase(); - // Create a broad-phase proxy and return a proxy. + // Create a proxy and return a index to it. i32 CreateProxy(const b3AABB3& aabb, void* userData); - // Destroy an existing proxy. + // Destroy a given proxy and remove it from the broadphase. void DestroyProxy(i32 proxyId); - // Update an existing proxy with a given AABB and a displacement. - // displacement = int[a, b](dv/dt) dt = F(b) - F(a) = x(b) - x(a) ~= v * dt + // Update an existing proxy AABB with a given AABB and a displacement. + // displacement = dt * velocity // Return true if the proxy has moved. bool MoveProxy(i32 proxyId, const b3AABB3& aabb, const b3Vec3& displacement); @@ -65,15 +65,15 @@ public: // Notify the client callback the AABBs that are overlapping the // passed ray. template - void QueryRay(T* callback, const b3RayCastInput& input) const; + void RayCast(T* callback, const b3RayCastInput& input) const; // Notify the client callback the AABB pairs that are overlapping. // The client must store the notified pairs. template void FindNewPairs(T* callback); - // Debug b3Draw the AABB proxies. - void Draw(b3Draw* b3Draw) const; + // Draw the proxy AABBs. + void Draw(b3Draw* draw) const; private : friend class b3DynamicTree; @@ -81,18 +81,18 @@ private : // Only moved proxies will be used as an AABB query reference object. void BufferMove(i32 proxyId); - // The client callback used to add a overlapping pair + // The client callback used to add an overlapping pair // to the overlapping pair buffer. bool Report(i32 proxyId); // The dynamic tree. b3DynamicTree m_tree; - // The current proxy being queried for - // overlap witha another proxies. Is used to avoid a proxy overlap with itself. + // The current proxy being queried for overlap with another proxies. + // It is used to avoid a proxy overlap with itself. i32 m_queryProxyId; - // Keep a buffer of the objects that have moved in a step. + // The objects that have moved in a step. i32* m_moveBuffer; u32 m_moveBufferCount; u32 m_moveBufferCapacity; @@ -120,9 +120,9 @@ inline void b3BroadPhase::QueryAABB(T* callback, const b3AABB3& aabb) const } template -inline void b3BroadPhase::QueryRay(T* callback, const b3RayCastInput& input) const +inline void b3BroadPhase::RayCast(T* callback, const b3RayCastInput& input) const { - return m_tree.QueryRay(callback, input); + return m_tree.RayCast(callback, input); } inline bool operator<(const b3Pair& pair1, const b3Pair& pair2) @@ -189,9 +189,9 @@ inline void b3BroadPhase::FindNewPairs(T* callback) } } -inline void b3BroadPhase::Draw(b3Draw* b3Draw) const +inline void b3BroadPhase::Draw(b3Draw* draw) const { - m_tree.Draw(b3Draw); + m_tree.Draw(draw); } #endif \ No newline at end of file diff --git a/include/bounce/collision/distance.h b/include/bounce/collision/distance.h index 916000e..49f15f3 100644 --- a/include/bounce/collision/distance.h +++ b/include/bounce/collision/distance.h @@ -16,27 +16,13 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef B3_COLLISION_H -#define B3_COLLISION_H +#ifndef B3_DISTANCE_H +#define B3_DISTANCE_H -#include -#include -#include +#include +#include -// Input for a ray cast query. -struct b3RayCastInput -{ - b3Vec3 p1; // first point on segment - b3Vec3 p2; // second point on segment - float32 maxFraction; // maximum intersection -}; - -// Output of ray cast query. -struct b3RayCastOutput -{ - float32 fraction; // time of intersection - b3Vec3 normal; // surface normal of intersection -}; +/////////////////////////////////////////////////////////////////////////////////////////////////// // Find the closest point for a point P to a normalized plane. b3Vec3 b3ClosestPointOnPlane(const b3Vec3& P, const b3Plane& plane); @@ -59,9 +45,26 @@ void b3ClosestPointsOnNormalizedLines(b3Vec3* C1, b3Vec3* C2, const b3Vec3& P1, const b3Vec3& N1, const b3Vec3& P2, const b3Vec3& N2); -// Find the closest points of two segments P1-Q1 to a segment P2-Q2. +// Find the closest points of two segments. void b3ClosestPointsOnSegments(b3Vec3* C1, b3Vec3* C2, const b3Vec3& P1, const b3Vec3& Q1, const b3Vec3& P2, const b3Vec3& Q2); +/////////////////////////////////////////////////////////////////////////////////////////////////// + +// Input for a ray cast. +struct b3RayCastInput +{ + b3Vec3 p1; // first point on segment + b3Vec3 p2; // second point on segment + float32 maxFraction; // maximum intersection +}; + +// Output of a ray cast. +struct b3RayCastOutput +{ + float32 fraction; // time of intersection on ray-segment + b3Vec3 normal; // surface normal of intersection +}; + #endif \ No newline at end of file diff --git a/include/bounce/collision/gjk/gjk.h b/include/bounce/collision/gjk/gjk.h index 75e6a4b..652d331 100644 --- a/include/bounce/collision/gjk/gjk.h +++ b/include/bounce/collision/gjk/gjk.h @@ -19,7 +19,7 @@ #ifndef B3_GJK_H #define B3_GJK_H -#include +#include class b3GJKProxy; struct b3SimplexCache; @@ -30,8 +30,8 @@ struct b3SimplexVertex b3Vec3 pointB; // support vertex on proxy B b3Vec3 point; // minkowski vertex float32 weight; // barycentric coordinate for point - u32 indexA; // support A index - u32 indexB; // support B index + u32 indexA; // support A vertex index + u32 indexB; // support B vertex index }; struct b3Simplex @@ -58,7 +58,8 @@ struct b3Simplex // The output of the GJK algorithm. // It contains the closest points between two proxies // and their euclidean distance. -struct b3GJKOutput +// If the distance is zero then the proxies are overlapping. +struct b3GJKOutput { b3Vec3 pointA; // closest point on proxy A b3Vec3 pointB; // closest point on proxy B @@ -67,8 +68,7 @@ struct b3GJKOutput }; // Find the closest points and distance between two proxies. -// If the distance is zero then the proxies are overlapping. b3GJKOutput b3GJK(const b3Transform& xfA, const b3GJKProxy& proxyA, const b3Transform& xfB, const b3GJKProxy& proxyB); -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/gjk/gjk_cache.h b/include/bounce/collision/gjk/gjk_cache.h index e58306b..51c8ffd 100644 --- a/include/bounce/collision/gjk/gjk_cache.h +++ b/include/bounce/collision/gjk/gjk_cache.h @@ -19,15 +19,16 @@ #ifndef B3_GJK_CACHE_H #define B3_GJK_CACHE_H -#include +#include -// A simplex used to improve the performance +// A cached simplex is used to improve the performance // of the GJK when called more than once. // Make sure to set cache.count to zero before -// calling the GJK for the first time. +// passing this structure as an argument to GJK when called +// for the first time. struct b3SimplexCache { - float32 metric; // length or area or volume + float32 metric; // distance or area or volume u32 iterations; // number of GJK iterations u16 count; // number of support vertices u8 indexA[4]; // support vertices on proxy A @@ -36,11 +37,13 @@ struct b3SimplexCache // Find the closest points and distance between two proxies. // Assumes a simplex is given for increasing the performance of -// the GJK when called more than once. +// the algorithm when called more than once. b3GJKOutput b3GJK(const b3Transform& xfA, const b3GJKProxy& proxyA, const b3Transform& xfB, const b3GJKProxy& proxyB, bool applyRadius, b3SimplexCache* cache); +// A feature pair contains the vertices of the features associated +// with the closest points. struct b3GJKFeaturePair { enum Type @@ -57,10 +60,10 @@ struct b3GJKFeaturePair u32 indexB[3]; // vertices on proxy B }; -// Get the vertices of the features that the closest points between two +// Identify the vertices of the features that the closest points between two // GJK proxies are contained on given a cached simplex. // The GJK must have been called using the pair of proxies and // cache.count must be < 4, that is, the proxies must not be overlapping. b3GJKFeaturePair b3GetFeaturePair(const b3SimplexCache& cache); -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/gjk/gjk_proxy.h b/include/bounce/collision/gjk/gjk_proxy.h index b29ace4..a9189e1 100644 --- a/include/bounce/collision/gjk/gjk_proxy.h +++ b/include/bounce/collision/gjk/gjk_proxy.h @@ -19,31 +19,31 @@ #ifndef B3_GJK_PROXY_H #define B3_GJK_PROXY_H -#include +#include // A GJK proxy encapsulates any convex hull to be used by the GJK. class b3GJKProxy { public: - b3GJKProxy() : m_vertices(nullptr), m_count(0), m_radius(0.0f) { } + b3GJKProxy() : m_vertices(NULL), m_count(0), m_radius(0.0f) { } - // Get the number of vertices of this proxy. + // Get the number of vertices in this proxy. u32 GetVertexCount() const; // Read an indexed vertex from this proxy. const b3Vec3& GetVertex(u32 index) const; // Get the support vertex index in a given direction. - u32 GetSupportIndex(const b3Vec3& d) const; + u32 GetSupportIndex(const b3Vec3& direction) const; // Convenience function. // Get the support vertex in a given direction. - const b3Vec3& GetSupportVertex(const b3Vec3& d) const; + const b3Vec3& GetSupportVertex(const b3Vec3& direction) const; - b3Vec3 m_buffer[3]; // for childs - const b3Vec3* m_vertices; - u32 m_count; - float32 m_radius; + const b3Vec3* m_vertices; // vertices in this proxy + u32 m_count; // number of vertices + float32 m_radius; // shape radius + b3Vec3 m_buffer[3]; // vertices from a child shape }; inline u32 b3GJKProxy::GetVertexCount() const @@ -79,4 +79,4 @@ inline const b3Vec3& b3GJKProxy::GetSupportVertex(const b3Vec3& d) const return m_vertices[index]; } -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/sat/sat.h b/include/bounce/collision/sat/sat.h index 5992864..afb2431 100644 --- a/include/bounce/collision/sat/sat.h +++ b/include/bounce/collision/sat/sat.h @@ -19,7 +19,7 @@ #ifndef B3_SAT_H #define B3_SAT_H -#include +#include struct b3Hull; diff --git a/include/bounce/collision/sat/sat_edge_and_hull.h b/include/bounce/collision/sat/sat_edge_and_hull.h index cacc941..1b796c5 100644 --- a/include/bounce/collision/sat/sat_edge_and_hull.h +++ b/include/bounce/collision/sat/sat_edge_and_hull.h @@ -16,10 +16,10 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef B3_EDGE_SAT_H -#define B3_EDGE_SAT_H +#ifndef B3_EDGE_HULL_SAT_H +#define B3_EDGE_HULL_SAT_H -#include +#include struct b3Capsule; @@ -37,4 +37,4 @@ float32 b3ProjectEdge(const b3Vec3& P1, const b3Vec3& E1, const b3Vec3& P2, cons b3EdgeQuery b3QueryEdgeSeparation(const b3Transform& xfA, const b3Capsule* hullA, const b3Transform& xfB, const b3Hull* hullB); -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/sat/sat_vertex_and_hull.h b/include/bounce/collision/sat/sat_vertex_and_hull.h index 0a5fea4..24c8de6 100644 --- a/include/bounce/collision/sat/sat_vertex_and_hull.h +++ b/include/bounce/collision/sat/sat_vertex_and_hull.h @@ -16,10 +16,10 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef B3_VERTEX_SAT_H -#define B3_VERTEX_SAT_H +#ifndef B3_VERTEX_HULL_SAT_H +#define B3_VERTEX_HULL_SAT_H -#include +#include struct b3Sphere; diff --git a/include/bounce/collision/shapes/aabb3.h b/include/bounce/collision/shapes/aabb3.h index 137e1be..5206ef5 100644 --- a/include/bounce/collision/shapes/aabb3.h +++ b/include/bounce/collision/shapes/aabb3.h @@ -19,11 +19,15 @@ #ifndef B3_AABB_3_H #define B3_AABB_3_H -#include +#include // A min-max representation of a three-dimensional AABB. struct b3AABB3 { + b3Vec3 m_lower; // lower vertex + b3Vec3 m_upper; // upper vertex + + // Get the support vertex in a given direction. b3Vec3 GetSupportVertex(const b3Vec3& direction) const { b3Vec3 support; @@ -128,7 +132,7 @@ struct b3AABB3 } // Test if this AABB contains a point. - bool TestPoint(const b3Vec3& point) const + bool Contains(const b3Vec3& point) const { return m_lower.x <= point.x && point.x <= m_upper.x && m_lower.y <= point.y && point.y <= m_upper.y && @@ -138,11 +142,11 @@ struct b3AABB3 // Test if this AABB contains another AABB. bool Contains(const b3AABB3& aabb) const { - return TestPoint(aabb.m_lower) && TestPoint(aabb.m_upper); + return Contains(aabb.m_lower) && Contains(aabb.m_upper); } - // Test if a ray intersect this AABB. - // Output the minimum fraction to derive the intersection point. + // Test if a ray intersects this AABB. + // Output the minimum and maximum intersection fractions to derive the minimum and maximum intersection points. bool TestRay(const b3Vec3& p1, const b3Vec3& p2, float32 maxFraction, float32& minFraction) const { // Solve segment to slab plane. @@ -159,9 +163,10 @@ struct b3AABB3 for (u32 i = 0; i < 3; ++i) { float32 numerators[2], denominators[2]; - //numerators[0] = (-m_lower[i]) - (-p1[i]); + numerators[0] = p1[i] - m_lower[i]; numerators[1] = m_upper[i] - p1[i]; + denominators[0] = -d[i]; denominators[1] = d[i]; @@ -215,9 +220,6 @@ struct b3AABB3 minFraction = lower; return true; } - - b3Vec3 m_lower; // lower vertex - b3Vec3 m_upper; // upper vertex }; // Compute an AABB that encloses two AABBs. @@ -236,4 +238,4 @@ inline bool b3TestOverlap(const b3AABB3& a, const b3AABB3& b) (a.m_upper.x >= b.m_lower.x) && (a.m_upper.y >= b.m_lower.y) && (a.m_upper.z >= b.m_lower.z); } -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/shapes/box_hull.h b/include/bounce/collision/shapes/box_hull.h index f83b1f5..690c10c 100644 --- a/include/bounce/collision/shapes/box_hull.h +++ b/include/bounce/collision/shapes/box_hull.h @@ -19,7 +19,7 @@ #ifndef B3_BOX_HULL_H #define B3_BOX_HULL_H -#include +#include struct b3BoxHull : public b3Hull { @@ -28,9 +28,10 @@ struct b3BoxHull : public b3Hull b3Face boxFaces[6]; b3Plane boxPlanes[6]; + // Does nothing for performance. b3BoxHull() { } - // Set this box to the unit box. + // Set this box to the unit box centered at the origin. void SetIdentity() { boxVertices[0] = b3Vec3(1.0f, 1.0f, -1.0f); @@ -90,9 +91,18 @@ struct b3BoxHull : public b3Hull planes = boxPlanes; faceCount = 6; } + + // Set this box from three extents and centered at the origin. + void Set(float32 ex, float32 ey, float32 ez) + { + b3Transform xf; + xf.position.SetZero(); + xf.rotation = b3Diagonal(ex, ey, ez); + SetTransform(xf); + } - // Set this box to the unit box and transform - // it. The transform must not contain non-uniform + // Set this box to the unit box and transform it. + // Warning: The transform must not contain non-uniform // scaling! void SetTransform(const b3Transform& T) { @@ -162,4 +172,4 @@ struct b3BoxHull : public b3Hull } }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/shapes/capsule.h b/include/bounce/collision/shapes/capsule.h index 49ca261..7ad03b1 100644 --- a/include/bounce/collision/shapes/capsule.h +++ b/include/bounce/collision/shapes/capsule.h @@ -19,7 +19,7 @@ #ifndef B3_CAPSULE_H #define B3_CAPSULE_H -#include +#include struct b3Capsule { @@ -27,7 +27,6 @@ struct b3Capsule float32 radius; const b3Vec3& GetVertex(u32 index) const; - u32 GetSupportVertex(const b3Vec3& direction) const; }; @@ -36,13 +35,13 @@ inline const b3Vec3& b3Capsule::GetVertex(u32 index) const return vertices[index]; } -inline u32 b3Capsule::GetSupportVertex(const b3Vec3& direction) const +inline u32 b3Capsule::GetSupportVertex(const b3Vec3& d) const { - if (b3Dot(direction, vertices[0]) > b3Dot(direction, vertices[1])) + if (b3Dot(d, vertices[0]) > b3Dot(d, vertices[1])) { return 0; } return 1; } -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/shapes/hull.h b/include/bounce/collision/shapes/hull.h index 909673a..c3a43e9 100644 --- a/include/bounce/collision/shapes/hull.h +++ b/include/bounce/collision/shapes/hull.h @@ -19,7 +19,7 @@ #ifndef B3_HULL_H #define B3_HULL_H -#include +#include struct b3Face { @@ -52,14 +52,14 @@ struct b3Hull u32 GetSupportVertex(const b3Vec3& direction) const; u32 GetSupportFace(const b3Vec3& direction) const; - b3Plane GetEdgeSidePlane(u32 index) const; + u32 GetSize() const; void Validate() const; void Validate(const b3Face* face) const; void Validate(const b3HalfEdge* edge) const; }; -#include +#include #endif \ No newline at end of file diff --git a/include/bounce/collision/shapes/mesh.h b/include/bounce/collision/shapes/mesh.h index 3298a33..dfdefc6 100644 --- a/include/bounce/collision/shapes/mesh.h +++ b/include/bounce/collision/shapes/mesh.h @@ -19,8 +19,8 @@ #ifndef B3_MESH_H #define B3_MESH_H -#include -#include +#include +#include struct b3Mesh { diff --git a/include/bounce/collision/shapes/sphere.h b/include/bounce/collision/shapes/sphere.h index 5746b01..49198d5 100644 --- a/include/bounce/collision/shapes/sphere.h +++ b/include/bounce/collision/shapes/sphere.h @@ -19,7 +19,7 @@ #ifndef B3_SPHERE_H #define B3_SPHERE_H -#include +#include struct b3Sphere { @@ -27,7 +27,6 @@ struct b3Sphere float32 radius; const b3Vec3& GetVertex(u32 index) const; - u32 GetSupportVertex(const b3Vec3& direction) const; }; diff --git a/include/bounce/collision/shapes/triangle_hull.h b/include/bounce/collision/shapes/triangle_hull.h index c3f2417..1ed5964 100644 --- a/include/bounce/collision/shapes/triangle_hull.h +++ b/include/bounce/collision/shapes/triangle_hull.h @@ -19,7 +19,7 @@ #ifndef B3_TRIANGLE_HULL_H #define B3_TRIANGLE_HULL_H -#include +#include struct b3TriangleHull : public b3Hull { @@ -37,9 +37,7 @@ struct b3TriangleHull : public b3Hull void Set(const b3Vec3& A, const b3Vec3& B, const b3Vec3& C) { - const float32 kInv3 = 1.0f / 3.0f; - - centroid = kInv3 * (A + B + C); + centroid = (A + B + C) / 3.0f; triangleVertices[0] = A; triangleVertices[1] = B; @@ -73,4 +71,4 @@ struct b3TriangleHull : public b3Hull } }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/trees/dynamic_tree.h b/include/bounce/collision/trees/dynamic_tree.h index 6d953dc..ad3b01f 100644 --- a/include/bounce/collision/trees/dynamic_tree.h +++ b/include/bounce/collision/trees/dynamic_tree.h @@ -19,21 +19,21 @@ #ifndef B3_DYNAMIC_TREE_H #define B3_DYNAMIC_TREE_H -#include -#include -#include -#include +#include +#include +#include +#include #define NULL_NODE (-1) -// An AABB tree for dynamic AABBs. +// AABB tree for dynamic AABBs. class b3DynamicTree { public : b3DynamicTree(); ~b3DynamicTree(); - // Insert a node to the tree and return its ID. + // Insert a node into the tree and return its ID. i32 InsertNode(const b3AABB3& aabb, void* userData); // Remove a node from the tree. @@ -48,7 +48,7 @@ public : // Get the data associated with a given proxy. void* GetUserData(i32 proxyId) const; - // Check if two aabbs of this tree are overlapping. + // Check if two aabbs in this tree are overlapping. bool TestOverlap(i32 proxy1, i32 proxy2) const; // Keep reporting the client callback the AABBs that are overlapping with @@ -61,22 +61,24 @@ public : // the given ray. The client callback must return the new intersection fraction. // If the fraction == 0 then the query is cancelled immediately. template - void QueryRay(T* callback, const b3RayCastInput& input) const; + void RayCast(T* callback, const b3RayCastInput& input) const; // Validate a given node of this tree. void Validate(i32 node) const; // Draw this tree. - void Draw(b3Draw* b3Draw) const; + void Draw(b3Draw* draw) const; private : struct b3Node { + // Is this node a leaf? bool IsLeaf() const { - return child1 == NULL_NODE; //or child 2 == NULL_NODE, or height == 0. + //A node is a leaf if child 2 == NULL_NODE or height == 0. + return child1 == NULL_NODE; } - // The (enlarged) AABB of this node. + // The fattened node AABB. b3AABB3 aabb; // The associated user data. @@ -91,31 +93,30 @@ private : i32 child1; i32 child2; - // leaf = 0, free node = -1 + // leaf if 0, free node if -1 i32 height; }; - // Insert a allocated (leaf) node into the tree. + // Insert a node into the tree. void InsertLeaf(i32 node); - // Remove a allocated node from the tree. + // Remove a node from the tree. void RemoveLeaf(i32 node); - // Rebuild the tree hierarchy starting from the given node. + // Rebuild the hierarchy starting from the given node. void WalkBackNodeAndCombineVolumes(i32 node); - // Perform a basic surface area heuristic search to find the best - // node that can be merged with a given AABB. - i32 HeuristicSearch(const b3AABB3& leafAABB) const; + // Find the best node that can be merged with a given AABB. + i32 FindBest(const b3AABB3& aabb) const; // Peel a node from the free list and insert into the node array. // Allocate a new node if necessary. The function returns the new node index. i32 AllocateNode(); - // Free a node (not destroy) from the node pool and add it to the free list. + // Free a node from the node pool and add it to the free list. void FreeNode(i32 node); - // Make a node available for the next allocation request. + // Make a node available for the next allocation. void AddToFreeList(i32 node); // The root of this tree. @@ -128,25 +129,25 @@ private : i32 m_freeList; }; -inline bool b3DynamicTree::TestOverlap(i32 proxy1, i32 proxy2) const -{ - B3_ASSERT(proxy1 < m_nodeCount); - B3_ASSERT(proxy2 < m_nodeCount); - return b3TestOverlap(m_nodes[proxy1].aabb, m_nodes[proxy2].aabb); -} - -inline const b3AABB3& b3DynamicTree::GetAABB(i32 proxyId) const +inline const b3AABB3& b3DynamicTree::GetAABB(i32 proxyId) const { B3_ASSERT(proxyId < m_nodeCount); return m_nodes[proxyId].aabb; } -inline void* b3DynamicTree::GetUserData(i32 proxyId) const +inline void* b3DynamicTree::GetUserData(i32 proxyId) const { B3_ASSERT(proxyId < m_nodeCount); return m_nodes[proxyId].userData; } +inline bool b3DynamicTree::TestOverlap(i32 proxy1, i32 proxy2) const +{ + B3_ASSERT(proxy1 < m_nodeCount); + B3_ASSERT(proxy2 < m_nodeCount); + return b3TestOverlap(m_nodes[proxy1].aabb, m_nodes[proxy2].aabb); +} + template inline void b3DynamicTree::QueryAABB(T* callback, const b3AABB3& aabb) const { @@ -184,14 +185,14 @@ inline void b3DynamicTree::QueryAABB(T* callback, const b3AABB3& aabb) const } template -inline void b3DynamicTree::QueryRay(T* callback, const b3RayCastInput& input) const +inline void b3DynamicTree::RayCast(T* callback, const b3RayCastInput& input) const { b3Vec3 p1 = input.p1; b3Vec3 p2 = input.p2; b3Vec3 d = p2 - p1; float32 maxFraction = input.maxFraction; - // Ensure non-degeneracy. + // Ensure non-degenerate segment. B3_ASSERT(b3Dot(d, d) > B3_EPSILON * B3_EPSILON); b3Stack stack; @@ -237,4 +238,4 @@ inline void b3DynamicTree::QueryRay(T* callback, const b3RayCastInput& input) co } } -#endif +#endif \ No newline at end of file diff --git a/include/bounce/collision/trees/static_tree.h b/include/bounce/collision/trees/static_tree.h index 3acc8cb..d09c293 100644 --- a/include/bounce/collision/trees/static_tree.h +++ b/include/bounce/collision/trees/static_tree.h @@ -19,28 +19,28 @@ #ifndef B3_STATIC_TREE_H #define B3_STATIC_TREE_H -#include -#include -#include -#include +#include +#include +#include +#include #define NULL_NODE_S (0xFFFFFFFF) -// An AABB tree for static AABBs. +// AABB tree for static AABBs. class b3StaticTree { public: b3StaticTree(); ~b3StaticTree(); - // Build the tree. - // Output a sorted index array. + // Build this tree from a list of AABBs and the list + // of indices to the AABBs. void Build(u32* indices, const b3AABB3* aabbs, u32 count); // Get the AABB of a given proxy. const b3AABB3& GetAABB(u32 proxyId) const; - // Get the index associated of a given proxy. + // Get the user data associated with a given proxy. u32 GetUserData(u32 proxyId) const; // Report the client callback all AABBs that are overlapping with @@ -53,10 +53,10 @@ public: // the given ray. The client callback must return the new intersection fraction // (real). If the fraction == 0 then the query is cancelled immediatly. template - void QueryRay(T* callback, const b3RayCastInput& input) const; + void RayCast(T* callback, const b3RayCastInput& input) const; - // Draw the hierarchy. - void Draw(b3Draw* b3Draw) const; + // Draw this tree. + void Draw(b3Draw* draw) const; private : // A node in a static tree. struct b3Node @@ -69,13 +69,14 @@ private : u32 index; }; - // Check if a node is a leaf node + // Is this node a leaf? bool IsLeaf() const { return child1 == NULL_NODE_S; } }; + // The nodes of this tree stored in an array. u32 m_nodeCount; b3Node* m_nodes; }; @@ -109,7 +110,12 @@ inline void b3StaticTree::QueryAABB(T* callback, const b3AABB3& aabb) const while (stack.IsEmpty() == false) { u32 nodeIndex = stack.Top(); - + + if (nodeIndex == NULL_NODE_S) + { + continue; + } + stack.Pop(); const b3Node* node = m_nodes + nodeIndex; @@ -133,7 +139,7 @@ inline void b3StaticTree::QueryAABB(T* callback, const b3AABB3& aabb) const } template -inline void b3StaticTree::QueryRay(T* callback, const b3RayCastInput& input) const +inline void b3StaticTree::RayCast(T* callback, const b3RayCastInput& input) const { if (m_nodeCount == 0) { @@ -145,7 +151,7 @@ inline void b3StaticTree::QueryRay(T* callback, const b3RayCastInput& input) con b3Vec3 d = p2 - p1; float32 maxFraction = input.maxFraction; - // Ensure non-degeneracy. + // Ensure non-degenerate segment. B3_ASSERT(b3Dot(d, d) > B3_EPSILON * B3_EPSILON); u32 root = 0; diff --git a/include/bounce/common/draw.h b/include/bounce/common/draw.h index 1703ccf..fb35cfd 100644 --- a/include/bounce/common/draw.h +++ b/include/bounce/common/draw.h @@ -19,10 +19,10 @@ #ifndef B3_DRAW_H #define B3_DRAW_H -#include -#include +#include +#include -// Color channels used by the debug b3Draw interface. +// Color channels used by the debug draw interface. struct b3Color { b3Color() { } @@ -32,11 +32,11 @@ struct b3Color float32 r, g, b, a; }; -// Implement this interface and set to a world so it can b3Draw the physics entities. +// Implement this interface and set to a world so it can draw the physics entities. class b3Draw { public : - // Bit flags to tell the world what needs to be b3Draw. + // Bit flags to tell the world what needs to be draw. enum b3Flags { e_shapesFlag = 0x0001, @@ -88,10 +88,10 @@ public : // Draw a AABB. virtual void DrawAABB(const b3AABB3& aabb, const b3Color& color) = 0; - // Draw a b3Transform. + // Draw a transform. virtual void DrawTransform(const b3Transform& xf) = 0; - // Debug b3Draw flags. + // Debug draw flags. u32 m_flags; }; diff --git a/include/bounce/common/geometry.h b/include/bounce/common/geometry.h index e2c4b4c..8fbc1d6 100644 --- a/include/bounce/common/geometry.h +++ b/include/bounce/common/geometry.h @@ -19,8 +19,8 @@ #ifndef B3_GEOMETRY_H #define B3_GEOMETRY_H -#include -#include +#include +#include // A triangle in indexed form. struct b3Triangle @@ -106,13 +106,13 @@ inline b3Plane b3Mul(const b3Transform& T, const b3Plane& plane) return b3Plane(normal, plane.offset + b3Dot(normal, T.position)); } +// Compute the distance between a point and a plane. inline float32 b3Distance(const b3Vec3& P, const b3Plane& plane) { return b3Dot(plane.normal, P) - plane.offset; } -// Project a point onto a plane. -// The plane must be normalized. +// Project a point onto a normal plane. inline b3Vec3 b3Project(const b3Vec3& P, const b3Plane& plane) { float32 fraction = b3Distance(P, plane); diff --git a/include/bounce/common/math/mat.h b/include/bounce/common/math/mat.h index 15658f7..e30a0c9 100644 --- a/include/bounce/common/math/mat.h +++ b/include/bounce/common/math/mat.h @@ -19,7 +19,7 @@ #ifndef B3_MAT_H #define B3_MAT_H -#include +#include // A vector stored in column-major order. template @@ -79,7 +79,10 @@ struct b3Mat }; // Solve Ax = b. -// Warning: Make sure to pass a copy of A to the function. It will be invalidated. +// It doesn't compute the inverse. +// Therefore, is more efficient. +// Returns false if the matrix is singular. +// Warning: Make sure to pass a copy of the original matrix to the function. A will be invalidated. bool b3Solve(float32* b, float32* A, u32 n); -#endif +#endif \ No newline at end of file diff --git a/include/bounce/common/math/mat22.h b/include/bounce/common/math/mat22.h index 9266d50..d4ca2f2 100644 --- a/include/bounce/common/math/mat22.h +++ b/include/bounce/common/math/mat22.h @@ -19,7 +19,7 @@ #ifndef B3_MAT_22_H #define B3_MAT_22_H -#include +#include // A 2-by-2 matrix stored in column-major order. struct b3Mat22 @@ -27,7 +27,7 @@ struct b3Mat22 // Does nothing for performance. b3Mat22() { } - // Set this matrix from two vector elements. + // Set this matrix from two vectors. b3Mat22(const b3Vec2& _x, const b3Vec2& _y) : x(_x), y(_y) { } // Solve Ax = b. diff --git a/include/bounce/common/math/mat33.h b/include/bounce/common/math/mat33.h index 13a3511..ae681f7 100644 --- a/include/bounce/common/math/mat33.h +++ b/include/bounce/common/math/mat33.h @@ -19,7 +19,7 @@ #ifndef B3_MAT_33_H #define B3_MAT_33_H -#include +#include // A 3-by-3 matrix stored in column-major order. struct b3Mat33 @@ -27,7 +27,7 @@ struct b3Mat33 // Does nothing for performance. b3Mat33() { } - // Set this matrix from three elements. + // Set this matrix from three column vectors. b3Mat33(const b3Vec3& _x, const b3Vec3& _y, const b3Vec3& _z) : x(_x), y(_y), z(_z) { } // Read an indexed column vector from this matrix. @@ -42,6 +42,12 @@ struct b3Mat33 return (&x)[i]; } + // Read an indexed element from this matrix. + float32 operator()(u32 i, u32 j) const + { + return (&x.x)[i + 3 * j]; + } + // Add a matrix to this matrix. void operator+=(const b3Mat33& B) { @@ -72,11 +78,6 @@ struct b3Mat33 // Returns the zero vector if the matrix is singular. b3Vec3 Solve(const b3Vec3& b) const; - float32 operator()(u32 i, u32 j) const - { - return (&x.x)[i + 3 * j]; - } - b3Vec3 x, y, z; }; @@ -134,7 +135,7 @@ inline b3Mat33 b3Mul(const b3Mat33& A, const b3Mat33& B) // Multiply the transpose of a matrix times a vector. If // the matrix represents a rotation frame this transforms the -// vector from one frame to another (inverse b3Transform). +// vector from one frame to another (inverse transform). inline b3Vec3 b3MulT(const b3Mat33& A, const b3Vec3& v) { return b3Vec3(b3Dot(A.x, v), b3Dot(A.y, v), b3Dot(A.z, v)); diff --git a/include/bounce/common/math/math.h b/include/bounce/common/math/math.h index 85e522f..17522cb 100644 --- a/include/bounce/common/math/math.h +++ b/include/bounce/common/math/math.h @@ -20,7 +20,7 @@ #define B3_MATH_H #include -#include +#include inline bool b3IsValid(float32 fx) { @@ -30,13 +30,13 @@ inline bool b3IsValid(float32 fx) inline float32 b3Sqrt(float32 x) { - return sqrtf(x); + return std::sqrt(x); } template inline T b3Abs(T x) { - return abs(x); + return std::abs(x); } template diff --git a/include/bounce/common/math/quat.h b/include/bounce/common/math/quat.h index 4b02508..fa88783 100644 --- a/include/bounce/common/math/quat.h +++ b/include/bounce/common/math/quat.h @@ -19,10 +19,10 @@ #ifndef B3_QUAT_H #define B3_QUAT_H -#include -#include +#include +#include -// A quaternion represents an orientation with 4 real numbers. +// A quaternion can represent an orientation with 4 scalars. struct b3Quat { // Default constructor does nothing for performance. @@ -157,13 +157,13 @@ inline b3Quat b3Normalize(const b3Quat& q) return b3Quat(0.0f, 0.0f, 0.0f, 1.0f); } -// Compute the dot poduct of two quaternions. +// Perform the dot poduct of two quaternions. inline float b3Dot(const b3Quat& a, const b3Quat& b) { return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w; } -// Compute the conjugate of a quaternion. +// Conjugate of a quaternion. inline b3Quat b3Conjugate(const b3Quat& q) { return b3Quat(-q.x, -q.y, -q.z, q.w); @@ -230,7 +230,6 @@ inline b3Quat b3Slerp(const b3Quat& a, const b3Quat& b, float32 fraction) b3Quat q1 = sin(w1 * angle) * a; b3Quat q2 = sin(w2 * angle) * b2; float32 invSin = 1.0f / sine; - return invSin * (q1 + q2); } diff --git a/include/bounce/common/math/transform.h b/include/bounce/common/math/transform.h index cdfdc76..b4baf2f 100644 --- a/include/bounce/common/math/transform.h +++ b/include/bounce/common/math/transform.h @@ -19,10 +19,10 @@ #ifndef B3_TRANSFORM_H #define B3_TRANSFORM_H -#include -#include +#include +#include -// A b3Transform represents a rigid frame. +// A transform represents a rigid frame. // It has a translation representing a position // and a rotation representing an orientation. struct b3Transform @@ -30,7 +30,7 @@ struct b3Transform // Default ctor does nothing for performance. b3Transform() { } - // Set this b3Transform from a translation vector and an orientation + // Set this transform from a translation vector and an orientation // quaternion. b3Transform(const b3Vec3& p, const b3Quat& q) { @@ -38,7 +38,7 @@ struct b3Transform rotation = b3ConvertQuatToRot(q); } - // Set this b3Transform to the identity. + // Set this transform to the identity. void SetIdentity() { position.SetZero(); @@ -61,7 +61,7 @@ struct b3Sweep b3Vec3 worldCenter; // world center b3Quat orientation; // world orientation - // Get this sweep b3Transform at a given time between [0, 1] + // Get this sweep transform at a given time between [0, 1] b3Transform GetTransform(float32 t) const; // Advance to a new initial state. @@ -90,7 +90,7 @@ inline void b3Sweep::Advance(float32 t) t0 = t; } -// Multiply a b3Transform times a vector. If the b3Transform +// Multiply a transform times a vector. If the transform // represents a frame this returns the vector in terms // of the frame. inline b3Vec3 operator*(const b3Transform& T, const b3Vec3& v) @@ -98,7 +98,7 @@ inline b3Vec3 operator*(const b3Transform& T, const b3Vec3& v) return b3Mul(T.rotation, v) + T.position; } -// Multiply a b3Transform times another b3Transform (composed b3Transform). +// Multiply a transform times another transform (composed transform). // [A y][B x] = [AB Ax+y] // [0 1][0 1] [0 1 ] inline b3Transform operator*(const b3Transform& A, const b3Transform& B) @@ -109,13 +109,13 @@ inline b3Transform operator*(const b3Transform& A, const b3Transform& B) return C; } -// Multiply a b3Transform times a vector. +// Multiply a transform times a vector. inline b3Vec3 b3Mul(const b3Transform& T, const b3Vec3& v) { return b3Mul(T.rotation, v) + T.position; } -// Multiply a b3Transform times another b3Transform. +// Multiply a transform times another transform. // [A y][B x] = [AB Ax+y] // [0 1][0 1] [0 1 ] inline b3Transform b3Mul(const b3Transform& A, const b3Transform& B) @@ -126,8 +126,8 @@ inline b3Transform b3Mul(const b3Transform& A, const b3Transform& B) return C; } -// Multiply the transpose of one b3Transform (inverse -// b3Transform) times another b3Transform (composed b3Transform). +// Multiply the transpose of one transform (inverse +// transform) times another transform (composed transform). //[A^-1 -A^-1*y][B x] = [A^-1*B A^-1(x-y)] //[0 1 ][0 1] [0 1 ] inline b3Transform b3MulT(const b3Transform& A, const b3Transform& B) @@ -138,9 +138,9 @@ inline b3Transform b3MulT(const b3Transform& A, const b3Transform& B) return C; } -// Multiply the transpose of a b3Transform times a vector. -// If the b3Transform represents a frame then this transforms -// the vector from one frame to another (inverse b3Transform). +// Multiply the transpose of a transform times a vector. +// If the transform represents a frame then this transforms +// the vector from one frame to another (inverse transform). //[A^-1 -A^-1*y][x] = A^-1*x - A^-1*y = A^-1 * (x - y) //[0 1 ][1] inline b3Vec3 b3MulT(const b3Transform& A, const b3Vec3& v) @@ -148,7 +148,7 @@ inline b3Vec3 b3MulT(const b3Transform& A, const b3Vec3& v) return b3MulT(A.rotation, v - A.position); } -// Inverse b3Transform. +// Inverse transform. inline b3Transform b3Inverse(const b3Transform& T) { b3Transform B; diff --git a/include/bounce/common/math/vec2.h b/include/bounce/common/math/vec2.h index f2fe4a3..cf7dcd6 100644 --- a/include/bounce/common/math/vec2.h +++ b/include/bounce/common/math/vec2.h @@ -19,7 +19,7 @@ #ifndef B3_VEC2_H #define B3_VEC2_H -#include +#include // A 2D column vector. struct b3Vec2 diff --git a/include/bounce/common/math/vec3.h b/include/bounce/common/math/vec3.h index 54b9664..20c53f8 100644 --- a/include/bounce/common/math/vec3.h +++ b/include/bounce/common/math/vec3.h @@ -19,7 +19,7 @@ #ifndef B3_VEC_3_H #define B3_VEC_3_H -#include +#include // A 3D column vector. struct b3Vec3 diff --git a/include/bounce/common/memory/block_pool.h b/include/bounce/common/memory/block_pool.h index 22b3bde..583b6b6 100644 --- a/include/bounce/common/memory/block_pool.h +++ b/include/bounce/common/memory/block_pool.h @@ -19,7 +19,7 @@ #ifndef B3_BLOCK_POOL_H #define B3_BLOCK_POOL_H -#include +#include // Number of blocks per chunk. const u32 b3_blockCount = 32; diff --git a/include/bounce/common/memory/stack_allocator.h b/include/bounce/common/memory/stack_allocator.h index a1b3c45..2ac323f 100644 --- a/include/bounce/common/memory/stack_allocator.h +++ b/include/bounce/common/memory/stack_allocator.h @@ -19,13 +19,13 @@ #ifndef B3_STACK_ALLOCATOR_H #define B3_STACK_ALLOCATOR_H -#include +#include // Allocate 10 MiB from the stack. // Increase as you want. const u32 b3_maxStackSize = B3_MiB(10); -// An stack allocator. +// A stack allocator. class b3StackAllocator { public : diff --git a/include/bounce/common/settings.h b/include/bounce/common/settings.h index cd7be98..eb2bc57 100644 --- a/include/bounce/common/settings.h +++ b/include/bounce/common/settings.h @@ -60,7 +60,7 @@ typedef float float32; #define B3_AABB_MULTIPLIER (2.0f) // Collision and constraint tolerance. -#define B3_LINEAR_SLOP (0.005f) +#define B3_LINEAR_SLOP (0.01f) // Collision and constraint tolerance. #define B3_ANGULAR_SLOP (2.0f / 180.0f * B3_PI) diff --git a/include/bounce/common/template/array.h b/include/bounce/common/template/array.h index 42e4500..da21e5d 100644 --- a/include/bounce/common/template/array.h +++ b/include/bounce/common/template/array.h @@ -19,7 +19,7 @@ #ifndef B3_ARRAY_POD_H #define B3_ARRAY_POD_H -#include +#include // An array for bytes (POD). template diff --git a/include/bounce/common/template/list.h b/include/bounce/common/template/list.h index 3a1d336..396ee7c 100644 --- a/include/bounce/common/template/list.h +++ b/include/bounce/common/template/list.h @@ -19,7 +19,7 @@ #ifndef B3_LIST_H #define B3_LIST_H -#include +#include // A singly-linked list. template @@ -28,7 +28,7 @@ class b3List1 public: b3List1() { - m_head = nullptr; + m_head = NULL; m_count = 0; } @@ -58,7 +58,7 @@ class b3List2 public: b3List2() { - m_head = nullptr; + m_head = NULL; m_count = 0; } @@ -66,7 +66,7 @@ public: void PushFront(T* link) { - link->m_prev = nullptr; + link->m_prev = NULL; link->m_next = m_head; if (m_head) { diff --git a/include/bounce/common/template/object_array.h b/include/bounce/common/template/object_array.h index 2e61516..9360f49 100644 --- a/include/bounce/common/template/object_array.h +++ b/include/bounce/common/template/object_array.h @@ -19,7 +19,7 @@ #ifndef B3_OBJECT_ARRAY_H #define B3_OBJECT_ARRAY_H -#include +#include // An array for objects. template diff --git a/include/bounce/common/template/stack.h b/include/bounce/common/template/stack.h index 4908bec..9e9adc9 100644 --- a/include/bounce/common/template/stack.h +++ b/include/bounce/common/template/stack.h @@ -19,7 +19,7 @@ #ifndef B3_STACK_H #define B3_STACK_H -#include +#include // A growable stack for plain-old-data (POD). template @@ -39,7 +39,7 @@ public: { b3Free(m_elements); } - m_elements = nullptr; + m_elements = NULL; } const T& Top() const diff --git a/include/bounce/common/time.h b/include/bounce/common/time.h index 903876d..4625535 100644 --- a/include/bounce/common/time.h +++ b/include/bounce/common/time.h @@ -19,45 +19,195 @@ #ifndef B3_TIME_H #define B3_TIME_H -#include +#include + +#define B3_WINDOWS 1 +#define B3_MAC 2 +#define B3_UNIX 3 + +#if defined (_WIN32) +#define B3_PLATFORM B3_WINDOWS +#elif defined( __APPLE__ ) +#define B3_PLATFORM B3_MAC +#else +#define B3_PLATFORM B3_UNIX +#endif + +#if B3_PLATFORM == B3_WINDOWS + +#include // A timer class that accumulates time. -// Usefull for measuring elapsed times of -// sections of code. +// Usefull for measuring elapsed times between code sections. class b3Time { -public : - b3Time(); +public: + b3Time() + { + LARGE_INTEGER c; + QueryPerformanceCounter(&c); + m_c0 = c.QuadPart; + m_t0 = 0.0; + m_t = 0.0; + } - // Get the accumulated time in miliseconds - // from this timer. - float64 GetCurMilis() const; + // Get the accumulated time in miliseconds from this timer. + float64 GetCurrentMilis() const + { + return m_t; + } // Get the elapsed time since this timer was updated. - float64 GetElapsedMilis() const; + float64 GetElapsedMilis() const + { + return m_t - m_t0; + } - // Add the elapsed time since this function - // was called to this timer. - void Update(); + // Add the elapsed time since this function was called to this timer. + void Update() + { + static float64 inv_frequency = 0.0; + if (inv_frequency == 0.0) + { + LARGE_INTEGER c; + QueryPerformanceFrequency(&c); + + float64 cycles_per_s = float64(c.QuadPart); + float64 s_per_cycle = 1.0 / cycles_per_s; + float64 ms_per_cycle = 1000.0 * s_per_cycle; + inv_frequency = ms_per_cycle; + } + + LARGE_INTEGER c; + QueryPerformanceCounter(&c); + + float64 dt = inv_frequency * float64(c.QuadPart - m_c0); + m_c0 = c.QuadPart; + Add(dt); + } + + // Add time to this timer. + void Add(float64 dt) + { + m_t0 = m_t; + m_t += dt; + } - // Add a given ammout of time to this timer. - void UpdateBy(float64 dt); private: - static float64 m_invFrequency; - - u64 m_lastRealTime; - float64 m_lastTime; - float64 m_curTime; + u64 m_c0; + float64 m_t0; + float64 m_t; }; -inline float64 b3Time::GetCurMilis() const -{ - return m_curTime; -} +#elif B3_PLATFORM == B3_MAC -inline float64 b3Time::GetElapsedMilis() const -{ - return m_curTime - m_lastTime; -} +#include + +// A timer class that accumulates time. +// Usefull for measuring elapsed times between code sections. +class b3Time +{ +public: + b3Time() + { + m_c0 = mach_absolute_time(); + m_t0 = 0.0; + m_t = 0.0; + } + + // Get the accumulated time in miliseconds from this timer. + double GetCurrentMilis() const + { + return m_t; + } + + // Get the elapsed time since this timer was updated. + double GetElapsedMilis() const + { + return m_t - m_t0; + } + + // Add the elapsed time since this function was called to this timer. + void Update() + { + static double inv_frequency = 0.0; + if (inv_frequency == 0.0) + { + mach_timebase_info_data_t info; + mach_timebase_info(&info); + inv_frequency = double(info.numer) / (double(info.denom) * 1.0e6); + } + + uint64_t c = mach_absolute_time(); + double dt = inv_frequency * (double)(c - m_c0); + m_c0 = c; + Add(dt); + } + + // Add time to this timer. + void Add(double dt) + { + m_t0 = m_t; + m_t += dt; + } + +private: + uint64_t m_c0; + double m_t0; + double m_t; +}; + +#else + +#include + +// A timer class that accumulates time. +// Usefull for measuring elapsed times between code sections. +class b3Time +{ +public: + b3Time() + { + clock_gettime(CLOCK_MONOTONIC, &m_c0); + m_t0 = 0.0; + m_t = 0.0; + } + + // Get the accumulated time in miliseconds from this timer. + double GetCurrentMilis() const + { + return m_t; + } + + // Get the elapsed time since this timer was updated. + double GetElapsedMilis() const + { + return m_t - m_t0; + } + + // Add the elapsed time since this function was called to this timer. + void Update() + { + struct timespec c; + clock_gettime(CLOCK_MONOTONIC, &c); + double dt = (double)(c.tv_nsec - m_c0.tv_nsec) * 1.0e-6; + m_c0 = c; + Add(dt); + } + + // Add time to this timer. + void Add(double dt) + { + m_t0 = m_t; + m_t += dt; + } + +private: + struct timespec m_c0; + double m_t0; + double m_t; +}; + +#endif // B3_PLATFORM #endif diff --git a/include/bounce/dynamics/body.h b/include/bounce/dynamics/body.h index 3a39562..1087ffe 100644 --- a/include/bounce/dynamics/body.h +++ b/include/bounce/dynamics/body.h @@ -19,11 +19,11 @@ #ifndef B3_BODY_H #define B3_BODY_H -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include class b3World; class b3Shape; @@ -51,7 +51,7 @@ struct b3BodyDef fixedRotationX = false; fixedRotationY = false; fixedRotationZ = false; - userData = nullptr; + userData = NULL; position.SetZero(); orientation.SetIdentity(); linearVelocity.SetZero(); @@ -81,6 +81,13 @@ public: // A world manages the body destruction. ~b3Body() { } + // Get the type of the body. + b3BodyType GetType() const; + + // Set the type of the body. + // This will reset the current body inertial properties. + void SetType(b3BodyType type); + // Create a new shape for the body given the shape definition and return a pointer to its clone. // The shape passed to the definition it will be cloned and is not recommended modifying // it inside simulation callbacks. @@ -90,36 +97,20 @@ public: // Destroy a given shape from the body. void DestroyShape(b3Shape* shape); - // Destroy all shapes associated with the body. - void DestroyShapes(); - - // Destroy all contacts associated with the body. - void DestroyContacts(); - - // Destroy all joints connected to the body. - void DestroyJoints(); - // Get the shapes associated with the body. const b3List1& GetShapeList() const; b3List1& GetShapeList(); - // Get the type of the body. - b3BodyType GetType() const; - - // Set the type of the body. - // This will reset the current body inertial properties. - void SetType(b3BodyType type); - // Get the world the body belongs to. const b3World* GetWorld() const; b3World* GetWorld(); - // Get the body world b3Transform. + // Get the body world transform. const b3Transform& GetTransform() const; - // Set the body world b3Transform from a position, axis of rotation and an angle + // Set the body world transform from a position, axis of rotation and an angle // of rotation about the axis. - // However, manipulating a body b3Transform during the simulation may cause non-physical behaviour. + // However, manipulating a body transform during the simulation may cause non-physical behaviour. void SetTransform(const b3Vec3& position, const b3Vec3& axis, float32 angle); // Get the gravity scale of the body. One is used by default. @@ -186,7 +177,7 @@ public: // Get the rotational inertia of the body about the center of mass. Typically in kg/m^3. const b3Mat33& GetInertia() const; - // Get the total kinetic energy of the body. + // Get the total kinetic energy of the body in Joules (kilogram-meters squared per second squared). float32 GetKineticEnergy() const; // Transform a vector to the local space of this body. @@ -242,18 +233,25 @@ private: e_fixedRotationY = 0x0008, e_fixedRotationZ = 0x0010, }; - + + // Destroy all shapes associated with the body. + void DestroyShapes(); + + // Destroy all contacts associated with the body. + void DestroyContacts(); + + // Destroy all joints connected to the body. + void DestroyJoints(); + // Recalculate the mass of the body based on the shapes associated // with it. void ResetMass(); - // Synchronize this body b3Transform with its world + // Synchronize this body transform with its world // center of mass and orientation. void SynchronizeTransform(); - // Compute the body world inertial tensor. - // Compute the shapes world AABBs. - // Usually this is called after the body b3Transform is synchronized. + // Synchronize this body shape AABBs with the synchronized transform. void SynchronizeShapes(); // Check if this body should collide with another. @@ -267,7 +265,7 @@ private: // The shapes attached to this body. b3List1 m_shapeList; - // Bidirectional joint edges for this body + // Joint edges for this body joint graph. b3List2 m_jointEdges; // User associated data (usually an entity). @@ -275,13 +273,16 @@ private: // Body mass. float32 m_mass; + // Inverse body mass. float32 m_invMass; // Inertia about the body local center of mass. b3Mat33 m_I; + // Inverse inertia about the body local center of mass. b3Mat33 m_invI; + // Inverse inertia about the body world center of mass. b3Mat33 m_worldInvI; diff --git a/include/bounce/dynamics/contact_manager.h b/include/bounce/dynamics/contact_manager.h index 6154ccc..a32ffc9 100644 --- a/include/bounce/dynamics/contact_manager.h +++ b/include/bounce/dynamics/contact_manager.h @@ -19,9 +19,9 @@ #ifndef B3_CONTACT_MANAGER_H #define B3_CONTACT_MANAGER_H -#include -#include -#include +#include +#include +#include class b3Shape; class b3Contact; @@ -29,7 +29,7 @@ class b3ContactFilter; class b3ContactListener; struct b3MeshContactLink; -// This is used to avoid b3World pollution. +// Contact delegator for b3World. class b3ContactManager { public: @@ -38,6 +38,8 @@ public: // The broad-phase callback. void AddPair(void* proxyDataA, void* proxyDataB); + // Reference AABBs in mesh contacts need to be synchronized with the + // synchronized body transforms. void SynchronizeShapes(); void FindNewContacts(); @@ -45,7 +47,6 @@ public: void UpdateContacts(); b3Contact* Create(b3Shape* shapeA, b3Shape* shapeB); - void Destroy(b3Contact* c); b3BlockPool m_convexBlocks; diff --git a/include/bounce/dynamics/contacts/collide/clip.h b/include/bounce/dynamics/contacts/collide/clip.h index 27d9c81..ad3f7b2 100644 --- a/include/bounce/dynamics/contacts/collide/clip.h +++ b/include/bounce/dynamics/contacts/collide/clip.h @@ -19,8 +19,8 @@ #ifndef B3_CLIP_H #define B3_CLIP_H -#include -#include +#include +#include #define B3_NULL_EDGE (0xFF) diff --git a/include/bounce/dynamics/contacts/collide/collide.h b/include/bounce/dynamics/contacts/collide/collide.h index c83ec6a..062d7ac 100644 --- a/include/bounce/dynamics/contacts/collide/collide.h +++ b/include/bounce/dynamics/contacts/collide/collide.h @@ -19,11 +19,11 @@ #ifndef B3_COLLIDE_H #define B3_COLLIDE_H -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include class b3Shape; class b3SphereShape; diff --git a/include/bounce/dynamics/contacts/contact.h b/include/bounce/dynamics/contacts/contact.h index bc53509..a08ed85 100644 --- a/include/bounce/dynamics/contacts/contact.h +++ b/include/bounce/dynamics/contacts/contact.h @@ -19,9 +19,9 @@ #ifndef B3_CONTACT_H #define B3_CONTACT_H -#include -#include -#include +#include +#include +#include struct b3Manifold; struct b3WorldManifold; @@ -58,7 +58,7 @@ struct b3OverlappingPair // todo struct b3TOIEvent { - //float32 t; + float32 t; }; enum b3ContactType diff --git a/include/bounce/dynamics/contacts/contact_cluster.h b/include/bounce/dynamics/contacts/contact_cluster.h index c5cc7aa..6cb09c2 100644 --- a/include/bounce/dynamics/contacts/contact_cluster.h +++ b/include/bounce/dynamics/contacts/contact_cluster.h @@ -19,9 +19,9 @@ #ifndef B3_CONTACT_CLUSTER_H #define B3_CONTACT_CLUSTER_H -#include -#include -#include +#include +#include +#include #define B3_NULL_CLUSTER (-1) @@ -40,7 +40,7 @@ struct b3Observation { u32 manifold; u32 manifoldPoint; - b3Vec3 point; + b3Vec3 point; // normal i32 cluster; // normal }; diff --git a/include/bounce/dynamics/contacts/contact_solver.h b/include/bounce/dynamics/contacts/contact_solver.h index 5db172e..d35b501 100644 --- a/include/bounce/dynamics/contacts/contact_solver.h +++ b/include/bounce/dynamics/contacts/contact_solver.h @@ -19,10 +19,10 @@ #ifndef B3_CONTACT_SOLVER_H #define B3_CONTACT_SOLVER_H -#include -#include -#include -#include +#include +#include +#include +#include class b3StackAllocator; class b3Contact; diff --git a/include/bounce/dynamics/contacts/convex_contact.h b/include/bounce/dynamics/contacts/convex_contact.h index 62ba0ce..22eb9df 100644 --- a/include/bounce/dynamics/contacts/convex_contact.h +++ b/include/bounce/dynamics/contacts/convex_contact.h @@ -19,9 +19,9 @@ #ifndef B3_CONVEX_CONTACT_H #define B3_CONVEX_CONTACT_H -#include -#include -#include +#include +#include +#include class b3ConvexContact : public b3Contact { @@ -36,8 +36,6 @@ private: void Collide(); - void SynchronizeShapes(); - b3Manifold m_stackManifold; b3ConvexCache m_cache; }; diff --git a/include/bounce/dynamics/contacts/manifold.h b/include/bounce/dynamics/contacts/manifold.h index 5742092..00ac7cc 100644 --- a/include/bounce/dynamics/contacts/manifold.h +++ b/include/bounce/dynamics/contacts/manifold.h @@ -19,8 +19,8 @@ #ifndef B3_MANIFOLD_H #define B3_MANIFOLD_H -#include -#include +#include +#include #define B3_NULL_TRIANGLE (0xFFFFFFFF) diff --git a/include/bounce/dynamics/contacts/mesh_contact.h b/include/bounce/dynamics/contacts/mesh_contact.h index d8456a1..8587840 100644 --- a/include/bounce/dynamics/contacts/mesh_contact.h +++ b/include/bounce/dynamics/contacts/mesh_contact.h @@ -19,19 +19,23 @@ #ifndef B3_MESH_CONTACT_H #define B3_MESH_CONTACT_H -#include -#include -#include -#include +#include +#include +#include +#include +// This structure helps replicate the convex contact per convex-triangle pair scenario, +// but efficiently. There is no need to store a manifold here since they're reduced +// by the cluster algorithm. struct b3TriangleCache { - u32 index; + u32 index; // triangle index b3ConvexCache cache; }; class b3MeshContact; +// Links for the world mesh contact link list. struct b3MeshContactLink { b3MeshContact* m_c; @@ -60,16 +64,16 @@ private: void FindNewPairs(); + // Static tree callback. There is no midphase. bool Report(u32 proxyId); // Did the AABB move significantly? bool m_aabbMoved; - // The first shape AABB in the frame of the other shape. + // The AABB A relative to shape B's origin. b3AABB3 m_aabbA; - // Child shapes potentially overlapping with - // the first shape. + // Triangles potentially overlapping with the first shape. u32 m_triangleCapacity; b3TriangleCache* m_triangles; u32 m_triangleCount; @@ -77,8 +81,8 @@ private: // Contact manifolds. b3Manifold m_stackManifolds[B3_MAX_MANIFOLDS]; - // Links to the world mesh contact list. + // Link to the world mesh contact list. b3MeshContactLink m_link; }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/island.h b/include/bounce/dynamics/island.h index 9b1c504..1364fb3 100644 --- a/include/bounce/dynamics/island.h +++ b/include/bounce/dynamics/island.h @@ -19,7 +19,7 @@ #ifndef B3_ISLAND_H #define B3_ISLAND_H -#include +#include class b3StackAllocator; class b3Contact; @@ -90,4 +90,4 @@ private : b3Velocity* m_velocities; }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joint_manager.h b/include/bounce/dynamics/joint_manager.h index bef6662..af66e73 100644 --- a/include/bounce/dynamics/joint_manager.h +++ b/include/bounce/dynamics/joint_manager.h @@ -16,15 +16,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef B3_JOINT_MAN_H -#define B3_JOINT_MAN_H +#ifndef B3_JOINT_MANAGER_H +#define B3_JOINT_MANAGER_H -#include +#include struct b3JointDef; class b3Joint; -// This is used to avoid b3World pollution. +// Joint delegator for b3World. class b3JointManager { public: @@ -36,4 +36,4 @@ public: b3List2 m_jointList; }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joints/cone_joint.h b/include/bounce/dynamics/joints/cone_joint.h index 4719a1a..d51b20d 100644 --- a/include/bounce/dynamics/joints/cone_joint.h +++ b/include/bounce/dynamics/joints/cone_joint.h @@ -19,7 +19,7 @@ #ifndef B3_CONE_JOINT_H #define B3_CONE_JOINT_H -#include +#include struct b3ConeJointDef : public b3JointDef { @@ -32,36 +32,41 @@ struct b3ConeJointDef : public b3JointDef coneAngle = 0.0f; } - // Initialize this definition given an axis, anchor point, and cone angle limit in radians. + // Initialize this definition from bodies, cone axis, anchor point, and full cone angle in radians. void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& axis, const b3Vec3& anchor, float32 angle); - // The joint frame in the frame of body A. + // The joint frame relative to body A's frame. b3Transform localFrameA; - // The joint frame in the frame of body B. + // The joint frame relative to body B's frame. b3Transform localFrameB; - // Enable the joint limit. + // Enable cone angle limit. bool enableLimit; - // The cone angle limit in radians. + // The full cone angle in radians. float32 coneAngle; }; +// This joint constrains the bodies to share a common point (cone tip). +// The relative rotation about the shared axis is the joint angle. +// If the joint angle exceeds the half-cone angle then the axis is shared. +// You can limit the relative rotation with a lower angle limit. +// This joint can be used to create structures such as ragdolls. class b3ConeJoint : public b3Joint { public: - // Get the joint frame in the frame of body A. - const b3Transform& GetFrameA() const; + // Get the joint frame on body A in world coordinates. + b3Transform GetFrameA() const; - // Set the joint frame in the frame of body A. - void SetFrameA(const b3Transform& xf); + // Get the joint frame on body B in world coordinates. + b3Transform GetFrameB() const; - // Get the joint frame in the frame of body B. - const b3Transform& GetFrameB() const; - - // Set the joint frame in the frame of body B. - void SetFrameB(const b3Transform& xf); + // Get the joint frame relative to body A's frame. + const b3Transform& GetLocalFrameA() const; + + // Get the joint frame relative to body B's frame. + const b3Transform& GetLocalFrameB() const; // Is the joint limit enabled? bool IsLimitEnabled() const; @@ -69,14 +74,14 @@ public: // Set the joint limit enabled. void SetEnableLimit(bool bit); - // Get the lower cone angle limit. - float32 GetLowerLimit() const; + // Get the cone angle in radians. + float32 GetConeAngle() const; - // Set the lower cone angle limit. - void SetLimit(float32 lowerAngle); + // Set the cone angle in radians. + void SetConeAngle(float32 angle); // Draw this joint. - void Draw(b3Draw* b3Draw) const; + void Draw(b3Draw* draw) const; private: friend class b3Joint; friend class b3Body; @@ -95,10 +100,9 @@ private: // Solver shared b3Transform m_localFrameA; b3Transform m_localFrameB; - - bool m_enableLimit; float32 m_coneAngle; - + bool m_enableLimit; + // Solver temp u32 m_indexA; u32 m_indexB; @@ -122,4 +126,4 @@ private: b3LimitState m_limitState; }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joints/joint.h b/include/bounce/dynamics/joints/joint.h index 7f2dd22..f0df156 100644 --- a/include/bounce/dynamics/joints/joint.h +++ b/include/bounce/dynamics/joints/joint.h @@ -19,9 +19,9 @@ #ifndef B3_JOINT_H #define B3_JOINT_H -#include -#include -#include +#include +#include +#include class b3Draw; class b3Body; @@ -44,9 +44,9 @@ struct b3JointDef b3JointDef() { type = e_unknownJoint; - bodyA = nullptr; - bodyB = nullptr; - userData = nullptr; + bodyA = NULL; + bodyB = NULL; + userData = NULL; collideLinked = false; } @@ -57,6 +57,7 @@ struct b3JointDef bool collideLinked; }; +// A joint edge to a joint graph, where a body is a vertex and a joint an edge. struct b3JointEdge { b3Body* other; @@ -66,8 +67,7 @@ struct b3JointEdge b3JointEdge* m_next; }; -// This goes inside a joint. -// It holds two bodies that are linked. +// This is stored in a joint. It stores two bodies that are linked by the joint. struct b3LinkedPair { // To the body A joint edge list @@ -79,66 +79,54 @@ struct b3LinkedPair b3JointEdge edgeB; }; -// @note All the data members of the joint structure they will be initialized -// by the world. +// Base joint class. For simplicity, a joint is unique per body pair. +// There are many joint types, some of them provide motors and limits. class b3Joint { -public : - // Get the joint type. +public: + // Get this joint type. b3JointType GetType() const; - // Get the first body connected to the joint. + // Get the body A connected to this joint. const b3Body* GetBodyA() const; b3Body* GetBodyA(); - // Set the body to be connected to the joint as the first body. - virtual void SetBodyA(b3Body* bodyA); - - // Get the second body connected to the joint. + // Get the body B connected to this joint. const b3Body* GetBodyB() const; b3Body* GetBodyB(); - // Set the body to be connected to the joint as the second body. - virtual void SetBodyB(b3Body* bodyB); - - // Get the user specific data associated with the joint. + // Get the user data associated with this joint. void* GetUserData(); const void* GetUserData() const; // Set the user data to be associated with the joint. void SetUserData(void* data); - // Tell the world if the bodies linked by this joint - // should collide with each other. - void SetCollideLinked(bool flag); - - // Check if the bodies linked by this joint - // should collide with each other. + // Should the bodies linked by this joint collide with each other? bool CollideLinked() const; - + + // Set if the bodies linked by this joint should collide with each other. + void SetCollideLinked(bool bit); + // Dump this joint to the log file. virtual void Dump() const { - b3Log("Dump not implemented for this joint type.\n"); + b3Log("Dump feature not implemented for this joint type.\n"); } // Get the next joint in the world joint list. - b3Joint* GetNext(); const b3Joint* GetNext() const; - - // Create joint. - static b3Joint* Create(const b3JointDef* def); - - // Destroy joint. - static void Destroy(b3Joint* j); -protected : + b3Joint* GetNext(); +protected: friend class b3Body; friend class b3World; friend class b3Island; friend class b3JointManager; friend class b3JointSolver; - friend class b3List2; + + static b3Joint* Create(const b3JointDef* def); + static void Destroy(b3Joint* j); b3Joint() { } virtual ~b3Joint() { } @@ -181,9 +169,9 @@ inline b3Body* b3Joint::GetBodyA() return m_pair.bodyA; } -inline void b3Joint::SetBodyA(b3Body* bodyA) +inline const b3Body* b3Joint::GetBodyB() const { - m_pair.bodyA = bodyA; + return m_pair.bodyB; } inline b3Body* b3Joint::GetBodyB() @@ -191,21 +179,6 @@ inline b3Body* b3Joint::GetBodyB() return m_pair.bodyB; } -inline const b3Body* b3Joint::GetBodyB() const -{ - return m_pair.bodyB; -} - -inline void b3Joint::SetBodyB(b3Body* bodyB) -{ - m_pair.bodyB = bodyB; -} - -inline void b3Joint::SetUserData(void* data) -{ - m_userData = data; -} - inline void* b3Joint::GetUserData() { return m_userData; @@ -216,6 +189,11 @@ inline const void* b3Joint::GetUserData() const return m_userData; } +inline void b3Joint::SetUserData(void* data) +{ + m_userData = data; +} + inline void b3Joint::SetCollideLinked(bool bit) { m_collideLinked = bit; diff --git a/include/bounce/dynamics/joints/joint_solver.h b/include/bounce/dynamics/joints/joint_solver.h index e2c1a07..cdbd05b 100644 --- a/include/bounce/dynamics/joints/joint_solver.h +++ b/include/bounce/dynamics/joints/joint_solver.h @@ -19,7 +19,7 @@ #ifndef B3_JOINT_SOLVER_H #define B3_JOINT_SOLVER_H -#include +#include class b3Joint; @@ -32,18 +32,6 @@ struct b3Jacobian b3Vec3 angularB; }; -// 1x3 times 3x3. -inline b3Vec3 b3Mul(const b3Vec3& v, const b3Mat33& A) -{ - return b3Transpose(A) * v; -} - -// 1x3 times 3x1. -inline float32 b3Mul(const b3Vec3& v, const b3Vec3& w) -{ - return b3Dot(v, w); -} - struct b3JointSolverDef { float32 dt; diff --git a/include/bounce/dynamics/joints/mouse_joint.h b/include/bounce/dynamics/joints/mouse_joint.h index e47ff6d..14613e2 100644 --- a/include/bounce/dynamics/joints/mouse_joint.h +++ b/include/bounce/dynamics/joints/mouse_joint.h @@ -19,43 +19,46 @@ #ifndef B3_MOUSE_JOINT_H #define B3_MOUSE_JOINT_H -#include +#include +// Mouse joint definition defines a world target +// point and tunable parameters. struct b3MouseJointDef : public b3JointDef { b3MouseJointDef() { type = e_mouseJoint; - worldAnchorA.SetZero(); - localAnchorB.SetZero(); + target.SetZero(); maxForce = 0.0f; } - b3Vec3 worldAnchorA; - b3Vec3 localAnchorB; + // The initial world target point. Initially is assumed + // to be coincident to the body anchor (satisfied constraint). + b3Vec3 target; + + // Maximum joint reaction force in newtons. float32 maxForce; }; +// A mouse joint is used to make a local point on a body +// follow a defined world point. class b3MouseJoint : public b3Joint { -public : - // Get the world space anchor point on the first body (usually the mouse world space position). - b3Vec3 GetWorldAnchorA() const; +public: + // Get the world anchor point on body A. + b3Vec3 GetAnchorA() const; - // Set the world space anchor position on the first body. - void SetWorldAnchorA(const b3Vec3& v); + // Get the world target point on body B. + b3Vec3 GetAnchorB() const; - // Get the world space anchor point on the first body (usually the mouse world space position). - b3Vec3 GetWorldAnchorB() const; + // Get the world target point. + const b3Vec3& GetTarget() const; + + // Set the world target point. + void SetTarget(const b3Vec3& target); - // Get the local space anchor point on the second body (usually the ray cast intersection). - const b3Vec3& GetLocalAnchorB() const; - - // Set the mouse position on the space of the second body (usually the ray cast intersection). - void SetLocalAnchorB(const b3Vec3& v); - - // Implement b3Joint. - void Draw(b3Draw* b3Draw) const; + // Draw this joint. + void Draw(b3Draw* draw) const; private: friend class b3Joint; friend class b3JointManager; @@ -68,14 +71,12 @@ private: virtual void SolveVelocityConstraints(const b3SolverData* data); virtual bool SolvePositionConstraints(const b3SolverData* data); - // The two anchor points on each body. - // The first body has infinite mass. Therefore, - // we store the world space anchor point. - b3Vec3 m_worldAnchorA; + // Solver shared + b3Vec3 m_worldTargetA; b3Vec3 m_localAnchorB; - float32 m_maxForce; // maximum reaction force in Newtons + float32 m_maxForce; - // Constraint data for the solver. + // Solver temp u32 m_indexB; float32 m_mB; b3Mat33 m_iB; @@ -85,24 +86,4 @@ private: b3Vec3 m_C; }; -inline b3Vec3 b3MouseJoint::GetWorldAnchorA() const -{ - return m_worldAnchorA; -} - -inline void b3MouseJoint::SetWorldAnchorA(const b3Vec3& v) -{ - m_worldAnchorA = v; -} - -inline const b3Vec3& b3MouseJoint::GetLocalAnchorB() const -{ - return m_localAnchorB; -} - -inline void b3MouseJoint::SetLocalAnchorB(const b3Vec3& v) -{ - m_localAnchorB = v; -} - -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joints/revolute_joint.h b/include/bounce/dynamics/joints/revolute_joint.h index f5de3f5..14e4f8b 100644 --- a/include/bounce/dynamics/joints/revolute_joint.h +++ b/include/bounce/dynamics/joints/revolute_joint.h @@ -19,8 +19,8 @@ #ifndef B3_REVOLUTE_JOINT_H #define B3_REVOLUTE_JOINT_H -#include -#include +#include +#include struct b3RevoluteJointDef : public b3JointDef { @@ -37,13 +37,13 @@ struct b3RevoluteJointDef : public b3JointDef maxMotorTorque = 0.0f; } - // Initialize this definition given an axis, anchor point, and the lower and upper angle limits in radians. + // Initialize this definition from hinge axis, anchor point, and the lower and upper angle limits in radians. void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& axis, const b3Vec3& anchor, float32 lowerAngle, float32 upperAngle); - // The joint frame relative to the frame of body A. + // The joint frame relative body A's frame. b3Transform localFrameA; - // The joint frame relative to the frame of body B. + // The joint frame relative body B's frame. b3Transform localFrameB; // Enable the joint limit. @@ -65,27 +65,27 @@ struct b3RevoluteJointDef : public b3JointDef float32 maxMotorTorque; }; -// A revolute joint constrains two bodies to share a common point while they -// are free to rotate about the point and a given axis. -// The relative rotation about the shared axis -// is the joint angle. You can limit the relative rotation with -// a lower and upper angle limit. Also, you can use a motor -// to drive the relative rotation about the shared axis. +// A revolute joint constrains two bodies to share a point and an axis while +// they are free to rotate about the point and the axis. +// The relative rotation about the shared axis is the joint angle. +// You can limit the relative rotation with a lower and upper angle limit. +// You can use a motor to drive the relative rotation about the shared axis. // A maximum motor torque is provided so that infinite forces are not generated. +// This joint can be used to create structures such as doors. class b3RevoluteJoint : public b3Joint { public: - // Get the joint frame relative to the frame of body A. - const b3Transform& GetFrameA() const; + // Get the joint frame on body A in world coordinates. + b3Transform GetFrameA() const; - // Set the joint frame relative to the frame of body A. - void SetFrameA(const b3Transform& xf); + // Get the joint frame on body B in world coordinates. + b3Transform GetFrameB() const; - // Get the joint frame relative to the frame of body B. - const b3Transform& GetFrameB() const; - - // Set the joint frame relative to the frame of body B. - void SetFrameB(const b3Transform& xf); + // Get the joint frame relative body A's frame. + const b3Transform& GetLocalFrameA() const; + + // Get the joint frame relative body B's frame. + const b3Transform& GetLocalFrameB() const; // Is the joint limit enabled? bool IsLimitEnabled() const; @@ -96,7 +96,7 @@ public: // Get the lower angle limit. float32 GetLowerLimit() const; - // Get the upper limit. + // Get the upper angle limit. float32 GetUpperLimit() const; // Set the angle limits. @@ -108,20 +108,20 @@ public: // Set the joint motor enabled. void SetEnableMotor(bool bit); - // Get the desired motor speed (radians per second). + // Get the desired motor speed in radians per second. float32 GetMotorSpeed() const; - // Set the desired motor speed (radians per second). + // Set the desired motor speed in radians per second. void SetMotorSpeed(float32 speed); - // Get the maximum motor torque (Newton per meter). + // Get the maximum motor torque in Newton per meter. float32 GetMaxMotorTorque() const; - // Set the maximum motor torque (Newton per meter). + // Set the maximum motor torque in Newton per meter. void SetMaxMotorTorque(float32 torque); // Draw this joint. - void Draw(b3Draw* b3Draw) const; + void Draw(b3Draw* draw) const; private: friend class b3Joint; friend class b3JointManager; @@ -171,8 +171,8 @@ private: b3Vec3 m_rB; b3Vec3 m_nA; b3Vec3 m_nB; - b3Mat<5, 5> m_mass; - b3Vec<5> m_impulse; + b3Mat<5, 5> m_mass; // block solver + b3Vec<5> m_impulse; // block solver }; -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joints/sphere_joint.h b/include/bounce/dynamics/joints/sphere_joint.h index 5bbfde0..aa9fac7 100644 --- a/include/bounce/dynamics/joints/sphere_joint.h +++ b/include/bounce/dynamics/joints/sphere_joint.h @@ -19,7 +19,7 @@ #ifndef B3_SPHERE_JOINT_H #define B3_SPHERE_JOINT_H -#include +#include struct b3SphereJointDef : public b3JointDef { @@ -30,31 +30,29 @@ struct b3SphereJointDef : public b3JointDef localAnchorB.SetZero(); } - // Initialize this definition. + // Initialize this definition from bodies and world anchor point. void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& anchor); + // The anchor point relative to body A's origin b3Vec3 localAnchorA; + + // The anchor point relative to body B's origin b3Vec3 localAnchorB; }; -// A ball-in-socket joint. +// A sphere joint constrains the bodies to rotate relative to each +// other about a specified anchor point. class b3SphereJoint : public b3Joint { public: - // Get the local anchor point on body A. - const b3Vec3& GetLocalAnchorA() const; + // Get the anchor point on body A in world coordinates. + b3Vec3 GetAnchorA() const; - // Set the local anchor point on body A. - void SetLocalAnchorA(const b3Vec3& point); - - // Get the local anchor point on body B. - const b3Vec3& GetLocalAnchorB() const; + // Get the anchor point on body B in world coordinates. + b3Vec3 GetAnchorB() const; - // Set the local anchor point on body B. - void SetLocalAnchorB(const b3Vec3& point); - - // Implement b3Joint - void Draw(b3Draw* b3Draw) const; + // Draw this joint. + void Draw(b3Draw* draw) const; private: friend class b3Joint; friend class b3JointManager; @@ -67,12 +65,11 @@ private: virtual void SolveVelocityConstraints(const b3SolverData* data); virtual bool SolvePositionConstraints(const b3SolverData* data); - // The local joint frames on each body. + // Solver shared b3Vec3 m_localAnchorA; b3Vec3 m_localAnchorB; - // Temporary data copied from the joint solver - // to reduce cache misses. + // Solver temp u32 m_indexA; u32 m_indexB; float32 m_mA; @@ -80,7 +77,6 @@ private: b3Mat33 m_iA; b3Mat33 m_iB; - // Constraint data. b3Vec3 m_localCenterA; b3Vec3 m_localCenterB; b3Vec3 m_rA; @@ -89,24 +85,4 @@ private: b3Vec3 m_impulse; }; -inline const b3Vec3& b3SphereJoint::GetLocalAnchorA() const -{ - return m_localAnchorA; -} - -inline void b3SphereJoint::SetLocalAnchorA(const b3Vec3& point) -{ - m_localAnchorA = point; -} - -inline const b3Vec3& b3SphereJoint::GetLocalAnchorB() const -{ - return m_localAnchorB; -} - -inline void b3SphereJoint::SetLocalAnchorB(const b3Vec3& point) -{ - m_localAnchorB = point; -} - -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/joints/spring_joint.h b/include/bounce/dynamics/joints/spring_joint.h index e98ee72..f051610 100644 --- a/include/bounce/dynamics/joints/spring_joint.h +++ b/include/bounce/dynamics/joints/spring_joint.h @@ -19,7 +19,7 @@ #ifndef B3_SPRING_JOINT_H #define B3_SPRING_JOINT_H -#include +#include struct b3SpringJointDef : public b3JointDef { @@ -36,35 +36,65 @@ struct b3SpringJointDef : public b3JointDef // Initialize this definition from bodies and world anchors. void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& anchorA, const b3Vec3& anchorB); - // The joint anchor point relative to the frame of body A + // The anchor point relative to body A's origin b3Vec3 localAnchorA; - // The joint anchor point relative to the frame of body B + // The anchor point relative to body B's origin b3Vec3 localAnchorB; - // The spring rest length + // The spring rest length. float32 length; - // The mass-spring-damper frequency in units of hertz - // 0 = disable spring softness + // The mass-spring-damper frequency in Hz + // 0 = disable softness float32 frequencyHz; - // The damping ration in the interval [0, 1]. + // The damping ration in the interval [0, 1] // 0 = undamped spring // 1 = critical damping float32 dampingRatio; }; +// A spring joint constrains the bodies to rotate relative to each +// other about a specified spring position. +// The tunable soft parameters control how much/fast the bodies should translate +// relative to each other about the spring position. +// This joint can be used to create behaviours such as a car suspension. class b3SpringJoint : public b3Joint { -public : - // Get the local anchor point in the local space of the first body. +public: + // Get the anchor point on body A in world coordinates. + b3Vec3 GetAnchorA() const; + + // Get the anchor point on body B in world coordinates. + b3Vec3 GetAnchorB() const; + + // Get the anchor point relative to body A's origin. const b3Vec3& GetLocalAnchorA() const; - // Get the local anchor point in the local space of the second body. + // Get the anchor point relative to body B's origin. const b3Vec3& GetLocalAnchorB() const; - void Draw(b3Draw* b3Draw) const; + // Get the natural spring length. + float32 GetLength() const; + + // Set the natural spring length. + void SetLength(float32 length); + + // Get the damper frequency in Hz. + float32 GetFrequency() const; + + // Set the damper frequency in Hz. + void SetFrequency(float32 frequency); + + // Get the damping ratio. + float32 GetDampingRatio() const; + + // Set the damping ratio. + void SetDampingRatio(float32 ratio); + + // Draw this joint. + void Draw(b3Draw* draw) const; private: friend class b3Joint; friend class b3JointManager; @@ -103,14 +133,4 @@ private: float32 m_impulse; }; -inline const b3Vec3& b3SpringJoint::GetLocalAnchorA() const -{ - return m_localAnchorA; -} - -inline const b3Vec3& b3SpringJoint::GetLocalAnchorB() const -{ - return m_localAnchorB; -} - -#endif +#endif \ No newline at end of file diff --git a/include/bounce/dynamics/shapes/capsule_shape.h b/include/bounce/dynamics/shapes/capsule_shape.h index 026d0ef..398b679 100644 --- a/include/bounce/dynamics/shapes/capsule_shape.h +++ b/include/bounce/dynamics/shapes/capsule_shape.h @@ -19,7 +19,7 @@ #ifndef B3_CAPSULE_SHAPE_H #define B3_CAPSULE_SHAPE_H -#include +#include // A capsule defined along the up-axis. class b3CapsuleShape : public b3Shape diff --git a/include/bounce/dynamics/shapes/hull_shape.h b/include/bounce/dynamics/shapes/hull_shape.h index d2e1eb6..4324cd0 100644 --- a/include/bounce/dynamics/shapes/hull_shape.h +++ b/include/bounce/dynamics/shapes/hull_shape.h @@ -19,7 +19,7 @@ #ifndef B3_HULL_SHAPE_H #define B3_HULL_SHAPE_H -#include +#include struct b3Hull; diff --git a/include/bounce/dynamics/shapes/mesh_shape.h b/include/bounce/dynamics/shapes/mesh_shape.h index 9629e02..16b0a3a 100644 --- a/include/bounce/dynamics/shapes/mesh_shape.h +++ b/include/bounce/dynamics/shapes/mesh_shape.h @@ -19,7 +19,7 @@ #ifndef B3_MESH_SHAPE_H #define B3_MESH_SHAPE_H -#include +#include struct b3Mesh; diff --git a/include/bounce/dynamics/shapes/shape.h b/include/bounce/dynamics/shapes/shape.h index 2f72758..6569040 100644 --- a/include/bounce/dynamics/shapes/shape.h +++ b/include/bounce/dynamics/shapes/shape.h @@ -19,9 +19,9 @@ #ifndef B3_SHAPE_H #define B3_SHAPE_H -#include -#include -#include +#include +#include +#include struct b3ContactEdge; @@ -41,8 +41,8 @@ struct b3ShapeDef { b3ShapeDef() { - shape = nullptr; - userData = nullptr; + shape = NULL; + userData = NULL; isSensor = false; density = 0.0f; friction = 0.3f; @@ -59,15 +59,19 @@ struct b3ShapeDef struct b3MassData { + // The mass of the shape in kilograms. float32 mass; + + // The shape center of mass relative to the shape's origin. b3Vec3 center; + + // The rotational inertia of the shape about the shape's center of mass. b3Mat33 I; }; class b3Shape { public: - // A shape is created and initialized by an user and a body. b3Shape() { } virtual ~b3Shape() { } @@ -78,11 +82,7 @@ public: const b3Body* GetBody() const; b3Body* GetBody(); - // Get the frame of the shape relative to the world. - b3Transform GetTransform() const; - - // Calculate the mass data for this shape given the shape density, that is, - // the mass per unit volume. + // Calculate the mass data for this shape given the shape density. virtual void ComputeMass(b3MassData* data, float32 density) const = 0; // Compute the shape world AABB. @@ -91,26 +91,40 @@ public: // Test if a point is contained inside this shape. virtual bool TestPoint(const b3Vec3& point, const b3Transform& xf) const = 0; - // Compute the ray intersection point, normal, and fraction. + // Compute the ray intersection point, normal of surface, and fraction. virtual bool RayCast(b3RayCastOutput* output, const b3RayCastInput& input, const b3Transform& xf) const = 0; - bool IsSensor() const; - void SetSensor(bool flag); + // Set if this shape is a sensor. + void SetSensor(bool bit); + // Is this shape a sensor? + bool IsSensor() const; + + // Get the shape density. float32 GetDensity() const; + + // Set the shape density. void SetDensity(float32 density); + // Get the shape coefficient of restitution. float32 GetRestitution() const; + + // Set the shape coefficient of restitution. + // This is a value in the range [0, 1]. void SetRestitution(float32 restitution); + // Get the shape coefficient of friction. float32 GetFriction() const; + + // Set the shape coefficient of friction. + // This is a value in the range [0, 1]. void SetFriction(float32 friction); + // Get the user data associated with this shape. void* GetUserData() const; - void SetUserData(void* data); - // Destroy the contacts associated with this shape. - void DestroyContacts(); + // Set the user data associated with this shape. + void SetUserData(void* data); // Dump this shape to the log file. void Dump(i32 bodyIndex) const; @@ -119,23 +133,31 @@ public: const b3Shape* GetNext() const; b3Shape* GetNext(); - // Create a shape. + float32 m_radius; +protected: + friend class b3World; + friend class b3Body; + friend class b3Contact; + friend class b3ContactManager; + friend class b3ContactSolver; + friend class b3List1; + static b3Shape* Create(const b3ShapeDef& def); - - // Destroy a shape. static void Destroy(b3Shape* shape); + // Convenience function. + // Destroy the contacts associated with this shape. + void DestroyContacts(); + b3ShapeType m_type; bool m_isSensor; void* m_userData; - i32 m_broadPhaseID; - - float32 m_radius; float32 m_density; float32 m_restitution; float32 m_friction; - - // Contact edges for this shape. + i32 m_broadPhaseID; + + // Contact edges for this shape contact graph. b3List2 m_contactEdges; // The parent body of this shape. diff --git a/include/bounce/dynamics/shapes/sphere_shape.h b/include/bounce/dynamics/shapes/sphere_shape.h index 63bd03f..6960601 100644 --- a/include/bounce/dynamics/shapes/sphere_shape.h +++ b/include/bounce/dynamics/shapes/sphere_shape.h @@ -19,7 +19,7 @@ #ifndef B3_SPHERE_SHAPE_H #define B3_SPHERE_SHAPE_H -#include +#include class b3SphereShape : public b3Shape { diff --git a/include/bounce/dynamics/time_step.h b/include/bounce/dynamics/time_step.h index 6f6c63e..937544f 100644 --- a/include/bounce/dynamics/time_step.h +++ b/include/bounce/dynamics/time_step.h @@ -19,9 +19,9 @@ #ifndef B3_TIME_STEP_H #define B3_TIME_STEP_H -#include -#include -#include +#include +#include +#include struct b3Position { diff --git a/include/bounce/dynamics/world.h b/include/bounce/dynamics/world.h index a06a01e..85569cb 100644 --- a/include/bounce/dynamics/world.h +++ b/include/bounce/dynamics/world.h @@ -19,12 +19,12 @@ #ifndef B3_WORLD_H #define B3_WORLD_H -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include struct b3BodyDef; class b3Body; @@ -34,18 +34,19 @@ class b3ContactListener; class b3ContactFilter; class b3Draw; -// Use a physics world to create/destroy rigid bodies, execute ray cast and AABB queries. +// Use a physics world to create/destroy rigid bodies, execute ray cast and volume queries. class b3World { public: b3World(); ~b3World(); - // Set the debug b3Draw interface. + // Set the debug draw interface. // The user must implement this interface to tell the world to - // b3Draw the physics entities. - void SetDebugDraw(b3Draw* b3Draw); + // draw the physics entities. + void SetDebugDraw(b3Draw* draw); + // Get the debug draw interface. b3Draw* GetDebugDraw(); // The filter passed can tell the world to disallow the contact creation between @@ -77,9 +78,9 @@ public: // Remove a joint from the world and deallocate it from the memory. void DestroyJoint(b3Joint* joint); - // Call the function below to simulate a physics step. + // Simulate a physics step. // The function parameters are the ammount of time to simulate, - // and the number of contact solver iterations. + // and the number of constraint solver iterations. void Step(float32 dt, u32 velocityIterations, u32 positionIterations); // Perform a ray cast with the world. @@ -87,13 +88,13 @@ public: // in the world. The ray cast output is the intercepted shape, the intersection // point in world space, the face normal on the shape associated with the point, // and the intersection fraction. - void CastRay(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const; + void RayCast(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const; // Perform a AABB cast with the world. // The query listener will be notified when two shape AABBs are overlapping. // If the listener returns false then the query is stopped immediately. // Otherwise, it continues searching for new overlapping shape AABBs. - void CastAABB(b3QueryListener* listener, const b3AABB3& aabb) const; + void QueryAABB(b3QueryListener* listener, const b3AABB3& aabb) const; // Get the list of bodies in this world. const b3List2& GetBodyList() const; @@ -110,7 +111,7 @@ public: // Get the time spent to finish executing each simulation module of the last physics step. const b3Profile& GetProfile() const; - // Tell the world to b3Draw the entities that belong to this world. + // Tell the world to draw the entities that belong to this world. void DebugDraw() const; void DrawShape(const b3Transform& xf, const b3Shape* shape) const; void DrawJoint(const b3Joint* joint) const; diff --git a/include/bounce/dynamics/world_listeners.h b/include/bounce/dynamics/world_listeners.h index c572fac..4b87efa 100644 --- a/include/bounce/dynamics/world_listeners.h +++ b/include/bounce/dynamics/world_listeners.h @@ -19,7 +19,7 @@ #ifndef B3_WORLD_LISTENERS_H #define B3_WORLD_LISTENERS_H -#include +#include class b3Shape; class b3Contact; diff --git a/include/bounce/quickhull/qh_hull.h b/include/bounce/quickhull/qh_hull.h index ed6403b..c72ab7b 100644 --- a/include/bounce/quickhull/qh_hull.h +++ b/include/bounce/quickhull/qh_hull.h @@ -19,8 +19,8 @@ #ifndef QH_HULL_H #define QH_HULL_H -#include -#include +#include +#include template struct qhList diff --git a/include/bounce/quickhull/qh_hull.inl b/include/bounce/quickhull/qh_hull.inl index fe6cb5c..a06b581 100644 --- a/include/bounce/quickhull/qh_hull.inl +++ b/include/bounce/quickhull/qh_hull.inl @@ -3,7 +3,7 @@ template inline void qhList::PushFront(T* link) { - link->prev = nullptr; + link->prev = NULL; link->next = head; if (head) { @@ -31,8 +31,8 @@ inline T* qhList::Remove(T* link) head = link->next; } - link->prev = nullptr; - link->next = nullptr; + link->prev = NULL; + link->next = NULL; --count; return next; @@ -78,7 +78,7 @@ inline qhHalfEdge* qhFace::FindTwin(const qhVertex* tail, const qhVertex* head) e = e->next; } while (e != edge); - return nullptr; + return NULL; } inline b3Vec3 b3Newell(const b3Vec3& a, const b3Vec3& b) @@ -128,7 +128,7 @@ inline qhHalfEdge* qhHull::FindTwin(const qhVertex* tail, const qhVertex* head) } face = face->next; } - return nullptr; + return NULL; } inline u32 qhGetMemorySize(u32 V) diff --git a/include/testbed/framework/debug_draw.h b/include/testbed/framework/debug_draw.h index e2f1cc3..bf579b2 100644 --- a/include/testbed/framework/debug_draw.h +++ b/include/testbed/framework/debug_draw.h @@ -19,7 +19,7 @@ #ifndef DEBUG_DRAW_H #define DEBUG_DRAW_H -#include +#include #include "mat44.h" struct DrawPoints; diff --git a/include/testbed/framework/mat44.h b/include/testbed/framework/mat44.h index 1ea3198..01977e2 100644 --- a/include/testbed/framework/mat44.h +++ b/include/testbed/framework/mat44.h @@ -19,7 +19,7 @@ #ifndef MAT44_H #define MAT44_H -#include +#include struct Vec4 { diff --git a/include/testbed/tests/box_stack.h b/include/testbed/tests/box_stack.h index 07ddbcb..3d04383 100644 --- a/include/testbed/tests/box_stack.h +++ b/include/testbed/tests/box_stack.h @@ -45,7 +45,7 @@ public: b3ShapeDef sdef; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; sdef.friction = 1.0f; b3Shape* shape = body->CreateShape(sdef); @@ -80,7 +80,7 @@ public: sdef.density = 0.5f; sdef.friction = 0.3f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } diff --git a/include/testbed/tests/cluster_test.h b/include/testbed/tests/cluster_test.h index bb594e1..8020eb1 100644 --- a/include/testbed/tests/cluster_test.h +++ b/include/testbed/tests/cluster_test.h @@ -19,7 +19,7 @@ #ifndef CLUSTER_H #define CLUSTER_H -#include +#include extern DebugDraw* g_debugDraw; extern Camera g_camera; diff --git a/include/testbed/tests/quadrics.h b/include/testbed/tests/quadrics.h index 36664f9..1f98d0d 100644 --- a/include/testbed/tests/quadrics.h +++ b/include/testbed/tests/quadrics.h @@ -19,7 +19,7 @@ #ifndef QUADRIC_H #define QUADRIC_H -#include +#include extern DebugDraw* g_debugDraw; extern Camera g_camera; @@ -113,6 +113,19 @@ public: ~Quadric() { + { + b3Free(m_coneHull.vertices); + b3Free(m_coneHull.edges); + b3Free(m_coneHull.faces); + b3Free(m_coneHull.planes); + } + + { + b3Free(m_cylinderHull.vertices); + b3Free(m_cylinderHull.edges); + b3Free(m_cylinderHull.faces); + b3Free(m_cylinderHull.planes); + } } static Test* Create() diff --git a/include/testbed/tests/quickhull_test.h b/include/testbed/tests/quickhull_test.h index 1a2e761..8c94e2b 100644 --- a/include/testbed/tests/quickhull_test.h +++ b/include/testbed/tests/quickhull_test.h @@ -19,7 +19,7 @@ #ifndef QHULL_H #define QHULL_H -#include +#include extern DebugDraw* g_debugDraw; extern Camera g_camera; @@ -48,7 +48,7 @@ struct Map return pair; } } - return nullptr; + return NULL; } b3StackArray m_pairs; diff --git a/include/testbed/tests/ray_cast.h b/include/testbed/tests/ray_cast.h index e0bf874..14271ab 100644 --- a/include/testbed/tests/ray_cast.h +++ b/include/testbed/tests/ray_cast.h @@ -89,7 +89,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -109,7 +109,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -129,7 +129,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -149,7 +149,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -169,7 +169,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -190,7 +190,7 @@ public: sdef.density = 0.0f; sdef.friction = 0.0f; sdef.shape = &hs; - sdef.userData = nullptr; + sdef.userData = NULL; b3Shape* shape = body->CreateShape(sdef); } @@ -206,35 +206,16 @@ public: { // Perform the ray cast RayCastListener listener; - m_world.CastRay(&listener, p1, p2); - - int hitId = listener.FindClosestHit(); + m_world.RayCast(&listener, p1, p2); + i32 hitId = listener.FindClosestHit(); if (hitId >= 0) { - // Hit // Replace current hit - RayCastHit rayHit = listener.m_hits[hitId]; - - b3Shape* shape = rayHit.m_shape; - - b3Body* bodyA = m_groundBody; - b3Body* bodyB = shape->GetBody(); - - // Ray hit point in world space - b3Vec3 worldPointA = rayHit.m_point; - - // xf from world space to the local space of the shape - b3Transform xf = shape->GetTransform(); - - // lp = xf^-1 * wp - b3Vec3 localPointA = b3MulT(xf, worldPointA); - - extern DebugDraw* g_debugDraw; - - g_debugDraw->DrawSegment(p1, worldPointA, b3Color(0.0f, 1.0f, 0.0f)); - g_debugDraw->DrawPoint(worldPointA, b3Color(1.0f, 0.0f, 0.0f)); - g_debugDraw->DrawSegment(worldPointA, worldPointA + rayHit.m_normal, b3Color(1.0f, 1.0f, 1.0f)); + RayCastHit hit = listener.m_hits[hitId]; + g_debugDraw->DrawSegment(p1, hit.m_point, b3Color(0.0f, 1.0f, 0.0f)); + g_debugDraw->DrawPoint(hit.m_point, b3Color(1.0f, 0.0f, 0.0f)); + g_debugDraw->DrawSegment(hit.m_point, hit.m_point + hit.m_normal, b3Color(1.0f, 1.0f, 1.0f)); } else { diff --git a/include/testbed/tests/test.h b/include/testbed/tests/test.h index ca15ee4..5d287ac 100644 --- a/include/testbed/tests/test.h +++ b/include/testbed/tests/test.h @@ -19,10 +19,10 @@ #ifndef TEST_H #define TEST_H -#include -#include -#include "..\framework\debug_draw.h" -#include +#include +#include +#include "../framework/debug_draw.h" +#include struct Settings { @@ -199,7 +199,6 @@ public: b3Profile m_maxProfile; RayCastHit m_rayHit; - b3Body* m_groundBody; b3BoxHull m_groundHull; b3BoxHull m_boxHull; b3BoxHull m_tallHull; diff --git a/premake5 b/premake5 new file mode 100644 index 0000000000000000000000000000000000000000..d57048a63438aa4fa60fa46d76b8336a9856c135 GIT binary patch literal 1639384 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 bX+Q%w~&Yz-IvBSV^y*N(Z!3!>w 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 z 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 tXMNz;I2;5u9@(h8I^b;}^FA{NFjC58w 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�R6_uJrA|nVwc_r_dy#Y4AjlsF!R^PR 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
afxfA3_&b*Vn+-#6K^-^<@O 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
{@(%uL(j*9}tTwrY$%Q3pmFn!8h#QvSBYb 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�ugX1VNFuX`80mZFVywlR4u6V#;1qZq%9ufs_0L)hvya{luy5JoLhc762ExV8db_r7jZw$=dzu+AP zhyShM)qene)WZ*EA7AitU>=+STQ5ZZ2hr0L3SJL5+z3B71?Iu*6ARvHFbCG(0Uc}s zYoA1U!Y7j-Y;8gwIMY(_GP{xUoPyU5c0HGLFb^IE`<_?us_&$oE0F_cHWs|?U|%Qo z0`uUM(l07_OJEMH{t)d4)8NF#@PQRwvZxGCZ6Z-x#>JO%0UhpbDLVLk9*ax^VK58MfH|=K6O;#bfn9H+onRi^3#NzZH*oAN)ORoWz%Fp=cJv4Ky^D5(!|%pE z?uP!Jf|mue?=5(fVD0e)JD^eF1%c8hKzNI0d$Y=`R+%KClZM23x;GyTLwi2ArCtzMnz< zm&p(IfdgRfE93{$2WU4q{B`t`qkJ#}_I(4nU^ZXyc7d61QZLaDk?*s7|2F*s=I^C` zVEQ}g2h4)CpQE1NBOR{_C|;MlT7F9+t&Tl8kY-1&=M?Ie857rj9+_kcxj5}bJ;^e>bDL5p4^*jKmcwSrR* zUi5~++(Q?=JeYpiqPGN&fz@9jedVIp17@C&JTMRDz_AxDdKF*gJ6I1^tU(^w3ig1t z>lVFT`VQv63Ggu3cgdocIe@;dKpr^J3mwegNd3M>JqD;B*!MEzflFWy*tL1l%YvEL zk{_G`XTTZoG`IxTew}h}g&$0VtzZW10rR&ldQ-xoMen%q4b=Y|l=t>UuM6yY2lBz} zI~Tn%Fc0Ry)=~Jt8E^^gyB)cC${8a+*a~h3E8dO%!2Elt7nmKVo!_J$??u00?famE zOJK#fC~r4%z%1AUj)7S)4~~JgcP@H+!B#L2_JPx24qO5=AELbn(cg#R7fz5LtoSJU z0LMN?`G=76@kMU{%z(q-1egbB?xuggO+7w|zQ8H49UR+7zX|uFCom6I+)MdiKpvO{ z+x7ixJ52z%DQg_JP}#{%7;ebCiHZ~67?=n5f>U4~OeaowjYlZweA2-zxEHLr-wAI9%%@Ix znfoYb`3Y|ToC0@&*$15PCc&=S6JGrfDF1;cykW5QLD0c5a0bkQr@<+(_J`;VYy@lT zPI#?g8tefxU>2MKC&0dk!Y}%hDSryN|Bifc?CB@GDR2s`{tx6l136$Hm<1=mz2Fph z7@PrTL~lOfrGG^JXP)r-z+rG0Og{^GVD{N3yp|u+?v@kYb}$D{gEQa~So<8xJ4$=O zG&lyffD>RBm;(nye;)M*XTV7?`+Vy66Y_z5U=ADv^WYd*@dD}#wt{(ZsU1E2lyWxE zZZN&^gx3z%ZlZl)#bw9`r@E03W-mv-U~3O@e}=xUf`6KFz;>{&mv(|PFGe5WR3H8I zbMjwHy}{b+PIx(R3atGF^}n8Sz^)r}8Y-_H9NV$0!GE1T(Kf z9$1^DU0@%$SLtA0^jD)ta2QPgC*|LaKEPpcJ2(MOfMc(rKlFXe3GcYR--7&Kk?*y% z56s?5`QR8h1?Irx;1pQ#YxoAyH<$-|z$GvXW?n}*U@JHQ_T5H(!0Zt9nSmc{1^aeV zUod?;?FT2oC4GMv`F?{Oumx=0g*(iWlzss-AE#et`3|;&t$P_~V8y3M7v4iVm7YT%zo&oxM*YBvzr*(j_|L!x z4ub<=_8-&>O#c%-i4GnIC%}sTqTXOVSm9A$Fax%OOJG*tD^7Z2V6O6{HwCsXJL$C? z2hTg{4S*BRKIu(@*_M;uX>bY5%u%oBp7i>_;pd(7_JT9uVQ^~YNw0RE?_eWX@%)os zE0_U$zzJ|z-(P@SF#p1nUiAX2eyM* zun!yt2f-O|FSrEe!HTsfy=kx(Tmr|y^dfTBQ6I2%J^8^*JM#4%tUW>gPUL}Ua16|V zd%;#P4|ajmU>~>yX2I%{$OqHl1lR)Rz%DQk4uDhOFgOG50++xXSbGur1JmFPm;q0N ztzhjE<$xJ*2J8Y`yH0u&;P9oC4~~J=f23S64d%cWa0%=IYcD(LWx))%UFqPY=r1DQ zpQsm@1-q`GKHwNQ1?IrxV7}+1SO4G8ucRJe?#1W_%v?i$a0xsP_PvDiPa)^!$OH46 z(HEF`vN&**6j^#_M<_-TVbPuSZ|t%p1`QSoK|f8qz+GV1`=}o{0oMKx^#xnN?E7g4I0fdw^as%6-zaZ4 zdIQsUQoiuR=mT7ufbZ|%N6;f!`%&r*=D~_H(7}4J>to0TGoPSe^&LE}?{~xh59;wr z>;cSwfqoEv5x#%Yo=Nlz_JQsCevtZuQ{RCf%-#pThh6`G`hjV15bOhYfx|zf9u<`p zV^hcnbKo#I1?~d-eu5k@dki@oI2!vE{9x|a=oid`r@{1Z&|iZ5;4qj2_kwva4^I3R zIp7Rfovf^={T<^M>;t>NiCOFu%>AD9s!Hx}QeQ9+?$!7IqMyMDuznf!IZl1S95@Wl zfV;qoIr;@01`mVzdHU}>(!oZsbpg3x7nlY6!0liboB)TxNiYXagL!ZXoB?akr~Cr- z1;>kYFfoH&p$|Wzuxt58jQJ( z1X%GI@`F=3>RXR~z%*F1#;1XE-F!cO+_`p`M2kZi~ zU>4jCPJt8P3^)l^>|gSxz&`Lem<1~yPJ6+6a0bkP=`T=kaOz9w5A6F2?E}ZYN_`(e z`Ctz?@ip`SroXY|od&1C%nIn=M89CgLG%mee~A1?l5YyT0VlvLSo?GI0k-}UeLRZ# zfN5~*81)A${*(HHnO{?1aOStv_tCWTcgO+zz&=o)I`bc|_4-RIDhF#TAF=%W>aoi6 zYeiqdU&~|XyeGLlg82Lu6%C{*em`Q@gIFzT*L@TdRjFUik3mJ?R+@kA-UT zw1LyeeYOazYHCLkx71YYnolQx{rsIK{Z}HauBp8}vA(8$XL5B-dPmjjn#R#(t7c zJW7blYpbbVXXUAlxXy~{hB@zXT-*9z8`NKVXdwMK>2D3vUw457T+RQrR!l_`X`STj zdib@qy$7B$=lw?@_X>KpJ#{Ppo!OcGZ6aU#-{(BJ5S70zadA!kNK&E`g$s<>RW;RZ zMlY&QFZpYqI_EJpnf@J3tO@L4eN86us%UN6ts#kT9KPf5H3odt+1XLQEyw69anh7Y z|J!$A9f5BqGv{@qhlo9O%bwPU_B0b1&jvHHR;y(7=AKI*ql z2usj!5|#11Bf)4K)%f35)mGCuvP_-6$&5-mlnk_UC0Vz^*VsDey&;CL-RE0ndkqa* zMmzkBo)5u40RMVbh}7Fv?#|>|`Pa4buWj$QiuI`E%8gkLiEtW6+;20)FKc)LQha z^D8PQp{GUfuBqJ!UH!5GdLH`wo&D~Re=hFNd^&j>>Qp^~E;WjhJ@mq#-ZbZJkzAt( zGmecOdV_J?k$N@PRA-&6t%0oL@D0E>B0i&k+FY5yDb?a%tfP?K9w6To`7Tra$hR$l z{E=iw%~B%ySZbxA2`nq4F^-L~=X%zTV5SD?Wgqgo zF5`?X*S5W#*8ipxSJc$6F^!cUJ4(J?gljjKG) z%s*3tOnJ;3ro4-b%Uc(gr*+!l0dF`pIN+@<-*Ld2Dyb0uez{wkxy>3f7JIc`O(moBw2-;GK&5^H0 zpZnmic+s4?selk(}c|DxAL)WLS44NSRJ@B{i%*5x!PyI&| z9nxF7#$UHBkN9p)DuD*2J^}(iEUoB;WfuNP_@CzN(9I9 zJ?CkuFL}2!WQx`=Mt}bNn)pN9?5cWgMow)nXTe>3cDv@2vUQM=(@`_AD)|p7syt9O z^NZ?rK=Q7c^R%S4^}@eK<%Rv)#=7dyal)Elt*XI3k<-DowNK&)<8NMK4T?#`Os*uW z9nIvge#xBoO zp)Wx{Dv}wuw9n1IzW+(QrlcHKQTfqh@Q?M)d9QH%MeDIv+cdhlGj)mYb!>mvJ)olE zFnnHd99Chw+;O5+eS0oGAwFLH*jck30ja}_3~d29>x?a=-8@;0r9rSHrQ z!MI;RzTM=TAm0;If5!Dl;s$G!d{sXjAU#L=?}L6Qi%(h;`%3hKng0_~bf%NaRNv*b z`1>1J-*Bz?=n_hk9vh(dK)*?J~=KWywUMs?UlCVt+TydD{L_eY%`IG(+DD{ha~d zB}9*`W);G2NL^_!Rxx3SpiH*^Hp5rJvwK}4n0AQo)}Xvm(ley1O%)1AH`i3lKkb3u z1N~;v1HPBpV%DXuj}&9{eU$ur$-mC!-==*4W3RUc<7+c%XUL~#3a@i|bNer5oSS)q zO%LMJ1DHoJQ82f*r&dKNW-n=Tlw$JSP|T$9x)}#I#WRZBGI0L7WF9f|q?w1cJRZmU zmv6hcnO*&N0C~fk=e*}|ZS``iuWn;E$4H+b{qaHi^+CFHe1`NK>HA#zHqDbpPYDH7 zb~Lx82#wq|OAqliV;qgInDgEd@G;It{oo8cRV@7vC=M(6bn zHV#{QL}J3KGMG55y{g=O@YiPlZ+=MS&cfFY-`b#`nct%E0Q2O?dCA8pqOcvk*2JJ1 zm@2n{0nqd6Iqy|mN5(zvWna&QjAbZO4jl z9KQOS|8MQ=h3^P_UGTLAejxNu_<_m_syL+|zLs0&Jnf@Of6;Mf_N6vR{~K!Z>BQ0U>D1~) z?c0Z(^lRt5KXGm66BBo!PZxKrXVkofPK-M9RVhO9B1(Je;$nitN$<;Xym{oG2=s?t zyZyt?n%r=uneM{|`u5QV-{9b!w=&?v5Zt_g-tqMBj_SoMtmO}e;2VA&^GOg7QeJ%g zhI)rt)U)exmVi)pegt__x6OHvb@eFQufWa|Uqc)8STMZI>|_1&@_O1oH0M1LSrx|5 z-Wd1`)whZCDbha`)Hg1EHU6u!W(jpYD!#rN(Wd>#%e-mM`+Fd-r2U~kTwgPTyr;#> zlZB}Njv#O5&2!${Reuw2FwUcKsiwD*slAS@RRlaOZ*luS;^iZKu7KVO{XAE{s6I{n z(ovJAa}Qa!QLItbrx*U(t;G9*-G}!BEbA|#cCnsj7{5IZU*lVOHd}nAACm88WSK=> z6Qup5Pi~v@Zgc6|v`;pY+*FfG`%AzeV(%vZEcvUqv%l%;5#1MOf>DSV8g+Y$g;Dr* zW2$(Y+D$*^p3cgL(|>Pge}H{w={vff>CnC-!Xx{RUsdmwPiXC_#CvO6)|M?ek;zAT z+(S77qfvio=5x(A%*6FL>kXQfA=;_O=Q{?Uo{hgt1QV}q490VU&3!pS7JePhZ{xyk zd3BFKzvpp3!|}O!it?PFVH~}wID|Iq>`wS*D9>Ma?nqExalD&Jv|%mL;Co%Fh{EL2 zks65jCo`Kc_NdD~)DHKNy`O?U4gIM; z5fpv-3gT<%+9vcr^4|^6k3)Z^v!7@`m)yT&5{>UjL{x0%-^@-|A7j_dINZDHK=Dc+ z)xX>4yypSd?z!7hz0stb_LH6_{c@$7{$zYR|E$mjk#5y)G@#%m~rgpy@^Efqeb(c@u=eKg|GG9bKWf~ z$kewZm>1kW5xu)1wb@kNn4j^B_5>DKp%$AwrB7W{V4Q7 z=!CbyN2XP9`BfKdUpEKyoA{Pe2w zyNc;5e>3!o56*dCP=5A`M-quOSfbhZ72hc76L+{cmGAn9z6bjB?m4euDE6P|2cYNf zobzZ_@Dcqe^hxNCi`2`sANtgX+&Gr^Tutc_f3ZAG|9rT-oCfHJC+0kkAO#=KSntbdEy&|-uDR?M^V2w`pO|q>HA0@ z-aF^%K0E8tw9#I~?v9Y2yL-;NFe0~^th3M$f0F%QH;=pdk0^1ZYS0=meq%$56{UPg zr>^C1Ry>CJ?H=r2@|araFLsTXhI{zWv~`F1k~LqXk52NBeHy!qlrMTe^j)7R?hnz2 zpyzVs`NyG8es<2g#vcUaRsMa@^{x?J`yX8&f?f^%!9Ecb{TTFG=uCsbNBa?{pw~mc zL{u}LiCxV8lWrVBU^sV@wBoV&Px9?lKKxfS{_*!=6YEN%pSIMEG248m|289U40+F$ zJc=1%-z$BST`;L$qon6Z|4NX~t*pw#J>gvr>yP%6ul);i-XY~PeieV@?jt1LA9Sb* zRiuYm@*gLER1cz`fv$J9=-U72y6$n@--T}0%`QRoCg`1xHi`|`;mu0_ z`q|riU9`PswPX8jGkoc9@D3TtHF^rqLnIhRPD3UR*7(~^{^9(;mY=K@NBB3xJ9O>~ z>Mf~^SGK17`Kg(Fr^vVc;GFkM<@4=Orx9fMoURFOw6gOdk{q=7nlOmWx1-~RX-oH8 z)7(sSRv8~pbsBm|Lr`!Fdohk=V`f; zDY+xJDwS*`@GK?U0Vn@`4Ea+(n)AM=a*cf4d-T3s@%^FC5k*2NDaB~pwy%ke_pYPN zuZZ(MYF``l0q9YC61^9CUkrT<^d9I{z7SCPN1c2VAG$R8fj!VC$v-Pv=wGo*_TR3x z=7nc94odltl7H|gbKYNz^BaGx`$e)0@|zWa^i;)$NBd8?zpn;_dSV~gou4uL5W)Gi z`{KiG>mSvQZsfK6lKW#S-+e^i4803F+gQOz_1y}+2l^eNQa5*wgUK<$zH&XMv~WT$ z&QbpT1>K0vxz_eSfV(OJ&Gaa`?RN{s3?1m6;Tc@e^X z)dGO?D6P6x6V_x^>gvch!+!w&?62K<0#mNPE{QHnULI6o4fl0iZA`n)z&{25pvvcn zO(KyE;#Add1s#}~ne%?3bn55!0XV-Bo~KCMQxgBUeiDB#{8R9odDQU7+@H&p@Vj_i z{JY`L@y;`I-=l;-xc|AKgx{K>Y2PvUm*795`WyYYc_(eh+Zoa)eoOt7?mjBF4kOzO zeYx`+(YVj;d$F1PrILc}g1QaBu>BUsYKaFk0#_iSfV|qpIq%(EOCKW%&RkSqp5hpa ziFcPjh545BJO9P{#kpHE&+mr6 z^)GYY8du+Ne#-{ycIoL5`3A^$XW-}0x-UzN@TOQd@3uqC{zKir<1hXioi~g;bDpqd zzo$(H(}s~)eqh^5lpgw#*TTEd5=e6T=~Agca1l;;|@V_&50=1>#kzO z!D@wU@r(-Q-HD@aygNUIofnv7QHX920*kl1MsD9q|)TAxaOwn!H8O#ml7?0y>l`+|Az-DPX|G=Z}rQFn&6?ug#1VQy=Gm2T@!!A4PcwAoE%6fqf%p4D`}{qN-;6Gjz6zgOBpB zfZhuIy(n`YKb73sCk+&1RJbVT5nf93b1je88 z#E^5R+)-mh>I>t4mG%-{!bK_A`uQ72&Oqb5cV+STKFfL}G0k`?zpX}8u_2DGy7AFC zIYT*pPn`Fz5yAL#b3ciBPVtC6%)CjJ;v>B^J&XB={Gr}B2w82Cjl53M^Q2!cQjxrF zUU6?hT4^Wqw8#1!DhG*m7;M*I=r>5D=>r&xa z5EsQ;|Jo1#Vfeos$A4|Wzu|2Bd*E+x;vJQ7{BC(eW!I-}31pc)LS42-@Dv;q-=gN z{@tB_?n`iYur!?IE-~YYrnQtWFG!e)9f2n9l>YmlgFoRN!vD%RQ~q)C50L*~8Ar;0 zi2S?A@B53Q{@oMwhp~xH@}DCAVcuo@KU`}Z#Ev^`sc61m6+iA&e%o`g2i}4Fuh^IJ zZz2EoXU=~!+V9`}&HzGXi49GlV)k=}TY^jXqdNM{?w+4GIQ+cNU2 z*hpATL7UWdp%r0*qNb3Sz=SUwVy<%nPCz*G8{ejv^(mv8#N$1r9#@=t&^S3*b9l>)fQ9s_5 zxIWfhJHyhrI)l90=g$Y{t+k`6zN>p7{s#JsxVHY0wVyjjX6}1(I+tg^i`=8T&1J@A zH~cN|UlRDY@Em5sZFw-inSfU1Z6*J}3+KJtT>dhDYz}XhZZz74$UYCjzjqbyrdE9! zZQFD%-LAKTjUwrEG`^AeOB;ypcVeL&i~ms z<(0m@NH51o&y)Uou1oY1+$fWrs#Wy&x_P@_Z{*zMi!u8y4Wu`c{!Ym;em3mSY%sm9 zNi2Usv z&?DFWNAzRRv(O*r6G72WK_7%3-47Cd`D*+F^s6KJWj77br=cGe-NXy5PfNywP68DT zh*c>zWy;LP>=$f7-ayB^x2?*`bMcrN$83*9-v`lF!?Dkw#our-6Ri605c2k3Jn!AE z`f*aUGV!*c|72&gq}Okn_slCYO6Ex&;&3w*3$u;E7e9bE{vU^T8vZLK-}Fa^8((ko zJHxcAlYE)3`Exz*!ueCQ51@$ApL>_*-g@=QM&y9}TEP=6gDeS-9ds$Rqe0_o!@ z^u5q!ORDck;$?w8lzxizNz(oG`$(dzCLNhC>)L29>5mWi!{-L1k7m-VFQNZ}blt7N zv1tR)-G68%t(SaR@;x`n7o&If3xoSkxz))RVa;h`2I@$NVmyQFZ5+Nqe*5CRl5gy- z+%F_pcNOVzZM+^;k6Gj$MxNgDVEfOl8~T#V*p~^$6UXD-b$d$sU9lGZ@|zlu z>)7A9dfuKNK@Vm14(H=_Y_xMPGp2fOKA?*#Mv<3!@w}G~>c{?W^gO(g7u4^capI)U zqsXbgX5QQ6`e&z(HASEIKn~A)^tc{E2~-{fT%#xP)n@^PZC#?&B9hyu?4_KQ>xpMx z!v1wo4vgjH+)!H12ICq_%Gq38jQVRg^7Gfudk=p&UyOcDf0=!tlKU_mC$CIyj^AW7 zfr9COAyTyCz<*CLWYsjU(^$+xd-C`l~JM8%HAimj2{1vp@*k|ZZ!tuYpCYxMCz0T?Ya6MTo@Yv(t4{QK4Jxgpmf8+SP z_hAvtd~WPk=PkC^)N?QyyEXoQBlRKQGUan0mDdb?7j*O9Cd2RF2TNX78Qih63@Wdm z{L}B{w_!vw`OSSR;+;46+pH#@9wlEbza`|~Hy_pc{%wlSN2-#`>56)o*@|jUaWYot ztGM<%R`dE1)pwWMuO}<(ryKlXV&wIy|pZZ11^Vf%(jEmxv_Eb+XLCnbFZ!7YSBX6GwroG{P19L0m_Ndw0ddNNx zz}I)@yglbmd~z|JEju_0eE>SQcTIcDKEu^^A3}VmNFOA9xzgQ7dRWfJeir(u`Zu)G zO^geLMoGWF^zNEms}6sJ4N`rUBVdMnetV*RF}&~CDYM9xS17cP zZsZJpWZr8F#)+9hI=0Ne~B^aU8}KW*oaXt4oiE#klQtspLRRIk+UV z&pbpqy9YKM3Af=tuL_i_P7|s0c8v08_-(N8 zTujM4AB`uo=K0^4hKBvx#DXcqZ;MqG_e0pP(fMv_ZL&Fj-D>U&sD4ApTbi8rp6%>p zN1`LxKfxOGUYez<#CJ>lR$Gcaha%UaiBRME2=ZpWTs&W?oLT78(A$dV>5~37=LOa) z?t5}fzhaRlK2bT%mm=@LymtZD{zv6>LZ5>EglfK&*lAh3I<_qFmDnD)0k+2VZsg?- zxqTNquHWvDYvcb&Pk(#f`;K1;Q1*RP^@IL!XW#BT1M^3?&y{>0jVxK8@%%@TURhFc zW4MT9je#;&>hCh*>F>;YzbN)!#1ZcORy@?m`vZPp3kpWISs}|W4Z)xJ?!0$B*AaiK zID~_G_WrBdxrcm%~GR3?7Bv4*dqzEA-xgx{@A1acQA*1= z=F*W$HpCm66r}d;rksi&y8AX<>LWYb54|3`-mhrw%#7>seMV7#n6FH5IzMJy+l8m( zRb5Uz_#^IT2ICNUrTbgu8@}8mZ=|p6a^ClQvfFOt9scpWeP0Szr$-C8JFD#j6W?qh zz5Xb_^{4s|X}(H6pzN=P*)_{{hU4Iul`x|{?ZnI7#MvVQvFH)mKYd! zJN15|vU&8CQ8VP|0Wah!c}IoVrH?u`zV{-}jH|QCOT4p0;Cj7rbYo-+lRW98A9;<_ z^WG;!u;ZA!&S(THklk%1eUkJ$g7iyJ8uNk7#CRPmXCL`8KW9D(@`dMhRqrFDcaeUd z(y8|j>A{^RFy}&aQ;L#HMl@4T=zUyUJy9R0ClkNwq417k?_3yuT1#YE1)nz;kug+91 zGmiV=8-Q=Uq1b;-z!3Ba=wA}a_$enZli<{c^HY)ip?&1f{FdJ$#Xnd(r`~1zEo_k` z7piT1#^4Lwt~Dg-?-X*j^V^zhoPQjlv3=%DpW;Cqcu9XN*znDrU_Rs8|MYUv4E->4 z^PHaH5xH&22)4EcU%ZD6Y|HAzx^cZU^jn7 z&n22T6#uIAe^#NH;>KdDOWuK7EhU@9vg*#?DdboGY2JG=*H-WNFtcyNSypNXDlCV<1iq!C0%n#LM7bH1)0zQgd{>&DUTk@udN_|?o8Cf?k@ zKH;{rxa-8%V-wm_JSE=377L1q2GDkYW}IrwQhxoZdG8O!<(JG?LHQqxEr#d9;uo}= zw3`=OJ`(XbCDpQOG5tKmjh5`6=e@s)X8e^IhhdxoH@oUZQOaubx&S-v*tgVNq!;uQ zl+P{ej9(lgUxs`u zl+S&{GY-84`iDd-u?wteg!iVl>VdGLX{(L*UliTAwE{KXXOXuZdDn?#{H%X&nuu59 z)r|L-_?L!Jby{%^`_J&zIld9@w_C4n=i`+w-PGT-Q*XGlANluQm;M^ZA9=2cGgdD4 zbo=R&F-rd02QNgmr}TZK>o- z<86QbV!uH9X+%YmQ}+_q59DLpz?Bo8b5wdW>D3Qe@Ky!sZwks$dN=7Uq(}G(>Xg~) zZ42oGr2G95J?Ef$j*~t~`m4lX`YV{xhwt@Q|E?r`igfuJ*=ck>&~xE3Eq^MI zU2i6TYyE=v9OsXs@tLt}-Q6lZ-N|h;MXu3Xriz4A{sH7=9>#CSa&7e#^yjsKeYt%i zhspm~5h!OQ5uVF#gH(rMPLuvcrJH^wrt{Cqx)mhR%R2dgDUIv3 zsaN=yVzTSwUgUH=av}2m?2>hrIoEQ?nkSJ1MNv=dN#(b8!=HQ9g7+>7H2U!S_r^d4 z>-E}rrw+~d8b3$jtAF%D~G26?6FYw9!Hp7=oFL+NVd!CU9_$ojdh(lx9Tc}Gb<{`iI9eaF##T=Tv;>leRS;up<}*qs-&Px??t z$!oZQ{=N`9RCySw+kXxB{Y?C7-fzr%cBxBjcwytwm5A7ayvD`_?}uDlztIuwH#k3N zc4~@(I(MR5{QKdbg#T5pKC#d15Jea9+v08f5C8EeE_hoKw*2UQHZ75NL<4yjut*P0 zFU8+BEqFVFa>MntSvM*!`Atc=#LZh{0u#v_LSFVM%#%r5kFq#0)T?gl-gGX#(&ZIL zBrk(qIC*9Jep(vdi+@jd2J*7#LKs@kDE=)1|e$6+so`1%I_gl)e{fB>v z?lW-wG_k3q7_;kZ*TY-juWnu_de4^p$|&>-=!Yct)xmS%+CjRBQFf3(?OwJ`xE;v* zk=RW-c(0u|4#BqzzCGgWDdM~CTzqHXt9|Bz_fhd(Qp9)G@|wunJU~1NUz_;Mcs21P z_0;f&5Q%e@zn}bj$#`ocoVb z*f}yDM)GDQ?^*x<$Wxn}ahTK3Uhsa*wQavyKhrVcKFC`CZ9?dRowhL0b`HJ{)*<9% zTNa9*bJX}Ahdv42#7V}lYc4^|EBL=LrDs|;q);_2wEtxcstX_K`>6Pzv*3Nnjnks% zM76|6CJGOpPpEns{`z?f-UHpZDa!xWAivS4>eo#EmKPAeR`JEe2ejXR51VT#@@e*X z!0gPwVlymT;2&5`e>ncAf5!j0--S>xh$qTGiAJWxsyv!dM5U}XspLuqaRxUOWHwFg zr@UFUZ{32ow%E^<_;0iR$Is|}zb(uVlpEbnV0EZl1~Dmtoprt(|F~hn+YnO@&kaX^ zhee)9Z%aL!IOAt_OJ3(faNarUr~MZ_(n#J!#TI?EQ)#p8{uunV7ZD#jKkxi&*lt?s z-p?ris$WNnsgDhy)$dJoUf-q#@0U(qnSYi4|5J1nn%co>>$6#%f9Znvi)EmhN7?U) zo|6gpfz%H(vDI<&n8x7&m?( zME#AK*CcEY?TStaoEBw?BNEPx#?aJtdUa-aO90A7g~&y-4fiwGq30r+T*4OWF-kp_ zUcBH{Xk2g%WryBd9o?5zJ^rXd57Lr*DfS5E-lt-cDp7=UNmE`WMX&qU%t!gy6 zgMO4Bs(K~+G1o5G_wVpsANBVN=vnCDJQvRQW_{DeJjcqUs4-?VxcDFb^mS2w6aSm_ z(MIiKY>eS|`~9-t-SAJrZ+@^T&R#B-{hIrh9cbp)=du^guLa}{_b&v`wFU8RT6emF z{Rot9V_#TI9NoY|d>THsja?kg_B1X>U!}h`((7+nuNbe&3--C2sc&=+clDnJqz7o0Wm;KNOpl=A`FtcyS{NwI#^6+dT`Git43;fh6 z_y=FQ;7td9p(7ZF#!nf)u-^V&$CQ1)L%Bn=9WA}K@c>fwP0@9fJ3o_-Jb%B|yx_q; zn0JX?M-9Q3h40PCu=A+DzDtB_u9EklZ|M0O#vug#u))SsGu4DKu4D*s-7 zj>0-r+1v7)*`K+2q3FD`^xXix9r~ZSw()K_j$Pc(TR^lS$;7)RFqvun(+_c#Fhom{4QO|_~%E9qR$DavyzY2L6NfFV9Sf>c^FAY)-s!!MptaR$erYK`+63ZpJE;)#$#oAI-|D z3D&L1nS7_)SEikAo;Ug#@+U0v>0|7l{L|#8Innr&EwY#5#(32PG3SQVqi$neo8bNkDK2UGX24mQ(=Et!&N^vZQRN3 zj%yn)QXj`>-x$DDsWd(+XPo@iJKg>_elxOva9hx*jue}sB+@?dt>Etnd|CLy{a=Dn z_LFoNOz8#E$4Gym7>qyG&awT}0n2Z(>CbXBfw6z+lkojf1o~%(p0A3Y55V8HCcaQ& z|JFas?)u>$ynVsGkJZ>QuV+-D$%WZwi>^M5^ zhZD)?$KO9O15NF&dM*BNH~Vy4`ybi&3h0?T7rcWaQt#-w0%PB77L4$_g01@T(NgQS z!`Sp^KXN9Kqvfsi?%w;Wb**+2?LON^y}vu`Pw9O(d`s}{7N04fc`o|pJ` z(#V4)8O6))j=|scp#^(BowQM%%l7v%TdgJe`K8z8x3Zr`{$&ra`@09m-V&VTRJ{Jq!0u$1TgkWg(+l3ETwA-;d(Epa=I*e$ zAF+q@}Eq2K-GzT9ulaqvNU+9!EmU9jgk@m8-!3G3a+z6AZc2)$ovucJ8!7VLYSO})eMT5`Wy#{ZgFD`1^UXdE-&hJIm) za%#V};1w>Q&`>|d-b%{ps9_veoEKY?Sz4R+BQN)z1+O*I9@Bp4)6m})q02tcK<_)e z5d5A}@Hgz8?uw5@YR2B!FvSP zc0B3LF7_jRoO0=pb~J(L%WorIhfml3N7oI|8=;$k-zBJ=l`g-rH#5G&a+*o+b?JWm zAHMHg_X%KN{H{v{O*WEM-Z*?Ml=l!rvHwKh2fY=#+`j)&Jr242PZiPBgXr@*J2i@L zmh^V`9;^X~?}Pqy7Y9V22MX`Q8-K^|HYffk)|_?UxrM-~WV=NEw0DU5et*F` z8LTsi@6Q^aDu9d;2;QC z<|dcgeTwvfA1rvkQF=JOOZ>cx1G^HRj~#WZ;@d6%(ftO>NB%@0-|TakeHSyXjo)+k z3tBlq5Ifs5t;MLr-$zq92Ph}=L-q*+{hD%0+F{mlZ9IRIR{USyQ>*lgoiTpOF2q+- zPQx1+um7=Ne|HmoMfZKodJCZm_9lz=N8J1``|F3l2Y$28l}`9*ejb9Jh0eBz>4#CB z|M%bH{bJLlL0~9*+DHBz`CsVPP4V-yTko)}U<*E0vno#IpF!Tl(S^u!^S(Wqx60a0 z05{(?i|0-J`^iG^`(@$&f#PmEo^eN9hpcU|^ut#VpYe<6uju(C7pBwDjef{(?#NRW zByx!WKBoQ1$s#8mjMuQg&2!V7(Q*5EoqFQshq3Lq4N||HL0;=m7m9vALH%7fjQ@fD zKv#~7cZspw^EBFr;#OqQa?j~WdhLe4{%3A|V&auP24Gu?Wd+fAJO6p@m1~&lv6cJ- zgIh+hEp?-SD;dKi@+8$^X;kww>o3cezAjGS=>_MA`8c~78dOLX^o$t zpZ)tP3>#N>-WXu7aSnEK9^Nhd9f7~L0Kc=7=l61N3lq zDVdP^?NC`VN2_M%DcRK#>XBPwAD`>UcqCp7pZm~j3dD|kMZ;Ld+LRO$wJOst`I!}O zWxer7w|{N?jEj3S37x^Q17%I>+Ta=!?}x7&zUn_Mct5JL^*HBv=}W#>+f3#2@)*t)xC?TCwlRHLW{O}g?_mKacF8@e^7>JHw zDkMz1g8$~#alA^R!=L`ldDeaK<>0$;8I1H^nO;$1@ElxU@-gw-cRbVIgI>$evu@BE z9b@R29n1EZUnr9=mpCjBt!v*I)3#>}&LQJvMY!^Zq5hr3>{K6kfYe21p; zcOxfTT_}nRRG0nG2ch3stRG{)+?R6u!hU?M+jKF*%LURZr|Rv@Z}%${t&h~s70`3g zd$_jxvFES!ReUQ+Un0Fr^>826uN!(}s^GoC)o-WnT>P~S)nAuM)iB*#I zO<08Vxd(ae%M0F>fq#vY$0j64rR6r+n~OR~GxSv70&@Cl3Ptz%nxI#`gYgLcAlJ6P z%>5g!vp*Pgm>a;&WN9YZ7bw!7 z5ztSOO*pJ6_}?DbUEIDa!%J3ygtfQJEQjlIOL*HW9&uA zveQH4Z+vhea^9F+OwYOxDf^ivy@&M2IK4&hQ-t=oUPtX8FZ+QOwI37dbR(x}6#dl~ z?C;o6uc-cv9Q=~q4_+#lvM$ATSm}(uI;DQyirk)u6})SmUZeerT+^?ux)oP6aoYe) z&vRX->J&};R-W`(w*&u$Jo6rku9{uRo(5 z{@p%J+N=1_jFa1~Sc*(b_FF(s>tpbn&JJ$Z^KoZeM`V*NXRX0?-4hqT37OE@!>#d z-+PeP_>6-0jG+I|DesnedDg)+QNL5jtAA#}KHq8PXFp!ky9k0wnVfc?q+yKtp8U6K zd=}+TUPM`r!TMR*aX0zvpIs<>|M+I;8R##NVE2)}wnFcL{xQ)w_Y&`)5`z~U!~@*R zot`61koRHQKTwx*8v5Y9NACN96{zx$s=mm3mL-}0q8FggKwqtPxR30mijDF5=M=oB zKbS9PwHLP!+Lb&IuU}r2m@l_VjL?klc{jD}KNPOD#9ySBZDEvz=A`TP3Isb&6 zN6$Y|&*UQ+tz}DTPTNmdGvG*4xTr>q`h6C;hp#Ny_f7L%AJNZ1@4Kqt-D@cJ-%6#u z2Ya|WjNhX3kvs2@NnVH*6wOC=$430!@VEE6`QzH?{p)0XCH-@dt$7ae63^=(Z{jVg zIsV%G>Z$Bu9RA}kE_g4KJ@lLVYNrpffu^fB`WNfCP+j>uME=H?6zuzQ_^yw})iLP9 z&|mO4z8JeU@k-ph(Wc4&zm}cFeqmq1U(-18_*)A0c>_}$_Y0!zw>6XANqUa-H*;OV z)Z_M*=znv+!!>(-il?#;-pj6=8f?ZteAOcb?~vMCGXBhdc{pF_e%rmVwY2It`Z$Wb z?OO{)`^^oAEfVe0cw4dmP`@@opMieZ`Qcc* zxU1AI?2e!0ZiYYm4&pGb{g3Edp>Kz7))_8A<90XnDd=ClfG3*G|P{zvpP z(1$<8yd%4FAJOaBsIR}LV4ts#(3_x-LBA}LznkXiItWz1{m_p?kH(*(AAvp-L!VXspg&Lo+(-G( zxco9N|08c@{I<23Q|Gk#@2(GRFTUn{1|4v#{g{CdGF1a`wwp?G_4s~I@k zK9ODU%I`INfcWHl1^b*MzmAvSF;_a56zdn;NS`MC;j#;SiuvU_6Ls74ex-lEV4vf{ zpR)_Xxdp>+{OVTHtB(*bi-b!uzqYVC^%6OFmA{Ad0n!2Ye%p8X%Mml~4v}!2^f$%C zhv9in6K{9aOe7UMGn1lmW&&ndESBlrRj7#~>OP45|FB@63kl;3_O258`Fa;%SpBFU z+Q`3){2A4cJH;=jcFkP&LeD|}vh-r)nCBVgbTxa{Glk%Hc|eHM0VHet$h3DHzLx(e zc%O58Jm0mP{N}{1`gcF+(?4?aIkhkI!<&elXl2nhz}i%AF#$n*B(LfY%KLG_`?v^3 z9)8xv9d7;ErStYh)BRe#&%WrfR1*jFBBC34yO8&XbIE&si9GZBR3-A*^DkPW5@O39 z_9MUXXu6?_^T~n*4x0{di^i| zw|xuU)chNsC~o)6+DQ|Rxb;}U^Hh%U^JX8eLw=t3oxA%hIx8hhA=a`Zt1b27h>v%7 zbY*u#$Xi0*HO1pL+~*DFUERNbF1^(Psbt{VbyqX;j%cFzb-~*zc}@>wNxeXZ_Q;6)}oAn3hso9rzzuUtx?1<%9|GN^t3HTn44F9u| zi*D$9p}$f@V}HIpZYw!?okj9Ux6Z)K`{VFW!~Yz`X-3a@shIb?OjRZ3?bK1WU1jXz z7;>g&3*JjrkKUSE?TXn|wY8fwq^Eyh@LsF*&Bf{JpA{d*-bgq8i+Z?ygp&R->%z{O ziA3U8vHfE=nk8>D@|ONk@ctUJFA<*ia(;TIQa72-+TR)v2aq>$qEK{yyb1bI=#$V1 zZ=C+wpEc)XI1lSQt$&V0a;hd6pC=361C-x=O#3I$5A@%kv%YR0C98XLG4qOZEE=bq zk(d8V!Tug8@3yPdonq!m{ob?68znvaSNzCwz8HO%?5{Gcx1Hz8%RO1I(2voNoya8b z81lN3i{5YV@5?KR1I)VD$h)X!?8#?&FR5*S>fiJc`mc7;zJCJVH&J`eGf;aM|B{~h zw?*&iXNx;Z${UWYzb#Mo-;KQVibd}qfxIv-56=xdeM~%Azn2@M54#c2fV=|ork=29 ze{aG3-tD3p5u9FO7Pi0Vt9*5LF@H2J+TXiUIK%RdP0Z^}b2pjhn(?)geAy>1+UHJ9 zf9|%4$dJBzNw0X)qJ58vc`yI_iqeNjA10mcsIvF=%Px15zC?Oj=|l}z!!7!L=%=BV z#?M`7RVQNut+%l=dTEX6S!JZ-PDpJ>e5U(c7R;m*iLf z^+KP5{!Qh_o@3tcm`Q9ei34<8y(kP2GchQC`;gZ~`+h5e@$Z}Tj0zGo(^0ES5fP=+Df4KX|egE9+c$y>RH@tj$-_rFa0 z!u^^cZek%&6gRO|^X6g-lF%W4qmuWuP+rkFjziXUnT;s-xFb_3($)kC+9FfEjw0vq z(-(vLgF87_dkEe3ZP|gzNKWAA{Ic9za9b|c7?RJDnVhX4wX>hV`tWlX zz36(f8Tt_PJoFK#zim37Z{9e$`v+Bpj+AclSaXB|W!l(fg&77k#g^8&4TDQ#72oYs|xlMXQ81 z^U!JZL<>`Z`n#a=S1)=`b$TmXH?jMhcuPqEJm>n`5)!smn#*s7S@(7C#XqlE^ggS0 zps?`Vv!*E5vF3RXcgUP<8c(C}4Yw_N8y%n7pL>;!R5x&*Pv`n%Py5NYmwaX&qP%=W zKLR}$L!X5{8ACqUHPMQ*+Cn0$^W#nhW2CZK$=pE@mnVJ zTuGKK3Eu3z--lLCzWcbsj1L$fZANyON{ z3xp-F>XY=>RrsOec_GdZ@SI%|vyGAG_75bl8+ns2#*bI|^~1-;-)G!VGnLfCo-qQg zNi`#4kK|p8pW@oulYc%zhx_bd&GjknWk$|zitiYFdH9|d@R@Z8kwnPXR>G(Ltos!G z51+9^)1M4{cfNr)_S2iJq9l`#%4sA2@&98v@&`lkEy4E~2}0^f;+jCN>}@yc71tHV zA+n$S&`-m6fNS-C^f__oCvZL`gVyzr_)oz5={;0nrM5TYz*3)5iYf=M|Z#J%L z-pBZZ|2pxTdM9*fOa8Ii^grpRNoRY})sHwnx}QQJ=9EXVkGeW8?vdZxgS__Z7rnK? zd{|;nCa!kpE?V`g+cD;}QHP9THo@(%GI7K5d+?9_i;;8gG4;L?y>jmY1)+Hqq~`#N z+^-sK1k+C@KEnQjbJX@dKT$obO0h^TD#7%e>|r1BrjYkI$#Wmk4?#a3 zLq7(+;)cbt`=Fy$;y?&sHu*p{H+L^tK1_fEll7o6Rx}JM3$NIV)zb*Qdfb zp{?keL!LqYf9cxKZq_YzpFuwZi*{ei*td2x?MM1(CcTAppQaSiJE3P{=>1OKGnCPN zlz#|%7x|-fjh}JogU~;50bj72`11?y`~*+>pXIq{6Y0s%%p!04=0*Gd9n&6mg3u&M zrruRK;;GjxdIzO<_h|rEK%d&O=$+KO0H3>`m;5<5EffXGLpPDsM!sExi{A0#d~!jy z%aWHQ&E!p9wR;QsdxjRh??uX!UmAs8`^H7P&rQ4CxjE+1ZB^zxz5K?_C4S9C9z*aS zfjqKyj2jSpoylc?_9jE+G0-pTvqPL)SnSKlR zFT!}*KS#i$%rV;~oFX8ei>;MjBOa5$5~z)Y^4oi6;onSEW~o>GTNb_7aIJbp{XLu5 z8Ywuk%Tji3GvTe7*H(Ov{aN_-xb{TXV?2=fK%GtqX9|0tvyCFU;hP>=^oC>kmMW7; z6dz@LUG%Fxny+!N8#%RaUG(OI{xp6+T(5@vqdYgAOm0b_hw=?lQ!(kGfV|w>7VYol znsLxklMbG@;2|-)O-i82QiJ^Z^zzs6dHfZ8-xdM=?a+O%==0y$Wj|(#V-KbUZa0)r zHl}VX&LU|>{#NAoY+nq{MY?^0qIn`)V)m=`-ov7mz}nO;5d!aI4CK!ue-im$6UEfu zyf4GZ_s=tw*1ug3OO&)IuKxXqY}=20y?xR9!v7vWvg(m}mv<6&zb!VwtAx$I9()n2lr3ATPILF?gT(h=LOQqJDICGv%%L z0{)Nm>s@&+PDh-(uSukPPZbozZUXaPhIlMWZBM^PL)KZd-nu|<3C+t|CFn6?`L^6zIzA12+bLri*SO&?nz za@zg_GV;p}Ut~PLd(rz(u4O;b_nhcX%f->*%YyWkHEA}Styigor62ym_qckzq9*O% z7aD?|gT6{~p=$?H^T{~$k?)+UEhB9F=_ldhUIT-tUX$ zU~l~HSx?XodSsRT61lOi@pK0MzV|aw>l<^#K5s_D1Of#^)x5bRG-dC z{_S$|I@E8$`+P1^1rE}4oO@zq@ZOE!1ds~1alt73Irtx9NdbKi^hxLsEukNPo-fI- zdK`s*82UGrAN|IkQ%;Q9mIWg=(0ARJv5yZd`oFiH*6*#$j+>zOL4S(mx{v5>&g^IF_E$6qG96{eJXOgqkHPlu2Bnnr zzhnNUaU`$c?-cplcQ1O~Tzl~KU ze;yxin7~@~>P24ei;Ly&x9ajYt?3x&S!B1PM0 zJQJ@SQF-t`Hn0PKpG4=C<;hHWiOc+JiqSk!bpZWME|$K}6My!aU{6JQYa-ti`DC{K zM|x|6ei-^wis%0@PBZhe(_1$ALaD91^TT;*T=n_tqW3u!L_0bE@kw}aG}PY}toj^K zeXc)Vw2oW>{V4QA|8Z;IoG0SFBpn#I;ati8Q>0gaebGxvPxQ0fXAR>aeoeJ1FMJia=jeISrjXKEFiD;TZ`Tp*O7UZ^|ju>vtm@YlUnkxo|1E)@crCQs$1(5k z)BM0K#G>twHRdIV#XB0vQu&*aH*t`CVYSEjDStmM`3(A3(;gjcE1-VdP5#Wi+^blZO9(rwATU?@ISA5=7-s3BXnOL0mY3vMRE|g) zR81e*?Y?i&A9W|r{hacilKyax-}FEH!w){;y+Z#ELxkx5&R< z`5A{Sm6%7^gy*a5V`U!wKjehB$h93u_{->dZ3Tx!^+oXm?+by#SPLQwQ=-Q6DDra1 zW4j{wh`uLJ_doPR(ew9a{6imu{)iyA_3uZa?}Glg5_$o84*G>9^r~;-ze?!xiz}ed zKqpK#`ZB-c!PAzqQg<88=&6l-gY_ruJ{x)+Nrb=8rGD!teHZDktK^HZGyJl94^{H1 z^tUq?{F}Yz;cDMdDnOuH9$}bOO%nDC> z8b#jB#U~=`>=Jw8rrMSgbMhy^X84c5pWSrAyNzpW-^RaSh1XfV(r?_mYV|#XvZ>uw z2Z=A?>rwxhc00Z_D;xCXH*)p9sco!W#f8XE*7!m!9zEly2;XI4pSIUgp-QqgbuiLTgMR$M`1k@X0 zo}t)(qMw1DgRZ*xAJOX$+5C?ek@I?bOI`z)P0**vf0O8@zElB?+5pSGOHcjKO}_fe zPT2R6kuP|^M20;tr_T-@pLE($AIhFa;mg8j?gtxtDv7^L9AW0W4aCLfXDZ95JG)_^ zHXTD=uKR?ylWV8nQ8#^C2tJiPkf%6ECi!tMs6tJG92V0@bsbji6odeZr0B zvi;d;ywjEJjURT_qGW$tk$3t<-g!eH?mY41FK;bO~MM9)hm=-^#TeCyWDsJ-yj9mm#4<`i{R-(5e7@=&}Xn*pct zI}g*I7oV`tmlH4OT%YLu(6>Wh#Jl@YF`K_ zIme*)LDw?Y|A>C-Ecusz*XFPCGlRGGxXLN`c~*I&`ayN z+vP8<&wiJ`w7o~5XOI)kFF!a7y%G8&)h^?=b&}40lwS2co4!RPv)ehT{F|7-91gQL2x^Rg?}#!{%J0h`z~Rx?;bYgv(9jmkJA5g-;BV@K|& zvg6<&fwTrkfC^%bGmOhbcbJET@yd+kX`gHxhmY&BJFs=*COh)uV&# z4RP?U8siPNsb9Zy?swm>eIl9s(SORD+5O%-_nvcqpL_4Q_uU72jii^C(Rfp>8w-aHNbrj+~G;_x@ z2NvRIH~de*|EGib;?4Jv4LsiqcA;sut1gxG<8X$-f{E$NY-zuh>qKhmZASPt$I!p8 zE4up%{Odhp<;F^Cojbx{ycdJ74SaX?7R~w+%t(GaBG(r>@I|4Dw>H75< z{Ivn9zK8gyQLfT(P`{(!Tf-7lT)uhR6f)_Xnkf0V3UZq6D>~anw8jT}Qic*Zr5=+8 zcihuwZ^f7PN4vnc9ekLcYxu!=XsaBpSCQ`$-Wd2|pDQ~3!sn$Qb{j0HvA=Jx#+)5) zw!dEmujjzG2z=iAQQH3W`^h2u#md=JGZTYSZz`LhcI6_k?faOYWH2st$3sYW#rsz5 z7d!Oy9h5S%5j7hjBgfG_Q$I+3+6#H-?=QORF8==)Jf<0Q&gOqWfL*i<|>-E8gR7iY_)R2VhG^gdR}C zi==lB8p!r9VB8!Wk3w%@UEy1%Dx<`(WQVPlQn}Dntv+52{!Z{89V$8x1=|zye|Hte zNxtv9V38u+oZ70@K-h$XeEbV%R5z+G4nh9;zbLxr*5bRA&=^aq#ZEsT;h%u}3YKN`5Pr3PrC?D`26Mk)X(2BBe zwa$K(1rx^QI&Xk0?pMkuV%@2raOpf^2jp~rvFN-n6(dwny>S`WGskD?hTh70ib)AB zsUOE6ul7;YC%6Cb_8)ldn)SXT{tMKC%65okpMXQQ~F29huFlXlq;zNW{D&V#HM96x*gKKdq}-_<7T3jYElUPQxG3&aA*8-u*=uhKrH z=qE&fi!-^1{CEAC@z58eQCFbsl2@jLu>;hL8*UxdGH;t%Cfp?8p5Qso0` zhk8r$Wfl0Rz<;Ok2jU~O3Ihs6NIz%cWs9DBunTX{sM4$uNU9p|q{=-;cdUh`|2P5u!{EPO_<5}co(26l=yx(c{QfGA2V^~y z@77@@AW*+k)i9m~Ec|+sQ(%W8RDLmKhXM^(>N#A_XYe9eQ3Osn})A)GpPV*P( zOD291t*_nu>W93MBSj}$6_DqRJGC9Nf10`?aa7ioEAz{hHwJl=M~lwmVp#Cv7d6g9 z8O9TT87)uqU+P=Uf1*6UUo_`Fp!_jz*l8=AxHrIk1n$@3Uh2nC{2uG9uacg)^ovW-)xP`zWpdQ79WVp6$ulU=*trbXZsH@A9lkD z>0iITY{l3qB9m9h7ce7&x9vsh&Eo%pJ?=Q$rv#2m=$)W11pPxwF@I8@`ay33eRr_@ zz54CN3n%8rpNotD?Oh^o4Dtp}z3J%n(M zBAgn8X)g)?80h1m>pDg#KUDuN57-Z0h|CVW?{im_0%1VX4w_FvO}$ohJ}ESm8EOhT zAhRyG0HjX1pM-mdxNAGPZFbWZvu?IR-s8b!RO-nN_=~+>47~p){Chz^4}J{WM1HM) z{qmM-?2K}k-L$=p!QVmf-$Z|A--kJebUtXO;C>wLAEi4MW8L*j3FiXbC*i(Q+!0Uj zJ*E5Ya83KQ1+PLsP8QwomPeoG2^)K0Sb%L#clb$agVFXm2zloruhwm!st3Gwpzk?r zy%k%=Gm+(l;~g(jP0aWY;f(wU<84VF>VyAW8vV`~$`0chtZxJ&z61s@kHC$j(%u?g zLw-WukSh=Iu6QqB-UV3*9qgOg`{f}UguMa39gtW1CW&V=zB>#4o#2N#RQW5$k=kD~-#ez+kIMB=)qk%; z&QFR?v&iG6`VaJlpliLm)0~?t^nTD=LI0rj3>5k<(Az=Z;iI?Ven033LBEmp#9w}z zUM)Yd%wb=86Eu{6!pwCBk$)O;o<2>xCEAm$)Jgtd5c!~gM#A;-U+4K;sWX)p&LXE_ z672>4#jIj4p|?$Zn=S6Vgzw0t zk#~*IRNs8s7Q617I8FC|rh8V-tJU{R<3nZyjfvT^YVMdsl9$O#VGsne)cXZLLizl( z=$v6W(Ej7i&t#v2v~~Zk7c~DdkdT>}Bq4KA6J?;W81e=o?@XcSyesj6li!|%avho} zlLPiL0cLoY_#6WN(?2V^-+%PK=iv1-uKxIDr2b$>F6CGCW5_#$eI>ZJm(-8>pihE+ zw-5vRk&_VQkG0D*!^x?NdOAVkHwM0);G4^G@!N6Y|K`q-rP{xwq18?%qL%Oj9?*Dr&5McTzF(7Qpu7WZa7!)q6!b1%@{JAcMIUm{eG zFdoydq(_VtvCndMWDV08N`37;jrg4_I^UVD{pi=N)*;&iEogc5XG0W7)cOy3N8d*N zNxHoDqwNv>+R)6EXpfJCc-!@b3ICgW+5$vg)lad0ScbjAm4|-CzmG}eVf8gI=UuA% znEWkXn}XEKPRPrD?2I!)d4ccFeMxItpkLYr|7Q?>CJqLqr=nj%{c`PM1IAubIW00B zQ$IwUfV_F{6y5Ka`R!P+zsh;aduGI+MuL!KJ_UmTMS!wGh8ST=P^D>kv=yNL5#D}L zz#9LkdZhJPOZqa|{acv;o%rv7h`o@vaBj(YN;ZP4ywG}r<_Gl~QgSF#91O`Hs)}?$ z8~?IQ#VaRQw^WNhobxl(*Xv7x^(Ki|1L)nLUpLdnD>QEN#t$p7KjrG^>Hbp0OD4*d z3vn&C!{r6;Jfdsx#=HZ!G!NnS=J4e!4f*n0WI1>1e%&*Tm*u z#GWAIqcO-k`0Z`edM@7R^0sfnu8o1NJVVhV57==@zE=Gl`S*#Evs2{o zl6;*H`cBZVi|Aj(pdeoskoJT8g+SAxO1wJ3xBZhPbDl5C!#|Jo#;G#Jy|r@vgBuGa zKlejUcWcRge|^YXme+B_n8Xk6qY`H=ci6vee=D!Jn~1g9FO;BrW3OSx-xt6iTT*hq zCj8nTA~9yaAKn7udWD&GYIqHAAUyaNGgU=+kAeg55+Ea%+VF5sZZm%D2Y=ntQpG-y zU7*hc{Y{a}YXNXS=u@CC6Pm_P?fbGv#WgsKzC9xR%Sz_`Rxcma&Wg2D$p&nnG8rr7 zeGdNH;eW2k<#<@~y9OOf2j~lh4kp-d+;OC|mj<|Z!~NL=9uSUSPkZ)F)k|{jNMcuX z{Z)ID#Cr$i9Z!|q_s?(|uH--ZDA^l_gZ(hR`cySM;*#(W!2cxtfBrH&X!xG~@%n3y z8zyHYE_M*O}q1iz+&^FC~e+0jV@am z$py!oNdhjqQelc(P?Ut6hYv>NJqW>pdW-I|hf z2lbqP-6JID-by*9T}ghgf}DZwlJm{!#xdGIay@hBELlp6s5nMmGvw`uyyI(2zVCXW z{M`Mo1M+=4PyL$Y=zfY5;5)poMHV)o|iV`D#iiU+}FLg6a|I z!z{i_D)tDx%t?K^tol=Wt0f`nZUf)EUbL5A-;d&yw3&%#qU)LJN|Co0@}BN1Io-II zctrOfw}h%mJ9c&k<{!eX<$D_P4ny8|g%Hvk+OGWL%Z~U{Q6nRXSHl$S7wM9-<)hQc z(ekDKIarn09-U4dFGxGt0eJ&oDH;0-+KFsB6Z&4z_kphVW9nz29{_y>^c!)Hc2y_V z0jVcPKtBq4S?F4B+7DuIJ5+VsYF=zO;cZ@^zjqal$2XR@46-N-=*z9|V2jUsuZ64SF5uVL4CG ze^|~K=mYRSJ0$-E=<7k3vbL9mdzSu}S|U*Lr|KN^4gB9MbT2=(K5w++WpTsREI;@^ z4F5UmdD?Atyd~rA#1IBPUV~G;witZ<;A{FS<|*W>_^v2Un4Xci70iK2r&=k8hWCaP)U#e{1@)U>vmnZg?B| z0(^R2Jox-}H&2f)m+zUc#6E=fX!U1?;H!|H9gsKmx6nUszu}EfLgPuDe=Uj@s56;n z$U6pkb$^fe;oet{+AhST_*WIBg0>5G6-ZL*q9& zeKhe%bpE*G?X!?K@~x6{55)QM$LQ@pvE92kn(^LzEW{s&|NDiY`pcakeNKJTKHLU> z3;z-02GQYKFQDft-k0XM^a zP5qjKsGNeFrhlTImo(t&#qXTR2mS6~d1D^#-=8OE^#%GBJpwvFf$1;2#APRZ68`G* z7%zOM6nGC$(l-eDU7%m*rcdjehVRXf^|kGl&7hx${Hqz}CAgFWmvZ1z4qVEC zOF3{U2QKBnr5w1F1DA5(|3?n&tX`rC?Izk(%hXD)Fpe3rOFtcYPFER%<-0}ZzPJdn z!*8|fv$a8;da_-g?OxmCZ*JFT-3x^~niXSqu5yy@);46_-+tfOER6f&tpYJw;+Cu9 zp;kp}3v0i|JYS*ISnQ8w!i9^=RIz#HF*cWI!JVQ_nfS@nPp+dhcFDX-E?L@=>na1W zsh3;z&eHer*~Yt@{$z1 zXX0}uv7XpMOcA??X<~+$B@PpF#8Kh|F;6TI%f#f{44+s}Y$2wIUBomoL(CF~i8(B3iOF{uKCzzI zLQE06h-qSmm?aJqbHq{N1Tjx65X;2my9}RLPi!Hkh+V`qF+xnJI6tRn#CT56P;xI8s93@T=^TYzNOia#T_{4f*3o%9PBBqHMVwN~e%n?V46U02R zKr9oJafVN2F-7bmrimG1mN-nz z5l4v=#5}P;EEAJe44+s}Y$2wIUBomoL(CF~i8A%NRbf zp4dW65xaScz`KF|K?!mL{s;TE<3EiDxNYw38SIHQ_N`x&-qN$NZ_WB%@Y*NCv8HFsmYxR; zhrPdV9lSw$&&Cbw5cFmU#9yO^VkEBJx;56gZu7>CeVYbtZvFNs^G6h8%+3oJ#ar=& zeJ~`<*C+2!{Q56jhb(_*yj7h$NvP8&?~l`Lm+3-rnR3-dR_ zsf;E_9^OW5bzaU*kN%Wvn!55H)9$yr8jDHtBu_2Bo#*d)+4$%-P?3K&{Za+}{MK$TMSg2%kg&y;V#Bxm z4}vE7YV91>&T{xI5OG~?!2J)G{{wLG^G|X5uQks6CV zyWeU^eT-Q?^Aw9cf*XJM)-H7FNt04*AF=+!@!vy!oBy#~yYZSc{N3}dhBf3m1MdGm z+)4PBzx#Qkr@NoOO8s28&h@G{;qY^y2KdjA|BT_^@lKH6mY<~_#EtBOvUVnG2Rr_z zDdDjH@begWC54vX+R0A-hWtmtEAhAdleF_p{)YVD1FzIQ%Wv&OXUJd6jJ5UC#^2V1 zd?@_$rR|_#pF-*4>9=xT3Gv5hr;AM){)5)wr&7K4WBE^q_{ZNh;g7#-_|K8gLY=)K zz5x_jHvQx88U91>8UA)#vFN{!XrY7~$^RxxAX@(GLv-;gmmh7|#>M=<&hXFsi9S9{ F{$JjOX|@0W literal 0 HcmV?d00001 diff --git a/premake5.lua b/premake5.lua index 121c29a..b54478f 100644 --- a/premake5.lua +++ b/premake5.lua @@ -2,7 +2,7 @@ -- Bounce premake script -- http://industriousone.com/premake --- paths as variables in the case files are moved +-- variable paths for the case files are moved solution_name = "bounce" working_dir = "." solution_dir = "build/" @@ -12,7 +12,8 @@ src_dir = "src/" obj_dir = "/obj/" bin_dir = "/bin/" -action = _ACTION +-- or "" to make --help work +action = _ACTION or "" -- premake main solution (solution_name) @@ -20,14 +21,6 @@ solution (solution_name) configurations { "debug", "release" } platforms { "x32", "x64" } - filter { "platforms:x32" } - system "windows" - architecture "x32" - - filter { "platforms:x64" } - system "windows" - architecture "x64" - -- note the use of "!" before objdir to force the specified path configuration "debug" targetdir ( solution_dir .. action .. bin_dir .. "%{cfg.platform}/%{cfg.buildcfg}/%{prj.name}" ) @@ -37,125 +30,187 @@ solution (solution_name) rtti "Off" flags { "FloatFast" } - configuration "release" + configuration "release" targetdir ( solution_dir .. action .. bin_dir .. "%{cfg.platform}/%{cfg.buildcfg}/%{prj.name}" ) objdir ( "!" .. solution_dir .. action .. obj_dir .. "%{cfg.platform}/%{cfg.buildcfg}/%{prj.name}" ) defines { "NDEBUG" } optimize "On" rtti "Off" flags { "FloatFast" } - - configuration "windows" - defines { "WIN32", "_WINDOWS" } - + + configuration { "vs*" } + defines { "_CRT_SECURE_NO_WARNINGS" } + + configuration { "windows" } + defines { "_WIN32", "WIN32", "_WINDOWS" } + project "bounce" kind "StaticLib" language "C++" location ( solution_dir .. action ) + includedirs { inc_dir } + vpaths { [""] = "bounce" } + buildoptions { "-std=c++11" } -- require C++11 + files { inc_dir .. "/bounce/**.h", inc_dir .. "/bounce/**.inl", src_dir .. "/bounce/**.cpp" } - includedirs { inc_dir } - vpaths { [""] = "bounce" } - project "glad" kind "StaticLib" language "C" location ( solution_dir .. action ) + includedirs { external_dir } + vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" } + files { - external_dir .. "/glad/**.h", - external_dir .. "/glad/**.c" + external_dir .. "/glad/khrplatform.h", + external_dir .. "/glad/glad.h", + external_dir .. "/glad/glad.c" } - includedirs { external_dir } - defines { "_CRT_SECURE_NO_WARNINGS" } - vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" } + + configuration { "not windows", "not macosx" } + files + { + external_dir .. "/glad/glad_glx.h", + external_dir .. "/glad/glad_glx.c" + } project "glfw" kind "StaticLib" language "C" location ( solution_dir .. action ) + includedirs { external_dir .. "/glfw" } + defines { "_GLFW_USE_CONFIG_H" } -- see glfw_config.h + vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" } + + -- files - -- windows headers and sources + -- common + files + { + external_dir .. "/glfw/glfw_config.h", + external_dir .. "/glfw/glfw3.h", + external_dir .. "/glfw/glfw3native.h", + + external_dir .. "/glfw/context.c", + external_dir .. "/glfw/init.c", + external_dir .. "/glfw/input.c", + external_dir .. "/glfw/monitor.c", + external_dir .. "/glfw/vulkan.c", + external_dir .. "/glfw/window.c", + } + + -- windows configuration { "windows" } files { - external_dir .. "/glfw/egl_context.h", - external_dir .. "/glfw/glfw3.h", - external_dir .. "/glfw/glfw3native.h", - external_dir .. "/glfw/glfw_config.h", - external_dir .. "/glfw/wgl_context.h", - external_dir .. "/glfw/win32_joystick.h", external_dir .. "/glfw/win32_platform.h", - - external_dir .. "/glfw/context.c", - external_dir .. "/glfw/egl_context.c", - external_dir .. "/glfw/init.c", - external_dir .. "/glfw/input.c", - external_dir .. "/glfw/monitor.c", - external_dir .. "/glfw/vulkan.c", - external_dir .. "/glfw/wgl_context.c", + external_dir .. "/glfw/win32_joystick.h", + external_dir .. "/glfw/wgl_context.h", + external_dir .. "/glfw/egl_context.h", + external_dir .. "/glfw/win32_init.c", external_dir .. "/glfw/win32_joystick.c", external_dir .. "/glfw/win32_monitor.c", external_dir .. "/glfw/win32_time.c", external_dir .. "/glfw/win32_tls.c", external_dir .. "/glfw/win32_window.c", - external_dir .. "/glfw/window.c" + external_dir .. "/glfw/wgl_context.c", + external_dir .. "/glfw/egl_context.c", } - includedirs { external_dir .. "/glfw" } - defines { "_GLFW_USE_CONFIG_H", "_CRT_SECURE_NO_WARNINGS" } - vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" } + + -- linux + configuration { "not windows", "not macosx" } + buildoptions { "-pthread" } + files + { + external_dir .. "/glfw/x11_platform.h", + external_dir .. "/glfw/xkb_unicode.h", + external_dir .. "/glfw/linux_joystick.h", + external_dir .. "/glfw/posix_time.h", + external_dir .. "/glfw/posix_tls.h", + external_dir .. "/glfw/glx_context.h", + external_dir .. "/glfw/egl_context.h", + + external_dir .. "/glfw/x11_init.c", + external_dir .. "/glfw/x11_monitor.c", + external_dir .. "/glfw/x11_window.c", + external_dir .. "/glfw/xkb_unicode.c", + external_dir .. "/glfw/linux_joystick.c", + external_dir .. "/glfw/posix_time.c", + external_dir .. "/glfw/posix_tls.c", + external_dir .. "/glfw/egl_context.c", + external_dir .. "/glfw/glx_context.c", + } project "imgui" kind "StaticLib" language "C++" location ( solution_dir .. action ) + includedirs { external_dir } + vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" } + buildoptions { "-std=c++11" } -- require C++11 + files { external_dir .. "/imgui/**.h", external_dir .. "/imgui/**.cpp" } - includedirs { external_dir } - defines { "_CRT_SECURE_NO_WARNINGS" } - vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" } - project "testbed" kind "ConsoleApp" language "C++" location ( solution_dir .. action ) + includedirs { external_dir, inc_dir } + vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" } + buildoptions { "-std=c++11" } -- require C++11 + + --common files { inc_dir .. "/testbed/**.h", src_dir .. "/testbed/**.cpp" } - includedirs { external_dir, inc_dir } - - -- dependencies - links { "bounce", "glad", "glfw", "imgui" } - - -- windows dependencies + + links { "glfw", "glad", "imgui", "bounce" } + configuration { "windows" } links { "glu32", "opengl32", "winmm" } - vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" } + configuration { "not windows", "not macosx" } + links + { + "GL", "GLU", "rt", "Xrandr", "Xinerama", "Xi", "Xcursor", + "m", "dl", "Xrender", "drm", "Xdamage", "X11-xcb", "xcb-glx", + "xcb-dri2", "xcb-dri3", "xcb-present", "xcb-sync", "xshmfence", + "Xxf86vm", "Xfixes", "Xext", "X11", "pthread", "xcb", "Xau", "Xdmcp" + } + -- build if os.is "windows" then newaction - { + { trigger = "solution", - description = "Make and open solution", + description = "Build solution", execute = function () - os.execute ( "premake5 clean" ) + os.execute ( "premake5 clean" ) os.execute ( "premake5 vs2015" ) - os.execute ( "start " .. solution_dir .. "vs2015/bounce.sln" ) end } + newaction + { + trigger = "doc", + description = "Build documentation", + execute = function () + os.execute ( "doxygen doxyfile" ) + os.execute ( "start doc\\api\\html\\index.html" ) + end + } end -- clean @@ -164,6 +219,7 @@ newaction trigger = "clean", description = "Clean solution", execute = function () - os.rmdir( solution_dir ) + os.rmdir( "doc" ) + os.rmdir( solution_dir ) end -} \ No newline at end of file +} diff --git a/readme.md b/readme.md index 741f351..6c070ee 100644 --- a/readme.md +++ b/readme.md @@ -7,14 +7,14 @@ Here is how to control the Testbed. The Testbed is a collection of tests and exa Camera (as in Maya):

Bounce is released under the zlib license. -[Irlan Robson](http://irlan.net) +Irlan Robson

Features

@@ -32,15 +32,14 @@ Bounce is released under the zlib license.
  • Static tree "midphase"
  • SAT
  • GJK
  • -
  • Spheres, capsules, hulls
  • +
  • Spheres, capsules, hulls, triangle meshes
  • Optimized pair management
  • Dynamics

    -
  • Spheres, capsules, hulls, triangle meshes
  • -
  • Distance, spring, sphere, cone, revolute joint types
  • -
  • Joint motors, limits
  • Contact, friction, restitution
  • +
  • Mouse, spring, sphere, cone, revolute joint types
  • +
  • Joint motors, limits
  • Constraint graphs
  • Simulation islands and sleep management
  • Linear time solver
  • @@ -60,4 +59,4 @@ Bounce is released under the zlib license.

    Documentation

  • Doxygen API documentation
  • - \ No newline at end of file + diff --git a/src/bounce/collision/broad_phase.cpp b/src/bounce/collision/broad_phase.cpp index 0ca3fbf..4d7be99 100644 --- a/src/bounce/collision/broad_phase.cpp +++ b/src/bounce/collision/broad_phase.cpp @@ -16,18 +16,18 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3BroadPhase::b3BroadPhase() { m_moveBufferCapacity = 16; m_moveBuffer = (i32*)b3Alloc(m_moveBufferCapacity * sizeof(i32)); - memset(m_moveBuffer, NULL, m_moveBufferCapacity * sizeof(i32)); + memset(m_moveBuffer, 0, m_moveBufferCapacity * sizeof(i32)); m_moveBufferCount = 0; m_pairBufferCapacity = 16; m_pairBuffer = (b3Pair*)b3Alloc(m_pairBufferCapacity * sizeof(b3Pair)); - memset(m_pairBuffer, NULL, m_pairBufferCapacity * sizeof(b3Pair)); + memset(m_pairBuffer, 0, m_pairBufferCapacity * sizeof(b3Pair)); m_pairBufferCount = 0; } diff --git a/src/bounce/collision/distance.cpp b/src/bounce/collision/distance.cpp index 3d1575f..b0c2e15 100644 --- a/src/bounce/collision/distance.cpp +++ b/src/bounce/collision/distance.cpp @@ -16,10 +16,10 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include +#include +#include +#include +#include b3Vec3 b3ClosestPointOnPlane(const b3Vec3& P, const b3Plane& plane) { diff --git a/src/bounce/collision/gjk/gjk.cpp b/src/bounce/collision/gjk/gjk.cpp index 29ea195..a40a7c3 100644 --- a/src/bounce/collision/gjk/gjk.cpp +++ b/src/bounce/collision/gjk/gjk.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include // Implementation of the GJK (Gilbert-Johnson-Keerthi) algorithm // using Voronoi regions and Barycentric coordinates. diff --git a/src/bounce/collision/gjk/gjk_cache.cpp b/src/bounce/collision/gjk/gjk_cache.cpp index 50f7a7f..31678a3 100644 --- a/src/bounce/collision/gjk/gjk_cache.cpp +++ b/src/bounce/collision/gjk/gjk_cache.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include extern u32 b3_gjkCalls, b3_gjkIters, b3_gjkMaxIters; u32 b3_gjkCacheHits; diff --git a/src/bounce/collision/gjk/gjk_feature_pair.cpp b/src/bounce/collision/gjk/gjk_feature_pair.cpp index c13c585..df6c605 100644 --- a/src/bounce/collision/gjk/gjk_feature_pair.cpp +++ b/src/bounce/collision/gjk/gjk_feature_pair.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3GJKFeaturePair b3GetFeaturePair(const b3SimplexCache& cache) { diff --git a/src/bounce/collision/sat/sat.cpp b/src/bounce/collision/sat/sat.cpp index 64086ef..3eb2284 100644 --- a/src/bounce/collision/sat/sat.cpp +++ b/src/bounce/collision/sat/sat.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include // Implementation of the SAT (Separating Axis Test) for // convex hulls. Thanks to Dirk Gregorius for his presentation diff --git a/src/bounce/collision/sat/sat_edge_and_hull.cpp b/src/bounce/collision/sat/sat_edge_and_hull.cpp index e33e80e..aa1fd35 100644 --- a/src/bounce/collision/sat/sat_edge_and_hull.cpp +++ b/src/bounce/collision/sat/sat_edge_and_hull.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include float32 b3ProjectEdge(const b3Capsule* hull, const b3Plane& plane) { diff --git a/src/bounce/collision/sat/sat_vertex_and_hull.cpp b/src/bounce/collision/sat/sat_vertex_and_hull.cpp index 8327f1d..e7f8da8 100644 --- a/src/bounce/collision/sat/sat_vertex_and_hull.cpp +++ b/src/bounce/collision/sat/sat_vertex_and_hull.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include float32 b3ProjectVertex(const b3Sphere* hull, const b3Plane& plane) { diff --git a/src/bounce/collision/shapes/hull.cpp b/src/bounce/collision/shapes/hull.cpp index 0fcf919..964c4f4 100644 --- a/src/bounce/collision/shapes/hull.cpp +++ b/src/bounce/collision/shapes/hull.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include void b3Hull::Validate() const { @@ -28,22 +28,36 @@ void b3Hull::Validate() const void b3Hull::Validate(const b3Face* face) const { + bool ok = false; + const b3HalfEdge* begin = GetEdge(face->edge); + const b3HalfEdge* edge = begin; + do + { + if (GetFace(edge->face) == face) + { + ok = true; + break; + } + edge = edges + edge->next; + } while (edge != begin); + + B3_ASSERT(ok); + Validate(edges + face->edge); } void b3Hull::Validate(const b3HalfEdge* e) const { - u32 edgeIndex = (u32)(e - edges); + u8 edgeIndex = (u8)(e - edges); + const b3HalfEdge* twin = edges + e->twin; - B3_ASSERT(twin->twin == edgeIndex); + // Each edge must be followed by its twin. B3_ASSERT(b3Abs(twin - e) == 1); - - //B3_ASSERT(edges[e->prev].next == edgeIndex); - B3_ASSERT(e->origin != twin->origin); + B3_ASSERT(twin->twin == edgeIndex); u32 count = 0; - const b3HalfEdge* start = e; + const b3HalfEdge* begin = e; do { const b3HalfEdge* next = edges + e->next; @@ -51,5 +65,5 @@ void b3Hull::Validate(const b3HalfEdge* e) const e = twin; B3_ASSERT(count < edgeCount); ++count; - } while (e != start); -} + } while (e != begin); +} \ No newline at end of file diff --git a/src/bounce/collision/trees/dynamic_tree.cpp b/src/bounce/collision/trees/dynamic_tree.cpp index baf4d65..7c2fd24 100644 --- a/src/bounce/collision/trees/dynamic_tree.cpp +++ b/src/bounce/collision/trees/dynamic_tree.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3DynamicTree::b3DynamicTree() { @@ -25,7 +25,7 @@ b3DynamicTree::b3DynamicTree() // Preallocate 32 nodes. m_nodeCapacity = 32; m_nodes = (b3Node*) b3Alloc(m_nodeCapacity * sizeof(b3Node)); - memset(m_nodes, NULL, m_nodeCapacity * sizeof(b3Node)); + memset(m_nodes, 0, m_nodeCapacity * sizeof(b3Node)); m_nodeCount = 0; // Link the allocated nodes and make the first node @@ -67,7 +67,7 @@ i32 b3DynamicTree::AllocateNode() m_nodes[node].child1 = NULL_NODE; m_nodes[node].child2 = NULL_NODE; m_nodes[node].height = 0; - m_nodes[node].userData = nullptr; + m_nodes[node].userData = NULL; ++m_nodeCount; @@ -133,7 +133,7 @@ void b3DynamicTree::UpdateNode(i32 proxyId, const b3AABB3& aabb) InsertLeaf(proxyId); } -i32 b3DynamicTree::HeuristicSearch(const b3AABB3& leafAABB) const +i32 b3DynamicTree::FindBest(const b3AABB3& leafAABB) const { // To find a good branch node, the manhattan distance could be used as heuristic. // However, the current propagated node and the leaf node volume are incompletely considerable. @@ -215,7 +215,7 @@ void b3DynamicTree::InsertLeaf(i32 leaf) b3AABB3 leafAabb = m_nodes[leaf].aabb; // Search for the best branch node of this tree starting from the tree root node. - i32 sibling = HeuristicSearch(leafAabb); + i32 sibling = FindBest(leafAabb); i32 oldParent = m_nodes[sibling].parent; @@ -226,7 +226,7 @@ void b3DynamicTree::InsertLeaf(i32 leaf) m_nodes[sibling].parent = newParent; m_nodes[newParent].child2 = leaf; m_nodes[leaf].parent = newParent; - m_nodes[newParent].userData = nullptr; + m_nodes[newParent].userData = NULL; m_nodes[newParent].aabb = b3Combine(leafAabb, m_nodes[sibling].aabb); m_nodes[newParent].height = m_nodes[sibling].height + 1; @@ -362,7 +362,7 @@ void b3DynamicTree::Validate(i32 nodeID) const } } -void b3DynamicTree::Draw(b3Draw* b3Draw) const +void b3DynamicTree::Draw(b3Draw* draw) const { b3Color red = b3Color(1.0f, 0.0f, 0.0f); b3Color green = b3Color(0.0f, 1.0f, 0.0f); @@ -390,11 +390,11 @@ void b3DynamicTree::Draw(b3Draw* b3Draw) const const b3Node* node = m_nodes + nodeIndex; if (node->IsLeaf()) { - b3Draw->DrawAABB(node->aabb, purple); + draw->DrawAABB(node->aabb, purple); } else { - b3Draw->DrawAABB(node->aabb, red); + draw->DrawAABB(node->aabb, red); stack.Push(node->child1); stack.Push(node->child2); diff --git a/src/bounce/collision/trees/static_tree.cpp b/src/bounce/collision/trees/static_tree.cpp index bcb27c3..552a67e 100644 --- a/src/bounce/collision/trees/static_tree.cpp +++ b/src/bounce/collision/trees/static_tree.cpp @@ -16,13 +16,13 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include #include b3StaticTree::b3StaticTree() { - m_nodes = nullptr; + m_nodes = NULL; m_nodeCount = 0; } @@ -31,17 +31,46 @@ b3StaticTree::~b3StaticTree() b3Free(m_nodes); } -void b3StaticTree::Build(u32* ids, const b3AABB3* set, u32 N) +struct b3Params { - B3_ASSERT(N > 0); + u32 node; + u32* indices; + u32 numObjects; +}; - // Leafs = N, Internals = N - 1, Total = 2N - 1, if we assume +struct b3SortPredicate +{ + const b3AABB3* bs; + u32 axis; + + bool operator()(const u32& i, const u32& j) const + { + const b3AABB3* b1 = bs + i; + const b3AABB3* b2 = bs + j; + + b3Vec3 c1 = b1->Centroid(); + b3Vec3 c2 = b2->Centroid(); + + if (c1[axis] < c2[axis]) + { + return true; + } + + return false; + } +}; + +void b3StaticTree::Build(u32* ids, const b3AABB3* set, u32 n) +{ + B3_ASSERT(n > 0); + + // Leafs = n, Internals = n - 1, Total = 2n - 1, if we assume // each leaf node contains exactly 1 object. const u32 kMinObjectsPerLeaf = 1; - u32 internalCapacity = N - 1; - u32 leafCapacity = N; - u32 nodeCapacity = 2 * N - 1; + u32 internalCapacity = n - 1; + u32 leafCapacity = n; + u32 nodeCapacity = 2 * n - 1; u32 internalCount = 0; u32 leafCount = 0; @@ -49,42 +78,13 @@ void b3StaticTree::Build(u32* ids, const b3AABB3* set, u32 N) m_nodes = (b3Node*)b3Alloc(nodeCapacity * sizeof(b3Node)); m_nodeCount = 1; - struct b3Params - { - u32 node; - u32* indices; - u32 numObjects; - }; - - struct b3SortPredicate - { - const b3AABB3* bs; - u32 axis; - - bool operator()(const u32& i, const u32& j) const - { - const b3AABB3* b1 = bs + i; - const b3AABB3* b2 = bs + j; - - b3Vec3 c1 = b1->Centroid(); - b3Vec3 c2 = b2->Centroid(); - - if (c1[axis] < c2[axis]) - { - return true; - } - - return false; - } - }; - b3Stack stack; { b3Params params; params.node = 0; params.indices = ids; - params.numObjects = N; + params.numObjects = n; stack.Push(params); } @@ -189,7 +189,7 @@ void b3StaticTree::Build(u32* ids, const b3AABB3* set, u32 N) B3_ASSERT(m_nodeCount == nodeCapacity); } -void b3StaticTree::Draw(b3Draw* b3Draw) const +void b3StaticTree::Draw(b3Draw* draw) const { b3Color red = b3Color(1.0f, 0.0f, 0.0f, 1.0f); b3Color green = b3Color(0.0f, 1.0f, 0.0f, 1.0f); @@ -215,11 +215,11 @@ void b3StaticTree::Draw(b3Draw* b3Draw) const const b3Node* node = m_nodes + nodeIndex; if (node->IsLeaf()) { - b3Draw->DrawAABB(node->aabb, purple); + draw->DrawAABB(node->aabb, purple); } else { - b3Draw->DrawAABB(node->aabb, red); + draw->DrawAABB(node->aabb, red); stack.Push(node->child1); stack.Push(node->child2); diff --git a/src/bounce/common/math/mat.cpp b/src/bounce/common/math/mat.cpp index 6005db5..db118f0 100644 --- a/src/bounce/common/math/mat.cpp +++ b/src/bounce/common/math/mat.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include b3Vec2 b3Mat22::Solve(const b3Vec2& b) const { diff --git a/src/bounce/common/memory/block_pool.cpp b/src/bounce/common/memory/block_pool.cpp index 4abb1fc..307c39f 100644 --- a/src/bounce/common/memory/block_pool.cpp +++ b/src/bounce/common/memory/block_pool.cpp @@ -16,14 +16,14 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3BlockPool::b3BlockPool(u32 blockSize) { m_blockSize = blockSize; m_chunkSize = b3_blockCount * m_blockSize; - m_chunks = nullptr; + m_chunks = NULL; m_chunkCount = 0; // Pre-allocate some chunks @@ -42,7 +42,7 @@ b3BlockPool::b3BlockPool(u32 blockSize) current->next = (b3Block*)((u8*)chunk->freeBlocks + (i + 1) * blockSize); } b3Block* last = (b3Block*)((u8*)chunk->freeBlocks + (b3_blockCount - 1) * blockSize); - last->next = nullptr; + last->next = NULL; // Push back the new chunk of the singly-linked list of chunks. chunk->next = m_chunks; @@ -90,7 +90,7 @@ void* b3BlockPool::Allocate() current->next = (b3Block*)((u8*)chunk->freeBlocks + (i + 1) * m_blockSize); } b3Block* last = (b3Block*)((u8*)chunk->freeBlocks + (b3_blockCount - 1) * m_blockSize); - last->next = nullptr; + last->next = NULL; // Push back the new chunk of the singly-linked list of chunks. chunk->next = m_chunks; diff --git a/src/bounce/common/memory/stack_allocator.cpp b/src/bounce/common/memory/stack_allocator.cpp index 7a0d8be..f158ff9 100644 --- a/src/bounce/common/memory/stack_allocator.cpp +++ b/src/bounce/common/memory/stack_allocator.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3StackAllocator::b3StackAllocator() { diff --git a/src/bounce/common/settings.cpp b/src/bounce/common/settings.cpp index f800954..2bea79b 100644 --- a/src/bounce/common/settings.cpp +++ b/src/bounce/common/settings.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include #include #include #include diff --git a/src/bounce/common/time.cpp b/src/bounce/common/time.cpp deleted file mode 100644 index 0e99e8e..0000000 --- a/src/bounce/common/time.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2016-2016 Irlan Robson http://www.irlan.net -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#include - -// This file contains platform dependent code -// and may not compile depending of the OS. - -#if (_WIN32 == 1) - -#include - -float64 GetCyclesPerSecond() -{ - LARGE_INTEGER integer; - QueryPerformanceFrequency(&integer); - return float64(integer.QuadPart); -} - -u64 GetCycleCount() -{ - LARGE_INTEGER integer; - QueryPerformanceCounter(&integer); - return integer.QuadPart; -} - -#endif - -float64 b3Time::m_invFrequency = 0.0; - -b3Time::b3Time() -{ - m_lastTime = 0; - m_curTime = 0; - - if (m_invFrequency == 0.0) - { - float64 cyclesPerSec = GetCyclesPerSecond(); - float64 secPerCycles = 1.0 / cyclesPerSec; - float64 milisecPerCycles = 1000.0 * secPerCycles; - m_invFrequency = milisecPerCycles; - } - - m_lastRealTime = GetCycleCount(); -} - -void b3Time::Update() -{ - // Retrieve the current time in units of cycles. - u64 curTime = GetCycleCount(); - u64 dt = curTime - m_lastRealTime; - m_lastRealTime = curTime; - - float64 dtMs = m_invFrequency * float64(dt); - - UpdateBy(dtMs); -} - -void b3Time::UpdateBy(float64 delta) -{ - m_lastTime = m_curTime; - m_curTime += delta; -} diff --git a/src/bounce/dynamics/body.cpp b/src/bounce/dynamics/body.cpp index 5893976..e0eb06d 100644 --- a/src/bounce/dynamics/body.cpp +++ b/src/bounce/dynamics/body.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include b3Body::b3Body(const b3BodyDef& def, b3World* world) { @@ -107,7 +107,7 @@ b3Shape* b3Body::CreateShape(const b3ShapeDef& def) } // Compute the world AABB of the new shape and assign a broad-phase proxy to it. - b3Transform xf = shape->GetTransform(); + b3Transform xf = m_xf; b3AABB3 aabb; shape->ComputeAABB(&aabb, xf); diff --git a/src/bounce/dynamics/contact_manager.cpp b/src/bounce/dynamics/contact_manager.cpp index d61dab7..88b970a 100644 --- a/src/bounce/dynamics/contact_manager.cpp +++ b/src/bounce/dynamics/contact_manager.cpp @@ -16,19 +16,19 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include b3ContactManager::b3ContactManager() : m_convexBlocks(sizeof(b3ConvexContact)), m_meshBlocks(sizeof(b3MeshContact)) { - m_contactListener = nullptr; - m_contactFilter = nullptr; + m_contactListener = NULL; + m_contactFilter = NULL; } void b3ContactManager::AddPair(void* dataA, void* dataB) @@ -123,7 +123,7 @@ void b3ContactManager::AddPair(void* dataA, void* dataB) // Add the contact to the world contact list. m_contactList.PushFront(c); - if (c->m_type == b3ContactType::e_meshContact) + if (c->m_type == e_meshContact) { // Add the contact to the world mesh contact list. b3MeshContact* mc = (b3MeshContact*)c; @@ -237,7 +237,7 @@ b3Contact* b3ContactManager::Create(b3Shape* shapeA, b3Shape* shapeB) B3_ASSERT(typeA <= typeB); - b3Contact* c = nullptr; + b3Contact* c = NULL; if (typeA != e_meshShape && typeB != e_meshShape) { void* block = m_convexBlocks.Allocate(); @@ -267,7 +267,7 @@ b3Contact* b3ContactManager::Create(b3Shape* shapeA, b3Shape* shapeB) void b3ContactManager::Destroy(b3Contact* c) { - // Report to the contact listener that the contact will be destroyed. + // Report to the contact listener the contact will be destroyed. if (m_contactListener) { if (c->IsOverlapping()) @@ -297,7 +297,7 @@ void b3ContactManager::Destroy(b3Contact* c) { b3MeshContact* mc = (b3MeshContact*)c; - // Remove the contact from the world mesh contact list. + // Remove the mesh contact from the world mesh contact list. m_meshContactList.Remove(&mc->m_link); mc->~b3MeshContact(); diff --git a/src/bounce/dynamics/contacts/collide/clip.cpp b/src/bounce/dynamics/contacts/collide/clip.cpp index 9a3698a..650e7b1 100644 --- a/src/bounce/dynamics/contacts/collide/clip.cpp +++ b/src/bounce/dynamics/contacts/collide/clip.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include void b3BuildEdge(b3ClipVertex vOut[2], const b3Capsule* hull) diff --git a/src/bounce/dynamics/contacts/collide/collide.cpp b/src/bounce/dynamics/contacts/collide/collide.cpp index fb703e1..02b56b5 100644 --- a/src/bounce/dynamics/contacts/collide/collide.cpp +++ b/src/bounce/dynamics/contacts/collide/collide.cpp @@ -16,16 +16,16 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include void b3ShapeGJKProxy::Set(const b3Shape* shape, u32 index) { @@ -171,8 +171,8 @@ void b3CollideShapeAndShape(b3Manifold& manifold, static const b3CollideFunction s_CollideMatrix[e_maxShapes][e_maxShapes] = { { &b3CollideSphereAndSphereShapes, &b3CollideSphereAndCapsuleShapes, &b3CollideSphereAndHullShapes }, - { nullptr, &b3CollideCapsuleAndCapsuleShapes, &b3CollideCapsuleAndHullShapes }, - { nullptr, nullptr, &b3CollideHullAndHullShapes }, + { NULL, &b3CollideCapsuleAndCapsuleShapes, &b3CollideCapsuleAndHullShapes }, + { NULL, NULL, &b3CollideHullAndHullShapes }, }; b3ShapeType typeA = shapeA->GetType(); diff --git a/src/bounce/dynamics/contacts/collide/collide_capsule_and_hull.cpp b/src/bounce/dynamics/contacts/collide/collide_capsule_and_hull.cpp index a21ace5..bfa2265 100644 --- a/src/bounce/dynamics/contacts/collide/collide_capsule_and_hull.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_capsule_and_hull.cpp @@ -16,13 +16,13 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include void b3BuildEdgeContact(b3Manifold& manifold, const b3Transform& xf1, const b3Capsule* hull1, diff --git a/src/bounce/dynamics/contacts/collide/collide_capsules.cpp b/src/bounce/dynamics/contacts/collide/collide_capsules.cpp index f1ef7b0..9f21e52 100644 --- a/src/bounce/dynamics/contacts/collide/collide_capsules.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_capsules.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include bool b3AreParalell(const b3Capsule& hullA, const b3Capsule& hullB) { diff --git a/src/bounce/dynamics/contacts/collide/collide_hulls.cpp b/src/bounce/dynamics/contacts/collide/collide_hulls.cpp index d11fe0c..073de7e 100644 --- a/src/bounce/dynamics/contacts/collide/collide_hulls.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_hulls.cpp @@ -16,12 +16,12 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include void b3BuildEdgeContact(b3Manifold& manifold, const b3Transform& xfA, const b3Hull* hullA, diff --git a/src/bounce/dynamics/contacts/collide/collide_hulls_cache.cpp b/src/bounce/dynamics/contacts/collide/collide_hulls_cache.cpp index 61ec2d0..9380638 100644 --- a/src/bounce/dynamics/contacts/collide/collide_hulls_cache.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_hulls_cache.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include extern u32 b3_convexCacheHits; diff --git a/src/bounce/dynamics/contacts/collide/collide_sphere_and_capsule.cpp b/src/bounce/dynamics/contacts/collide/collide_sphere_and_capsule.cpp index f903c8a..1418de7 100644 --- a/src/bounce/dynamics/contacts/collide/collide_sphere_and_capsule.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_sphere_and_capsule.cpp @@ -16,12 +16,12 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include void b3CollideSphereAndCapsule(b3Manifold& manifold, const b3Transform& xfA, const b3SphereShape* sA, diff --git a/src/bounce/dynamics/contacts/collide/collide_sphere_and_hull.cpp b/src/bounce/dynamics/contacts/collide/collide_sphere_and_hull.cpp index 65b5639..ebdafe7 100644 --- a/src/bounce/dynamics/contacts/collide/collide_sphere_and_hull.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_sphere_and_hull.cpp @@ -16,12 +16,12 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include void b3CollideSphereAndHull(b3Manifold& manifold, const b3Transform& xf1, const b3SphereShape* s1, diff --git a/src/bounce/dynamics/contacts/collide/collide_spheres.cpp b/src/bounce/dynamics/contacts/collide/collide_spheres.cpp index 5d9c2bc..79b527f 100644 --- a/src/bounce/dynamics/contacts/collide/collide_spheres.cpp +++ b/src/bounce/dynamics/contacts/collide/collide_spheres.cpp @@ -16,10 +16,10 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include +#include +#include +#include +#include void b3CollideSphereAndSphere(b3Manifold& manifold, const b3Transform& xf1, const b3SphereShape* s1, diff --git a/src/bounce/dynamics/contacts/contact.cpp b/src/bounce/dynamics/contacts/contact.cpp index a2968c1..5270f8f 100644 --- a/src/bounce/dynamics/contacts/contact.cpp +++ b/src/bounce/dynamics/contacts/contact.cpp @@ -16,12 +16,12 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include const b3Manifold* b3Contact::GetManifold(u32 index) const { @@ -41,10 +41,10 @@ void b3Contact::GetWorldManifold(b3WorldManifold* out, u32 index) const b3Manifold* m = m_manifolds + index; const b3Shape* shapeA = GetShapeA(); - b3Transform xfA = shapeA->GetTransform(); + b3Transform xfA = shapeA->GetBody()->GetTransform(); const b3Shape* shapeB = GetShapeB(); - b3Transform xfB = shapeB->GetTransform(); + b3Transform xfB = shapeB->GetBody()->GetTransform(); out->Initialize(m, xfA, shapeA->m_radius, xfB, shapeB->m_radius); } @@ -54,12 +54,12 @@ void b3Contact::Update(b3ContactListener* listener) b3Shape* shapeA = GetShapeA(); b3Body* bodyA = shapeA->GetBody(); i32 proxyA = shapeA->m_broadPhaseID; - b3Transform xfA = shapeA->GetTransform(); + b3Transform xfA = bodyA->GetTransform(); b3Shape* shapeB = GetShapeB(); b3Body* bodyB = shapeB->GetBody(); i32 proxyB = shapeB->m_broadPhaseID; - b3Transform xfB = shapeB->GetTransform(); + b3Transform xfB = bodyB->GetTransform(); b3World* world = bodyA->GetWorld(); @@ -134,7 +134,7 @@ void b3Contact::Update(b3ContactListener* listener) } // Notify the contact listener the new contact state. - if (listener != nullptr) + if (listener != NULL) { if (wasOverlapping == false && isOverlapping == true) { diff --git a/src/bounce/dynamics/contacts/contact_cluster.cpp b/src/bounce/dynamics/contacts/contact_cluster.cpp index eb4dee8..b44f5ad 100644 --- a/src/bounce/dynamics/contacts/contact_cluster.cpp +++ b/src/bounce/dynamics/contacts/contact_cluster.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include inline void AddCluster(b3Array& clusters, const b3Vec3& centroid) { diff --git a/src/bounce/dynamics/contacts/contact_solver.cpp b/src/bounce/dynamics/contacts/contact_solver.cpp index 632fe92..86270ef 100644 --- a/src/bounce/dynamics/contacts/contact_solver.cpp +++ b/src/bounce/dynamics/contacts/contact_solver.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include // This solver implements PGS for solving velocity constraints and // NGS for solving position constraints. diff --git a/src/bounce/dynamics/contacts/convex_contact.cpp b/src/bounce/dynamics/contacts/convex_contact.cpp index 8712ef7..58859a6 100644 --- a/src/bounce/dynamics/contacts/convex_contact.cpp +++ b/src/bounce/dynamics/contacts/convex_contact.cpp @@ -16,9 +16,10 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include +#include b3ConvexContact::b3ConvexContact(b3Shape* shapeA, b3Shape* shapeB) { @@ -35,10 +36,10 @@ b3ConvexContact::b3ConvexContact(b3Shape* shapeA, b3Shape* shapeB) bool b3ConvexContact::TestOverlap() { b3Shape* shapeA = GetShapeA(); - b3Transform xfA = shapeA->GetTransform(); + b3Transform xfA = shapeA->GetBody()->GetTransform(); b3Shape* shapeB = GetShapeB(); - b3Transform xfB = shapeB->GetTransform(); + b3Transform xfB = shapeB->GetBody()->GetTransform(); return b3TestOverlap(xfA, 0, shapeA, xfB, 0, shapeB, &m_cache); } @@ -46,16 +47,14 @@ bool b3ConvexContact::TestOverlap() void b3ConvexContact::Collide() { b3Shape* shapeA = GetShapeA(); - b3Transform xfA = shapeA->GetTransform(); + b3Body* bodyA = shapeA->GetBody(); + b3Transform xfA = bodyA->GetTransform(); b3Shape* shapeB = GetShapeB(); - b3Transform xfB = shapeB->GetTransform(); + b3Body* bodyB = shapeB->GetBody(); + b3Transform xfB = bodyB->GetTransform(); B3_ASSERT(m_manifoldCount == 0); b3CollideShapeAndShape(m_stackManifold, xfA, shapeA, xfB, shapeB, &m_cache); m_manifoldCount = 1; -} - -void b3ConvexContact::SynchronizeShapes() -{ } \ No newline at end of file diff --git a/src/bounce/dynamics/contacts/manifold.cpp b/src/bounce/dynamics/contacts/manifold.cpp index ea7f7a1..018c5bb 100644 --- a/src/bounce/dynamics/contacts/manifold.cpp +++ b/src/bounce/dynamics/contacts/manifold.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include void b3Manifold::GuessImpulses() { diff --git a/src/bounce/dynamics/contacts/mesh_contact.cpp b/src/bounce/dynamics/contacts/mesh_contact.cpp index ce8dd17..46ba790 100644 --- a/src/bounce/dynamics/contacts/mesh_contact.cpp +++ b/src/bounce/dynamics/contacts/mesh_contact.cpp @@ -16,16 +16,16 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include b3MeshContact::b3MeshContact(b3Shape* shapeA, b3Shape* shapeB) { @@ -35,11 +35,12 @@ b3MeshContact::b3MeshContact(b3Shape* shapeA, b3Shape* shapeB) m_manifolds = m_stackManifolds; m_manifoldCount = 0; - b3Transform xfA = shapeA->GetTransform(); - b3Transform xfB = shapeB->GetTransform(); + b3Transform xfA = shapeA->GetBody()->GetTransform(); + b3Transform xfB = shapeB->GetBody()->GetTransform(); b3Transform xf = b3MulT(xfB, xfA); - + + // The fat aabb relative to shape B's frame. b3AABB3 fatAABB; shapeA->ComputeAABB(&fatAABB, xf); fatAABB.Extend(B3_AABB_EXTENSION); @@ -65,16 +66,16 @@ void b3MeshContact::SynchronizeShapes() b3Transform xfA = bodyA->m_xf; b3Shape* shapeB = GetShapeB(); - b3Transform xfB = shapeB->GetTransform(); + b3Body* bodyB = shapeB->GetBody(); + b3Transform xfB = bodyB->GetTransform(); b3Sweep* sweepA = &bodyA->m_sweep; b3Transform xfA0; xfA0.position = sweepA->worldCenter0; xfA0.rotation = b3ConvertQuatToRot(sweepA->orientation0); - // Calculate the displacement of the body A. - // using its position at the last time step and the current position. - // Could use displacement = velocity * dt. + // Calculate the displacement of body A using its position at the last + // time step and the current position. b3Vec3 displacement = xfA.position - xfA0.position; // Compute the AABB in the reference frame of shape B. @@ -83,8 +84,7 @@ void b3MeshContact::SynchronizeShapes() b3AABB3 aabb; shapeA->ComputeAABB(&aabb, xf); - // Update the AABB with the new (transformed) AABB and - // buffer move. + // Update the AABB with the new (transformed) AABB and buffer move. m_aabbMoved = MoveAABB(aabb, displacement); } @@ -191,11 +191,13 @@ bool b3MeshContact::Report(u32 proxyId) bool b3MeshContact::TestOverlap() { b3Shape* shapeA = GetShapeA(); - b3Transform xfA = shapeA->GetTransform(); + b3Body* bodyA = shapeA->GetBody(); + b3Transform xfA = bodyA->GetTransform(); u32 indexA = 0; b3Shape* shapeB = GetShapeB(); - b3Transform xfB = shapeB->GetTransform(); + b3Body* bodyB = shapeB->GetBody(); + b3Transform xfB = bodyB->GetTransform(); b3MeshShape* meshShapeB = (b3MeshShape*)shapeB; const b3Mesh* meshB = meshShapeB->m_mesh; @@ -222,15 +224,17 @@ void b3MeshContact::Collide() b3Shape* shapeA = GetShapeA(); b3Body* bodyA = shapeA->GetBody(); - b3Transform xfA = shapeA->GetTransform(); + b3Transform xfA = bodyA->GetTransform(); b3Shape* shapeB = GetShapeB(); + b3Body* bodyB = shapeB->GetBody(); b3MeshShape* meshShapeB = (b3MeshShape*)shapeB; - b3Transform xfB = shapeB->GetTransform(); + b3Transform xfB = bodyB->GetTransform(); b3World* world = bodyA->GetWorld(); b3StackAllocator* allocator = &world->m_stackAllocator; + // Create one manifold per triangle. b3Manifold* tempManifolds = (b3Manifold*)allocator->Allocate(m_triangleCount * sizeof(b3Manifold)); u32 tempCount = 0; @@ -263,7 +267,8 @@ void b3MeshContact::Collide() ++tempCount; } + // Send contact manifolds for clustering. This is an important optimization. B3_ASSERT(m_manifoldCount == 0); m_manifoldCount = b3Clusterize(m_stackManifolds, tempManifolds, tempCount, xfA, shapeA->m_radius, xfB, B3_HULL_RADIUS); allocator->Free(tempManifolds); -} +} \ No newline at end of file diff --git a/src/bounce/dynamics/draw_world.cpp b/src/bounce/dynamics/draw_world.cpp index d3e14ee..1e77d7b 100644 --- a/src/bounce/dynamics/draw_world.cpp +++ b/src/bounce/dynamics/draw_world.cpp @@ -16,29 +16,29 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include -#include -#include +#include +#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include -#include -#include -#include +#include +#include +#include +#include void b3World::DebugDraw() const { @@ -108,7 +108,7 @@ void b3World::DebugDraw() const const b3Manifold* m = manifolds + i; b3WorldManifold wm; - wm.Initialize(m, shapeA->GetTransform(), shapeA->m_radius, shapeB->GetTransform(), shapeB->m_radius); + wm.Initialize(m, shapeA->GetBody()->GetTransform(), shapeA->m_radius, shapeB->GetBody()->GetTransform(), shapeB->m_radius); if (wm.pointCount > 0) { diff --git a/src/bounce/dynamics/island.cpp b/src/bounce/dynamics/island.cpp index 47b4701..51e8668 100644 --- a/src/bounce/dynamics/island.cpp +++ b/src/bounce/dynamics/island.cpp @@ -16,15 +16,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include b3Island::b3Island(b3StackAllocator* allocator, u32 bodyCapacity, u32 contactCapacity, u32 jointCapacity) { diff --git a/src/bounce/dynamics/joint_manager.cpp b/src/bounce/dynamics/joint_manager.cpp index 028ac73..b81c579 100644 --- a/src/bounce/dynamics/joint_manager.cpp +++ b/src/bounce/dynamics/joint_manager.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include b3JointManager::b3JointManager() { @@ -33,7 +33,7 @@ b3Joint* b3JointManager::Create(const b3JointDef* def) B3_ASSERT(bodyA != bodyB); if (bodyA == bodyB) { - return nullptr; + return NULL; } // Allocate the new joint. diff --git a/src/bounce/dynamics/joints/cone_joint.cpp b/src/bounce/dynamics/joints/cone_joint.cpp index 059ee41..673fc7f 100644 --- a/src/bounce/dynamics/joints/cone_joint.cpp +++ b/src/bounce/dynamics/joints/cone_joint.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include -// C = dot(u2, u1) - cos(0.5 * angle) > 0 +// C = dot(u2, u1) - cos(angle / 2) > 0 // Cdot = dot(u2, omega1 x u1) + dot(u1, omega2 x u2) // Cycle: // dot(u1 x u2, omega1) + dot(u2 x u1, omega2) = @@ -28,6 +28,9 @@ // n = u2 x u1 // J = [0 -n 0 n] +// Stable C: +// C = angle / 2 - atan2( norm(u2 x u1), dot(u2, u1) ) > 0 + void b3ConeJointDef::Initialize(b3Body* bA, b3Body* bB, const b3Vec3& axis, const b3Vec3& anchor, float32 angle) { @@ -109,7 +112,7 @@ void b3ConeJoint::InitializeConstraints(const b3SolverData* data) float32 mass = b3Dot((m_iA + m_iB) * m_limitAxis, m_limitAxis); m_limitMass = mass > 0.0f ? 1.0f / mass : 0.0f; - // C = cone - angle >= 0 + // C = cone / 2 - angle >= 0 float32 cosine = b3Dot(u2, u1); float32 sine = b3Length(m_limitAxis); float32 angle = atan2(sine, cosine); @@ -185,23 +188,12 @@ void b3ConeJoint::SolveVelocityConstraints(const b3SolverData* data) // Solve limit constraint. if (m_enableLimit && m_limitState != e_inactiveLimit) { - float32 impulse = 0.0f; + float32 Cdot = b3Dot(m_limitAxis, wB - wA); + float32 impulse = -m_limitMass * Cdot; + float32 oldImpulse = m_limitImpulse; + m_limitImpulse = b3Max(m_limitImpulse + impulse, 0.0f); + impulse = m_limitImpulse - oldImpulse; - if (m_limitState == e_equalLimits) - { - float32 Cdot = b3Dot(m_limitAxis, wB - wA); - impulse = -m_limitMass * Cdot; - m_limitImpulse += impulse; - } - else if (m_limitState == e_atLowerLimit) - { - float32 Cdot = b3Dot(m_limitAxis, wB - wA); - impulse = -m_limitMass * Cdot; - float32 oldImpulse = m_limitImpulse; - m_limitImpulse = b3Max(m_limitImpulse + impulse, 0.0f); - impulse = m_limitImpulse - oldImpulse; - } - b3Vec3 P = impulse * m_limitAxis; wA -= m_iA * P; @@ -258,12 +250,12 @@ bool b3ConeJoint::SolvePositionConstraints(const b3SolverData* data) float32 limitError = 0.0f; if (m_enableLimit) { - // Compute Jacobian + // Compute fresh Jacobian b3Vec3 u1 = b3Mul(qA, m_localFrameA.rotation.y); b3Vec3 u2 = b3Mul(qB, m_localFrameB.rotation.y); b3Vec3 limitAxis = b3Cross(u2, u1); - // Compute effective mass. + // Compute fresh effective mass. float32 mass = b3Dot((iA + iB) * limitAxis, limitAxis); float32 limitMass = mass > 0.0f ? 1.0f / mass : 0.0f; @@ -301,26 +293,26 @@ bool b3ConeJoint::SolvePositionConstraints(const b3SolverData* data) return linearError <= B3_LINEAR_SLOP && limitError <= B3_ANGULAR_SLOP; } -const b3Transform& b3ConeJoint::GetFrameA() const +b3Transform b3ConeJoint::GetFrameA() const +{ + return GetBodyA()->GetWorldFrame(m_localFrameA); +} + +b3Transform b3ConeJoint::GetFrameB() const +{ + return GetBodyB()->GetWorldFrame(m_localFrameB); +} + +const b3Transform& b3ConeJoint::GetLocalFrameA() const { return m_localFrameA; } -void b3ConeJoint::SetFrameA(const b3Transform& frame) -{ - m_localFrameA = frame; -} - -const b3Transform& b3ConeJoint::GetFrameB() const +const b3Transform& b3ConeJoint::GetLocalFrameB() const { return m_localFrameB; } -void b3ConeJoint::SetFrameB(const b3Transform& frame) -{ - m_localFrameB = frame; -} - bool b3ConeJoint::IsLimitEnabled() const { return m_enableLimit; @@ -338,14 +330,14 @@ void b3ConeJoint::SetEnableLimit(bool bit) } } -float32 b3ConeJoint::GetLowerLimit() const +float32 b3ConeJoint::GetConeAngle() const { return m_coneAngle; } -void b3ConeJoint::SetLimit(float32 angle) +void b3ConeJoint::SetConeAngle(float32 angle) { - if (angle != m_coneAngle || angle != m_coneAngle) + if (angle != m_coneAngle) { GetBodyA()->SetAwake(true); GetBodyB()->SetAwake(true); @@ -354,10 +346,10 @@ void b3ConeJoint::SetLimit(float32 angle) } } -void b3ConeJoint::Draw(b3Draw* b3Draw) const +void b3ConeJoint::Draw(b3Draw* draw) const { - b3Transform xfA = GetBodyA()->GetWorldFrame(m_localFrameA); - b3Draw->DrawTransform(xfA); - b3Transform xfB = GetBodyB()->GetWorldFrame(m_localFrameB); - b3Draw->DrawTransform(xfB); -} + b3Transform xfA = GetFrameA(); + draw->DrawTransform(xfA); + b3Transform xfB = GetFrameB(); + draw->DrawTransform(xfB); +} \ No newline at end of file diff --git a/src/bounce/dynamics/joints/joint.cpp b/src/bounce/dynamics/joints/joint.cpp index d633f7d..7fb43dd 100644 --- a/src/bounce/dynamics/joints/joint.cpp +++ b/src/bounce/dynamics/joints/joint.cpp @@ -16,16 +16,16 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include b3Joint* b3Joint::Create(const b3JointDef* def) { - b3Joint* joint = nullptr; + b3Joint* joint = NULL; switch (def->type) { case e_mouseJoint: diff --git a/src/bounce/dynamics/joints/joint_solver.cpp b/src/bounce/dynamics/joints/joint_solver.cpp index 4bfac9c..f247d5c 100644 --- a/src/bounce/dynamics/joints/joint_solver.cpp +++ b/src/bounce/dynamics/joints/joint_solver.cpp @@ -16,8 +16,8 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include b3JointSolver::b3JointSolver(const b3JointSolverDef* def) { diff --git a/src/bounce/dynamics/joints/mouse_joint.cpp b/src/bounce/dynamics/joints/mouse_joint.cpp index 1e2fa44..2a9f923 100644 --- a/src/bounce/dynamics/joints/mouse_joint.cpp +++ b/src/bounce/dynamics/joints/mouse_joint.cpp @@ -16,15 +16,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include b3MouseJoint::b3MouseJoint(const b3MouseJointDef* def) { m_type = e_mouseJoint; - m_worldAnchorA = def->worldAnchorA; - m_localAnchorB = def->localAnchorB; + m_worldTargetA = def->target; + m_localAnchorB = def->bodyB->GetLocalPoint(def->target); m_maxForce = def->maxForce; m_impulse.SetZero(); } @@ -42,7 +42,7 @@ void b3MouseJoint::InitializeConstraints(const b3SolverData* data) b3Vec3 worldAnchorB = b3Mul(qB, m_localAnchorB) + xB; - m_C = worldAnchorB - m_worldAnchorA; + m_C = worldAnchorB - m_worldTargetA; m_rB = worldAnchorB - xB; b3Mat33 M = b3Diagonal(m_mB); @@ -54,7 +54,7 @@ void b3MouseJoint::InitializeConstraints(const b3SolverData* data) void b3MouseJoint::WarmStart(const b3SolverData* data) { data->velocities[m_indexB].v += m_mB * m_impulse; - data->velocities[m_indexB].w += b3Mul(m_iB, b3Cross(m_rB, m_impulse)); + data->velocities[m_indexB].w += m_iB * b3Cross(m_rB, m_impulse); } void b3MouseJoint::SolveVelocityConstraints(const b3SolverData* data) @@ -80,7 +80,7 @@ void b3MouseJoint::SolveVelocityConstraints(const b3SolverData* data) impulse = m_impulse - oldImpulse; vB += m_mB * impulse; - wB += b3Mul(m_iB, b3Cross(m_rB, impulse)); + wB += m_iB * b3Cross(m_rB, impulse); data->velocities[m_indexB].v = vB; data->velocities[m_indexB].w = wB; @@ -88,27 +88,41 @@ void b3MouseJoint::SolveVelocityConstraints(const b3SolverData* data) bool b3MouseJoint::SolvePositionConstraints(const b3SolverData* data) { - // There is no position correction for spring joints. + // There is no position correction for this constraint. + // todo Implement Buda spring? return true; } -// Get the world space anchor point on the first body (usually the mouse world space position). -b3Vec3 b3MouseJoint::GetWorldAnchorB() const +b3Vec3 b3MouseJoint::GetAnchorA() const { - return b3Mul(GetBodyB()->GetTransform(), m_localAnchorB); + return m_worldTargetA; } -void b3MouseJoint::Draw(b3Draw* b3Draw) const +b3Vec3 b3MouseJoint::GetAnchorB() const { - b3Color red = b3Color(1.0f, 0.0f, 0.0f, 1.0f); - b3Color green = b3Color(0.0f, 1.0f, 0.0f, 1.0f); - b3Color yellow = b3Color(1.0f, 1.0f, 0.0f, 1.0f); + return GetBodyB()->GetWorldPoint(m_localAnchorB); +} + +const b3Vec3& b3MouseJoint::GetTarget() const +{ + return m_worldTargetA; +} + +void b3MouseJoint::SetTarget(const b3Vec3& target) +{ + m_worldTargetA = target; +} + +void b3MouseJoint::Draw(b3Draw* draw) const +{ + b3Color red(1.0f, 0.0f, 0.0f); + b3Color green(0.0f, 1.0f, 0.0f); + b3Color yellow(1.0f, 1.0f, 0.0f); - b3Transform xfB = GetBodyB()->m_xf; - b3Vec3 worldAnchorA = m_worldAnchorA; - b3Vec3 worldAnchorB = b3Mul(xfB, m_localAnchorB); + b3Vec3 a = GetAnchorA(); + b3Vec3 b = GetAnchorB(); - b3Draw->DrawPoint(worldAnchorA, green); - b3Draw->DrawPoint(worldAnchorB, red); - b3Draw->DrawSegment(worldAnchorA, worldAnchorB, yellow); -} + draw->DrawPoint(a, green); + draw->DrawPoint(b, red); + draw->DrawSegment(a, b, yellow); +} \ No newline at end of file diff --git a/src/bounce/dynamics/joints/revolute_joint.cpp b/src/bounce/dynamics/joints/revolute_joint.cpp index b7e2e8e..29b74bd 100644 --- a/src/bounce/dynamics/joints/revolute_joint.cpp +++ b/src/bounce/dynamics/joints/revolute_joint.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include // C1 = p2 - p1 // C2 = dot(u2, w1) @@ -35,7 +35,7 @@ // [0 -n1 0 n1] // [0 -n2 0 n2] -// W = [i1 0 0] +// W = [i1 0 0 0] // [0 m1 0 0] // [0 0 i2 0] // [0 0 0 m2] @@ -359,8 +359,7 @@ void b3RevoluteJoint::SolveVelocityConstraints(const b3SolverData* data) Cdot[3] = Cdot2; Cdot[4] = Cdot3; - // Copy the effective mass so it can be destroyed in the - // linear solver. + // Copy the matrix so it can be destroyed in the linear solver. b3Mat<5, 5> mass = m_mass; b3Vec<5> impulse = -Cdot; if (b3Solve(impulse.e, mass.e, 5)) @@ -566,26 +565,26 @@ bool b3RevoluteJoint::SolvePositionConstraints(const b3SolverData* data) limitError <= B3_ANGULAR_SLOP; } -const b3Transform& b3RevoluteJoint::GetFrameA() const +b3Transform b3RevoluteJoint::GetFrameA() const +{ + return GetBodyA()->GetWorldFrame(m_localFrameA); +} + +b3Transform b3RevoluteJoint::GetFrameB() const +{ + return GetBodyB()->GetWorldFrame(m_localFrameB); +} + +const b3Transform& b3RevoluteJoint::GetLocalFrameA() const { return m_localFrameA; } -void b3RevoluteJoint::SetFrameA(const b3Transform& frame) -{ - m_localFrameA = frame; -} - -const b3Transform& b3RevoluteJoint::GetFrameB() const +const b3Transform& b3RevoluteJoint::GetLocalFrameB() const { return m_localFrameB; } -void b3RevoluteJoint::SetFrameB(const b3Transform& frame) -{ - m_localFrameB = frame; -} - bool b3RevoluteJoint::IsLimitEnabled() const { return m_enableLimit; @@ -666,10 +665,10 @@ void b3RevoluteJoint::SetMaxMotorTorque(float32 torque) m_maxMotorTorque = torque; } -void b3RevoluteJoint::Draw(b3Draw* b3Draw) const +void b3RevoluteJoint::Draw(b3Draw* draw) const { - b3Transform xfA = GetBodyA()->GetWorldFrame(m_localFrameA); - b3Draw->DrawTransform(xfA); - b3Transform xfB = GetBodyB()->GetWorldFrame(m_localFrameB); - b3Draw->DrawTransform(xfB); -} + b3Transform xfA = GetFrameA(); + b3Transform xfB = GetFrameB(); + draw->DrawTransform(xfA); + draw->DrawTransform(xfB); +} \ No newline at end of file diff --git a/src/bounce/dynamics/joints/sphere_joint.cpp b/src/bounce/dynamics/joints/sphere_joint.cpp index d402cb8..a42cc1e 100644 --- a/src/bounce/dynamics/joints/sphere_joint.cpp +++ b/src/bounce/dynamics/joints/sphere_joint.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include void b3SphereJointDef::Initialize(b3Body* bA, b3Body* bB, const b3Vec3& anchor) { @@ -147,12 +147,22 @@ bool b3SphereJoint::SolvePositionConstraints(const b3SolverData* data) return b3Length(C) <= B3_LINEAR_SLOP; } -void b3SphereJoint::Draw(b3Draw* b3Draw) const +b3Vec3 b3SphereJoint::GetAnchorA() const { - b3Vec3 pA = GetBodyA()->GetWorldPoint(m_localAnchorA); - b3Draw->DrawPoint(pA, b3Color(1.0f, 0.0f, 0.0f, 1.0f)); - b3Vec3 pB = GetBodyB()->GetWorldPoint(m_localAnchorB); - b3Draw->DrawPoint(pB, b3Color(0.0f, 1.0f, 0.0f, 1.0f)); - - b3Draw->DrawSegment(pA, pB, b3Color(1.0f, 1.0f, 0.0f, 1.0f)); + return GetBodyA()->GetWorldPoint(m_localAnchorA); +} + +b3Vec3 b3SphereJoint::GetAnchorB() const +{ + return GetBodyB()->GetWorldPoint(m_localAnchorB); +} + +void b3SphereJoint::Draw(b3Draw* draw) const +{ + b3Vec3 a = GetAnchorA(); + b3Vec3 b = GetAnchorB(); + + draw->DrawPoint(a, b3Color(1.0f, 0.0f, 0.0f)); + draw->DrawPoint(b, b3Color(0.0f, 1.0f, 0.0f)); + draw->DrawSegment(a, b, b3Color(1.0f, 1.0f, 0.0f)); } diff --git a/src/bounce/dynamics/joints/spring_joint.cpp b/src/bounce/dynamics/joints/spring_joint.cpp index 03c2279..e786c64 100644 --- a/src/bounce/dynamics/joints/spring_joint.cpp +++ b/src/bounce/dynamics/joints/spring_joint.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include // C = ||x2 + r2 - x1 - r1|| - length // Cdot = dot(n, v2 + w2 x r2 - v1 - w1 x r1) @@ -44,6 +44,56 @@ b3SpringJoint::b3SpringJoint(const b3SpringJointDef* def) m_impulse = 0.0f; } +b3Vec3 b3SpringJoint::GetAnchorA() const +{ + return GetBodyA()->GetWorldPoint(m_localAnchorA); +} + +b3Vec3 b3SpringJoint::GetAnchorB() const +{ + return GetBodyB()->GetWorldPoint(m_localAnchorB); +} + +const b3Vec3& b3SpringJoint::GetLocalAnchorA() const +{ + return m_localAnchorA; +} + +const b3Vec3& b3SpringJoint::GetLocalAnchorB() const +{ + return m_localAnchorB; +} + +float32 b3SpringJoint::GetLength() const +{ + return m_length; +} + +void b3SpringJoint::SetLength(float32 length) +{ + m_length = length; +} + +float32 b3SpringJoint::GetFrequency() const +{ + return m_frequencyHz; +} + +void b3SpringJoint::SetFrequency(float32 frequency) +{ + m_frequencyHz = frequency; +} + +float32 b3SpringJoint::GetDampingRatio() const +{ + return m_dampingRatio; +} + +void b3SpringJoint::SetDampingRatio(float32 ratio) +{ + m_dampingRatio = ratio; +} + void b3SpringJoint::InitializeConstraints(const b3SolverData* data) { b3Body* m_bodyA = GetBodyA(); @@ -66,7 +116,7 @@ void b3SpringJoint::InitializeConstraints(const b3SolverData* data) b3Vec3 xB = data->positions[m_indexB].x; b3Quat qB = data->positions[m_indexB].q; - // Handle singularity + // Singularity check. m_n = xB + m_rB - xA - m_rA; float32 length = b3Length(m_n); if (length > B3_LINEAR_SLOP) @@ -199,16 +249,16 @@ bool b3SpringJoint::SolvePositionConstraints(const b3SolverData* data) return b3Abs(C) < B3_LINEAR_SLOP; } -void b3SpringJoint::Draw(b3Draw* b3Draw) const +void b3SpringJoint::Draw(b3Draw* draw) const { b3Color red = b3Color(1.0f, 0.0f, 0.0f, 1.0f); b3Color green = b3Color(0.0f, 1.0f, 0.0f, 1.0f); b3Color blue = b3Color(0.0f, 0.0f, 1.0f, 1.0f); - b3Vec3 pA = GetBodyA()->GetWorldPoint(m_localAnchorA); - b3Vec3 pB = GetBodyB()->GetWorldPoint(m_localAnchorB); + b3Vec3 a = GetBodyA()->GetWorldPoint(m_localAnchorA); + b3Vec3 b = GetBodyB()->GetWorldPoint(m_localAnchorB); - b3Draw->DrawPoint(pA, green); - b3Draw->DrawPoint(pB, green); - b3Draw->DrawSegment(pA, pB, blue); + draw->DrawPoint(a, green); + draw->DrawPoint(b, green); + draw->DrawSegment(a, b, blue); } diff --git a/src/bounce/dynamics/shapes/capsule_shape.cpp b/src/bounce/dynamics/shapes/capsule_shape.cpp index 04affc0..b5e6c80 100644 --- a/src/bounce/dynamics/shapes/capsule_shape.cpp +++ b/src/bounce/dynamics/shapes/capsule_shape.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3CapsuleShape::b3CapsuleShape() { diff --git a/src/bounce/dynamics/shapes/hull_shape.cpp b/src/bounce/dynamics/shapes/hull_shape.cpp index 5fbe5a9..9a81633 100644 --- a/src/bounce/dynamics/shapes/hull_shape.cpp +++ b/src/bounce/dynamics/shapes/hull_shape.cpp @@ -16,15 +16,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include b3HullShape::b3HullShape() { m_type = e_hullShape; m_radius = B3_HULL_RADIUS; - m_hull = nullptr; + m_hull = NULL; } b3HullShape::~b3HullShape() diff --git a/src/bounce/dynamics/shapes/mesh_shape.cpp b/src/bounce/dynamics/shapes/mesh_shape.cpp index feb6045..d8730db 100644 --- a/src/bounce/dynamics/shapes/mesh_shape.cpp +++ b/src/bounce/dynamics/shapes/mesh_shape.cpp @@ -16,14 +16,14 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include +#include +#include b3MeshShape::b3MeshShape() { m_type = e_meshShape; m_radius = B3_HULL_RADIUS; - m_mesh = nullptr; + m_mesh = NULL; } b3MeshShape::~b3MeshShape() @@ -161,7 +161,7 @@ bool b3MeshShape::RayCast(b3RayCastOutput* output, const b3RayCastInput& input, callback.hit = false; callback.output.fraction = B3_MAX_FLOAT; - m_mesh->tree.QueryRay(&callback, subInput); + m_mesh->tree.RayCast(&callback, subInput); output->fraction = callback.output.fraction; output->normal = b3Mul(xf.rotation, callback.output.normal); diff --git a/src/bounce/dynamics/shapes/shape.cpp b/src/bounce/dynamics/shapes/shape.cpp index f0bb5b4..e4a7e3d 100644 --- a/src/bounce/dynamics/shapes/shape.cpp +++ b/src/bounce/dynamics/shapes/shape.cpp @@ -16,18 +16,18 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include void b3Shape::SetSensor(bool flag) { @@ -41,11 +41,6 @@ void b3Shape::SetSensor(bool flag) } } -b3Transform b3Shape::GetTransform() const -{ - return m_body->GetTransform(); -} - void b3Shape::DestroyContacts() { b3World* world = m_body->GetWorld(); @@ -195,7 +190,7 @@ void b3Shape::Dump(i32 bodyIndex) const b3Shape* b3Shape::Create(const b3ShapeDef& def) { - b3Shape* shape = nullptr; + b3Shape* shape = NULL; switch (def.shape->GetType()) { case e_sphereShape: diff --git a/src/bounce/dynamics/shapes/sphere_shape.cpp b/src/bounce/dynamics/shapes/sphere_shape.cpp index 1324438..b6d4115 100644 --- a/src/bounce/dynamics/shapes/sphere_shape.cpp +++ b/src/bounce/dynamics/shapes/sphere_shape.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include b3SphereShape::b3SphereShape() { diff --git a/src/bounce/dynamics/world.cpp b/src/bounce/dynamics/world.cpp index 6db8d1d..2e48715 100644 --- a/src/bounce/dynamics/world.cpp +++ b/src/bounce/dynamics/world.cpp @@ -16,15 +16,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include extern u32 b3_allocCalls; extern u32 b3_maxAllocCalls; @@ -33,7 +33,7 @@ b3World::b3World() : m_bodyBlocks(sizeof(b3Body)) { b3_allocCalls = 0; b3_maxAllocCalls = 0; - m_debugDraw = nullptr; + m_debugDraw = NULL; memset(&m_profile, 0, sizeof(b3Profile)); m_flags = e_clearForcesFlag; @@ -329,7 +329,7 @@ void b3World::Solve(float32 dt, u32 velocityIterations, u32 positionIterations) } } -struct b3CastRayCallback +struct b3RayCastCallback { float32 Report(const b3RayCastInput& input, i32 proxyId) { @@ -338,7 +338,7 @@ struct b3CastRayCallback b3Shape* shape = (b3Shape*)userData; // Calculate transformation from shape local space to world space. - b3Transform xf = shape->GetTransform(); + b3Transform xf = shape->GetBody()->GetTransform(); b3RayCastOutput output; bool hit = shape->RayCast(&output, input, xf); @@ -364,20 +364,20 @@ struct b3CastRayCallback const b3BroadPhase* broadPhase; }; -void b3World::CastRay(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const +void b3World::RayCast(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const { b3RayCastInput input; input.p1 = p1; input.p2 = p2; input.maxFraction = 1.0f; - b3CastRayCallback callback; + b3RayCastCallback callback; callback.listener = listener; callback.broadPhase = &m_contactMan.m_broadPhase; - m_contactMan.m_broadPhase.QueryRay(&callback, input); + m_contactMan.m_broadPhase.RayCast(&callback, input); } -struct b3CastAABBCallback +struct b3QueryAABBCallback { bool Report(i32 proxyID) { @@ -389,9 +389,9 @@ struct b3CastAABBCallback const b3BroadPhase* broadPhase; }; -void b3World::CastAABB(b3QueryListener* listener, const b3AABB3& aabb) const +void b3World::QueryAABB(b3QueryListener* listener, const b3AABB3& aabb) const { - b3CastAABBCallback callback; + b3QueryAABBCallback callback; callback.listener = listener; callback.broadPhase = &m_contactMan.m_broadPhase; m_contactMan.m_broadPhase.QueryAABB(&callback, aabb); diff --git a/src/bounce/quickhull/qh_hull.cpp b/src/bounce/quickhull/qh_hull.cpp index 70f01a5..518abe3 100644 --- a/src/bounce/quickhull/qh_hull.cpp +++ b/src/bounce/quickhull/qh_hull.cpp @@ -16,9 +16,9 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include +#include +#include +#include float32 qhFindAABB(u32 iMin[3], u32 iMax[3], const b3Array& vertices) { @@ -76,31 +76,31 @@ void qhHull::Construct(void* memory, const b3Array& vs) // Euler's formula // V - E + F = 2 - m_freeVertices = nullptr; + m_freeVertices = NULL; qhVertex* vertices = (qhVertex*)memory; for (u32 i = 0; i < V; ++i) { FreeVertex(vertices + i); } - m_freeEdges = nullptr; + m_freeEdges = NULL; qhHalfEdge* edges = (qhHalfEdge*)((u8*)vertices + V * sizeof(qhVertex)); for (u32 i = 0; i < HE; ++i) { FreeEdge(edges + i); } - m_freeFaces = nullptr; + m_freeFaces = NULL; qhFace* faces = (qhFace*)((u8*)edges + HE * sizeof(qhHalfEdge)); for (u32 i = 0; i < F; ++i) { qhFace* f = faces + i; - f->conflictList.head = nullptr; + f->conflictList.head = NULL; f->conflictList.count = 0; FreeFace(f); } - m_faceList.head = nullptr; + m_faceList.head = NULL; m_faceList.count = 0; m_iteration = 0; @@ -295,7 +295,7 @@ bool qhHull::BuildInitialHull(const b3Array& vertices) // Discard internal points since they can't be in the hull. float32 d0 = m_tolerance; - qhFace* f0 = nullptr; + qhFace* f0 = NULL; for (u32 j = 0; j < 4; ++j) { @@ -324,7 +324,7 @@ qhVertex* qhHull::NextVertex() { // Find the point furthest from the current hull. float32 d0 = m_tolerance; - qhVertex* v0 = nullptr; + qhVertex* v0 = NULL; qhFace* f = m_faceList.head; while (f) @@ -479,7 +479,7 @@ qhHalfEdge* qhHull::AddAdjoiningTriangle(qhVertex* eye, qhHalfEdge* horizonEdge) e1->tail = v1; e1->prev = e3; e1->next = e2; - e1->twin = nullptr; + e1->twin = NULL; e1->face = face; e2->tail = v2; @@ -492,10 +492,10 @@ qhHalfEdge* qhHull::AddAdjoiningTriangle(qhVertex* eye, qhHalfEdge* horizonEdge) e3->tail = v3; e3->prev = e2; e3->next = e1; - e3->twin = nullptr; + e3->twin = NULL; e3->face = face; - horizonEdge->twin = nullptr; + horizonEdge->twin = NULL; face->edge = e1; face->center = (v1->position + v2->position + v3->position) / 3.0f; @@ -511,8 +511,8 @@ void qhHull::AddNewFaces(b3Array& newFaces, qhVertex* eye, const b3Arra { newFaces.Reserve(horizon.Count()); - qhHalfEdge* beginEdge = nullptr; - qhHalfEdge* prevEdge = nullptr; + qhHalfEdge* beginEdge = NULL; + qhHalfEdge* prevEdge = NULL; { qhHalfEdge* edge = horizon[0]; @@ -571,7 +571,7 @@ void qhHull::AddNewFaces(b3Array& newFaces, qhVertex* eye, const b3Arra // Use tolerance and discard internal points. float32 max = m_tolerance; - qhFace* iMax = nullptr; + qhFace* iMax = NULL; for (u32 i = 0; i < newFaces.Count(); ++i) { @@ -587,7 +587,7 @@ void qhHull::AddNewFaces(b3Array& newFaces, qhVertex* eye, const b3Arra if (iMax) { qhVertex* v0 = v; - v->conflictFace = nullptr; + v->conflictFace = NULL; v = f->conflictList.Remove(v); iMax->conflictList.PushFront(v0); v0->conflictFace = iMax; @@ -595,7 +595,7 @@ void qhHull::AddNewFaces(b3Array& newFaces, qhVertex* eye, const b3Arra else { qhVertex* v0 = v; - v->conflictFace = nullptr; + v->conflictFace = NULL; v = f->conflictList.Remove(v); FreeVertex(v0); } @@ -739,7 +739,7 @@ bool qhHull::IsConsistent() const return true; } -void qhHull::Draw(b3Draw* b3Draw) const +void qhHull::Draw(b3Draw* draw) const { qhFace* face = m_faceList.head; while (face) @@ -750,12 +750,12 @@ void qhHull::Draw(b3Draw* b3Draw) const qhVertex* v = face->conflictList.head; while (v) { - b3Draw->DrawPoint(v->position, b3Color(1.0f, 1.0f, 0.0f)); - b3Draw->DrawSegment(c, v->position, b3Color(1.0f, 1.0f, 0.0f)); + draw->DrawPoint(v->position, b3Color(1.0f, 1.0f, 0.0f)); + draw->DrawSegment(c, v->position, b3Color(1.0f, 1.0f, 0.0f)); v = v->next; } - b3Draw->DrawSegment(c, c + n, b3Color(1.0f, 1.0f, 1.0f)); + draw->DrawSegment(c, c + n, b3Color(1.0f, 1.0f, 1.0f)); b3StackArray polygon; qhHalfEdge* edge = face->edge; @@ -765,7 +765,7 @@ void qhHull::Draw(b3Draw* b3Draw) const edge = edge->next; } while (edge != face->edge); - b3Draw->DrawSolidPolygon(polygon.Elements(), polygon.Count(), b3Color(0.0f, 0.0f, 1.0f, 1.0f)); + draw->DrawSolidPolygon(polygon.Elements(), polygon.Count(), b3Color(0.0f, 0.0f, 1.0f, 1.0f)); face = face->next; } diff --git a/src/testbed/framework/debug_draw.cpp b/src/testbed/framework/debug_draw.cpp index c19f912..96ef492 100644 --- a/src/testbed/framework/debug_draw.cpp +++ b/src/testbed/framework/debug_draw.cpp @@ -16,10 +16,14 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include +#include + +#include +#include +#include +#include + +#include extern Camera g_camera; @@ -594,7 +598,7 @@ struct DrawShapes while (s) { DrawShape(s, xf); - s = s->m_next; + s = s->GetNext(); } glDisable(GL_COLOR_MATERIAL); @@ -798,4 +802,4 @@ void DebugDraw::Submit() m_triangles->Submit(); m_lines->Submit(); m_points->Submit(); -} \ No newline at end of file +} diff --git a/src/testbed/framework/main.cpp b/src/testbed/framework/main.cpp index b9b60e1..36576de 100644 --- a/src/testbed/framework/main.cpp +++ b/src/testbed/framework/main.cpp @@ -16,11 +16,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include GLFWwindow* g_window; Settings g_settings; @@ -29,7 +29,7 @@ Camera g_camera; DebugDraw* g_debugDraw; bool g_leftDown; bool g_rightDown; -bool g_altDown; +bool g_shiftDown; b3Vec2 g_ps0; void WindowSize(int w, int h) @@ -51,7 +51,7 @@ void MouseMove(GLFWwindow* w, double x, double y) float32 nx = b3Clamp(dp.x, -1.0f, 1.0f); float32 ny = b3Clamp(dp.y, -1.0f, 1.0f); - if (g_altDown) + if (g_shiftDown) { if (g_leftDown) { @@ -83,7 +83,7 @@ void MouseMove(GLFWwindow* w, double x, double y) void MouseWheel(GLFWwindow* w, double dx, double dy) { float32 n = b3Clamp(float32(dy), -1.0f, 1.0f); - if (g_altDown) + if (g_shiftDown) { g_camera.m_zoom += 0.5f * -n; } @@ -106,7 +106,7 @@ void MouseButton(GLFWwindow* w, int button, int action, int mods) { g_leftDown = true; - if (g_altDown == false) + if (g_shiftDown == false) { g_test->MouseLeftDown(pw); } @@ -125,7 +125,7 @@ void MouseButton(GLFWwindow* w, int button, int action, int mods) { g_leftDown = false; - if (g_altDown == false) + if (g_shiftDown == false) { g_test->MouseLeftUp(pw); } @@ -150,13 +150,13 @@ void KeyButton(GLFWwindow* w, int button, int scancode, int action, int mods) { case GLFW_PRESS: { - if (button == GLFW_KEY_LEFT_ALT) + if (button == GLFW_KEY_LEFT_SHIFT) { - g_altDown = true; + g_shiftDown = true; g_test->KeyDown(button); } - if (g_altDown) + if (g_shiftDown) { if (button == GLFW_KEY_DOWN) { @@ -167,11 +167,6 @@ void KeyButton(GLFWwindow* w, int button, int scancode, int action, int mods) { g_camera.m_zoom -= 0.05f; } - - if (button == GLFW_KEY_R) - { - g_settings.lastTestID = -1; - } } else { @@ -182,12 +177,12 @@ void KeyButton(GLFWwindow* w, int button, int scancode, int action, int mods) } case GLFW_RELEASE: { - if (button == GLFW_KEY_LEFT_ALT) + if (button == GLFW_KEY_LEFT_SHIFT) { - g_altDown = false; + g_shiftDown = false; } - if (g_altDown == false) + if (g_shiftDown == false) { g_test->KeyUp(button); } @@ -247,7 +242,7 @@ void Interface() } ImVec2 buttonSize = ImVec2(-1, 0); - if (ImGui::Button("Restart (R)", buttonSize)) + if (ImGui::Button("Restart", buttonSize)) { g_settings.lastTestID = -1; } @@ -345,13 +340,6 @@ void Run() ImGui_ImplGlfwGL3_NewFrame(); - Step(); - - if (g_settings.drawShapes) - { - g_debugDraw->Submit(g_test->m_world); - } - if (g_settings.drawGrid) { u32 n = 20; @@ -397,9 +385,16 @@ void Run() g_debugDraw->DrawSegment(p1, p2, color2); } } - + + Step(); + g_debugDraw->Submit(); + if (g_settings.drawShapes) + { + g_debugDraw->Submit(g_test->m_world); + } + Interface(); ImGui::Render(); @@ -411,53 +406,65 @@ void Run() } int main(int argc, char** args) -{ - // Create g_window +{ if (glfwInit() == 0) { fprintf(stderr, "Failed to initialize GLFW\n"); return -1; } - + + // Create g_window extern b3Version b3_version; char title[256]; - sprintf_s(title, "Bounce Testbed Version %d.%d.%d", b3_version.major, b3_version.minor, b3_version.revision); - + sprintf(title, "Bounce Testbed Version %d.%d.%d", b3_version.major, b3_version.minor, b3_version.revision); + + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); + g_window = glfwCreateWindow(1024, 768, title, NULL, NULL); - - g_leftDown = false; - g_rightDown = false; - g_altDown = false; - g_ps0.SetZero(); - - glfwMakeContextCurrent(g_window); - glfwSwapInterval(1); + if (g_window == NULL) + { + fprintf(stderr, "Failed to opengl GLFW window\n"); + glfwTerminate(); + return -1; + } + + glfwMakeContextCurrent(g_window); glfwSetCursorPosCallback(g_window, MouseMove); glfwSetScrollCallback(g_window, MouseWheel); glfwSetMouseButtonCallback(g_window, MouseButton); glfwSetKeyCallback(g_window, KeyButton); glfwSetCharCallback(g_window, Char); - + glfwSwapInterval(1); if (gladLoadGL() == 0) { fprintf(stderr, "Error: %d\n", glad_glGetError()); + glfwTerminate(); exit(EXIT_FAILURE); } + printf("OpenGL %s, GLSL %s\n", glGetString(GL_VERSION), glGetString(GL_SHADING_LANGUAGE_VERSION)); + + g_leftDown = false; + g_rightDown = false; + g_shiftDown = false; + g_ps0.SetZero(); + // Create UI CreateInterface(); // Create renderer g_debugDraw = new DebugDraw(); - // Run the g_tests - g_test = nullptr; + // Run the testbed + g_test = NULL; Run(); + // Destroy the last test if (g_test) { delete g_test; - g_test = nullptr; + g_test = NULL; } // Destroy renderer diff --git a/src/testbed/framework/test.cpp b/src/testbed/framework/test.cpp index df5b477..96a3547 100644 --- a/src/testbed/framework/test.cpp +++ b/src/testbed/framework/test.cpp @@ -16,7 +16,7 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include +#include extern u32 b3_allocCalls, b3_maxAllocCalls; extern u32 b3_gjkCalls, b3_gjkIters, b3_gjkMaxIters; @@ -49,9 +49,8 @@ Test::Test() g_camera.m_center.SetZero(); g_settings.drawGrid = false; - m_rayHit.m_shape = nullptr; - m_mouseJoint = nullptr; - m_groundBody = nullptr; + m_rayHit.m_shape = NULL; + m_mouseJoint = NULL; { b3Transform xf; @@ -363,20 +362,23 @@ void Test::MouseMove(const Ray3& pw) float32 w1 = 1.0f - hitFraction; float32 w2 = hitFraction; - b3Vec3 worldPointA = w1 * pw.Start() + w2 * pw.End(); - m_mouseJoint->SetWorldAnchorA(worldPointA); + b3Vec3 target = w1 * pw.Start() + w2 * pw.End(); + m_mouseJoint->SetTarget(target); } } void Test::MouseLeftDown(const Ray3& pw) { // Clear the current hit - m_rayHit.m_shape = nullptr; + m_rayHit.m_shape = NULL; if (m_mouseJoint) { + b3Body* groundBody = m_mouseJoint->GetBodyA(); + m_world.DestroyJoint(m_mouseJoint); - m_mouseJoint = nullptr; - m_world.DestroyBody(m_groundBody); + m_mouseJoint = NULL; + + m_world.DestroyBody(groundBody); } b3Vec3 p1 = pw.Start(); @@ -384,7 +386,7 @@ void Test::MouseLeftDown(const Ray3& pw) // Perform the ray cast RayCastListener listener; - m_world.CastRay(&listener, p1, p2); + m_world.RayCast(&listener, p1, p2); int hitId = listener.FindClosestHit(); @@ -400,40 +402,28 @@ void Test::MouseLeftDown(const Ray3& pw) void Test::MouseLeftUp(const Ray3& pw) { - m_rayHit.m_shape = nullptr; + m_rayHit.m_shape = NULL; if (m_mouseJoint) { + b3Body* groundBody = m_mouseJoint->GetBodyA(); + m_world.DestroyJoint(m_mouseJoint); - m_mouseJoint = nullptr; - m_world.DestroyBody(m_groundBody); + m_mouseJoint = NULL; + + m_world.DestroyBody(groundBody); } } void Test::RayHit() { b3BodyDef bdef; - m_groundBody = m_world.CreateBody(bdef); - - b3Shape* shape = m_rayHit.m_shape; - - b3Body* bodyA = m_groundBody; - b3Body* bodyB = shape->GetBody(); - - // Ray hit point in world space - b3Vec3 worldPointA = m_rayHit.m_point; - - // xf from world space to the local space of the shape - b3Transform xf = shape->GetTransform(); - - // Ray hit point in world space - // lp = xf^-1 * wp - b3Vec3 localPointA = b3MulT(xf, worldPointA); - + b3Body* bodyA = m_world.CreateBody(bdef); + b3Body* bodyB = m_rayHit.m_shape->GetBody(); + b3MouseJointDef def; def.bodyA = bodyA; def.bodyB = bodyB; - def.worldAnchorA = worldPointA; - def.localAnchorB = localPointA; + def.target = m_rayHit.m_point; def.maxForce = 2000.0f * bodyB->GetMass(); m_mouseJoint = (b3MouseJoint*)m_world.CreateJoint(def); diff --git a/src/testbed/framework/test_entries.cpp b/src/testbed/framework/test_entries.cpp index 2dc78ef..a4f174a 100644 --- a/src/testbed/framework/test_entries.cpp +++ b/src/testbed/framework/test_entries.cpp @@ -16,36 +16,36 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include TestEntry g_tests[e_testCount] = {