Merge pull request #70091 from clayjohn/bone-aabbs

Remove mesh bone_aabbs as they are not used anywhere and calculating them is a pain
This commit is contained in:
Rémi Verschelde 2022-12-17 12:32:32 +01:00
commit 2b056115ef
No known key found for this signature in database
GPG key ID: C3336907360768E1
4 changed files with 0 additions and 42 deletions

View file

@ -323,27 +323,8 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
} }
if (mesh->surface_count == 0) { if (mesh->surface_count == 0) {
mesh->bone_aabbs = p_surface.bone_aabbs;
mesh->aabb = p_surface.aabb; mesh->aabb = p_surface.aabb;
} else { } else {
if (mesh->bone_aabbs.size() < p_surface.bone_aabbs.size()) {
// ArrayMesh::_surface_set_data only allocates bone_aabbs up to max_bone
// Each surface may affect different numbers of bones.
mesh->bone_aabbs.resize(p_surface.bone_aabbs.size());
}
for (int i = 0; i < p_surface.bone_aabbs.size(); i++) {
const AABB &bone = p_surface.bone_aabbs[i];
if (bone.has_volume()) {
AABB &mesh_bone = mesh->bone_aabbs.write[i];
if (mesh_bone != AABB()) {
// Already initialized, merge AABBs.
mesh_bone.merge_with(bone);
} else {
// Not yet initialized, copy the bone AABB.
mesh_bone = bone;
}
}
}
mesh->aabb.merge_with(p_surface.aabb); mesh->aabb.merge_with(p_surface.aabb);
} }

View file

@ -120,8 +120,6 @@ struct Mesh {
Surface **surfaces = nullptr; Surface **surfaces = nullptr;
uint32_t surface_count = 0; uint32_t surface_count = 0;
Vector<AABB> bone_aabbs;
bool has_bone_weights = false; bool has_bone_weights = false;
AABB aabb; AABB aabb;

View file

@ -434,27 +434,8 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
} }
if (mesh->surface_count == 0) { if (mesh->surface_count == 0) {
mesh->bone_aabbs = p_surface.bone_aabbs;
mesh->aabb = p_surface.aabb; mesh->aabb = p_surface.aabb;
} else { } else {
if (mesh->bone_aabbs.size() < p_surface.bone_aabbs.size()) {
// ArrayMesh::_surface_set_data only allocates bone_aabbs up to max_bone
// Each surface may affect different numbers of bones.
mesh->bone_aabbs.resize(p_surface.bone_aabbs.size());
}
for (int i = 0; i < p_surface.bone_aabbs.size(); i++) {
const AABB &bone = p_surface.bone_aabbs[i];
if (bone.has_volume()) {
AABB &mesh_bone = mesh->bone_aabbs.write[i];
if (mesh_bone != AABB()) {
// Already initialized, merge AABBs.
mesh_bone.merge_with(bone);
} else {
// Not yet initialized, copy the bone AABB.
mesh_bone = bone;
}
}
}
mesh->aabb.merge_with(p_surface.aabb); mesh->aabb.merge_with(p_surface.aabb);
} }

View file

@ -138,8 +138,6 @@ private:
Surface **surfaces = nullptr; Surface **surfaces = nullptr;
uint32_t surface_count = 0; uint32_t surface_count = 0;
Vector<AABB> bone_aabbs;
bool has_bone_weights = false; bool has_bone_weights = false;
AABB aabb; AABB aabb;