- Removed superfluous check for a valid skeleton.

- Fixed getting mesh vertices on meshes with no skeleton.
This commit is contained in:
2026-08-23 22:35:45 -04:00
parent bbaa3d01d2
commit 1d6bdd289b
+4 -5
View File
@@ -600,10 +600,10 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes
SkinnedSurfaces skinned_vertex_surfaces; SkinnedSurfaces skinned_vertex_surfaces;
skinned_vertex_surfaces.resize(num_surfaces); skinned_vertex_surfaces.resize(num_surfaces);
TypedArray<Transform3D> bone_transforms; if (!skeleton)
if (skeleton)
{ {
const uint16_t bone_count = skeleton->get_bone_count(); const uint16_t bone_count = skeleton->get_bone_count();
TypedArray<Transform3D> bone_transforms;
bone_transforms.resize(bone_count); bone_transforms.resize(bone_count);
for (uint8_t bone_index = 0; bone_index < bone_count; bone_index++) for (uint8_t bone_index = 0; bone_index < bone_count; bone_index++)
{ {
@@ -620,8 +620,6 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes
SkinnedVertices skinned_vertex_array; SkinnedVertices skinned_vertex_array;
skinned_vertex_array.resize(mesh_vertex_array_size); skinned_vertex_array.resize(mesh_vertex_array_size);
if (skeleton)
{
const PackedInt32Array &mesh_bones_array = mesh_arrays[ArrayMesh::ARRAY_BONES]; const PackedInt32Array &mesh_bones_array = mesh_arrays[ArrayMesh::ARRAY_BONES];
const PackedFloat32Array &mesh_weights_array = mesh_arrays[ArrayMesh::ARRAY_WEIGHTS]; const PackedFloat32Array &mesh_weights_array = mesh_arrays[ArrayMesh::ARRAY_WEIGHTS];
const uint8_t num_bones_per_vertex = mesh_bones_array.size() / mesh_vertex_array_size; const uint8_t num_bones_per_vertex = mesh_bones_array.size() / mesh_vertex_array_size;
@@ -659,7 +657,6 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes
delete transforms; delete transforms;
} }
}
skinned_vertex_surfaces[surface] = skinned_vertex_array; skinned_vertex_surfaces[surface] = skinned_vertex_array;
} }
@@ -682,6 +679,8 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes
{ {
skinned_vertex_array[vertex_index] = mesh_vertex_array[vertex_index]; skinned_vertex_array[vertex_index] = mesh_vertex_array[vertex_index];
} }
skinned_vertex_surfaces[surface] = skinned_vertex_array;
} }
return skinned_vertex_surfaces; return skinned_vertex_surfaces;