godot/core/math
lawnjelly dc14636e68 BVH templated mask checks and generic NUM_TREES
Refactors the BVH to make it more generic and customizable. Instead of hard coding the system of pairable_mask and pairable_type into the BVH, this information is no longer stored internally, and instead the BVH uses callbacks both for determining whether pairs of objects can pair with each other, and for filtering cull / intersection tests.

In addition, instead of hard coding the number of trees, the BVH now supports up to 32 trees, and each object can supply a tree collision mask to determine which trees it can collide against.

This enables the BVH to scale to either the two or 3 trees needed in physics, and the single tree used without pairing in Godot 4 render tree.
2022-01-21 10:08:29 +00:00
..
SCsub SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
a_star.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
a_star.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
aabb.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
aabb.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
audio_frame.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
audio_frame.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
basis.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
basis.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
bsp_tree.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
bsp_tree.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
bvh.h BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_abb.h BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_cull.inc BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_debug.inc BVH - detect shrinkage within expanded bounds 2021-11-17 09:06:10 +00:00
bvh_integrity.inc Support for Dynamic BVH as 2D Physics broadphase 2021-04-30 15:53:15 -07:00
bvh_logic.inc clang-format: Various fixes to comments alignment from `clang-format` 13 2021-10-28 14:50:32 +02:00
bvh_misc.inc BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_pair.inc BVH - add option for expanded AABBs in leaves 2021-11-20 06:45:12 +00:00
bvh_public.inc BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_refit.inc BVH - fix stale current_tree in deactivate function 2021-05-25 10:43:04 +01:00
bvh_split.inc BVH - detect shrinkage within expanded bounds 2021-11-17 09:06:10 +00:00
bvh_structs.inc BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
bvh_tree.h BVH templated mask checks and generic NUM_TREES 2022-01-21 10:08:29 +00:00
camera_matrix.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
camera_matrix.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
convex_hull.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
convex_hull.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
delaunay.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
disjoint_set.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
disjoint_set.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
expression.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
expression.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
face3.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
face3.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
geometry.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
geometry.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
math_defs.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
math_fieldwise.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
math_fieldwise.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
math_funcs.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
math_funcs.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
octree.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
octree_definition.inc Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
plane.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
plane.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
quat.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
quat.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
quick_hull.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
quick_hull.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
random_number_generator.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
random_number_generator.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
random_pcg.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
random_pcg.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
rect2.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
rect2.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
transform.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
transform.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
transform_2d.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
transform_2d.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
triangle_mesh.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
triangle_mesh.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
triangulate.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
triangulate.h Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
vector2.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
vector2.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00
vector3.cpp Update copyright statements to 2022 2022-01-13 15:54:13 +01:00
vector3.h Add nodiscard to core math classes to catch c++ errors. 2022-01-20 17:28:31 +00:00