AeThex-Engine-Core/engine/core/math/bvh_integrity.inc
MrPiglr 9dddce666d
🚀 AeThex Engine v1.0 - Complete Fork
- Forked from Godot Engine 4.7-dev (MIT License)
- Rebranded to AeThex Engine with cyan/purple theme
- Added AI-powered development assistant module
- Integrated Claude API for code completion & error fixing
- Custom hexagon logo and branding
- Multi-platform CI/CD (Windows, Linux, macOS)
- Built Linux editor binary (151MB)
- Complete source code with all customizations

Tech Stack:
- C++ game engine core
- AI Module: Claude 3.5 Sonnet integration
- Build: SCons, 14K+ source files
- License: MIT (Godot) + Custom (AeThex features)

Ready for Windows build via GitHub Actions!
2026-02-23 05:01:56 +00:00

42 lines
932 B
C++

void _integrity_check_all() {
#ifdef BVH_INTEGRITY_CHECKS
for (int n = 0; n < NUM_TREES; n++) {
uint32_t root = _root_node_id[n];
if (root != BVHCommon::INVALID) {
_integrity_check_down(root);
}
}
#endif
}
void _integrity_check_up(uint32_t p_node_id) {
TNode &node = _nodes[p_node_id];
BVHABB_CLASS abb = node.aabb;
node_update_aabb(node);
BVHABB_CLASS abb2 = node.aabb;
abb2.expand(-_node_expansion);
CRASH_COND(!abb.is_other_within(abb2));
}
void _integrity_check_down(uint32_t p_node_id) {
const TNode &node = _nodes[p_node_id];
if (node.is_leaf()) {
_integrity_check_up(p_node_id);
} else {
CRASH_COND(node.num_children != 2);
for (int n = 0; n < node.num_children; n++) {
uint32_t child_id = node.children[n];
// check the children parent pointers are correct
TNode &child = _nodes[child_id];
CRASH_COND(child.parent_id != p_node_id);
_integrity_check_down(child_id);
}
}
}