Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/io/usd/intern/usd_writer_skinned_mesh.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/io/usd/intern/usd_writer_skinned_mesh.cc b/source/blender/io/usd/intern/usd_writer_skinned_mesh.cc
index 320cd41b1ae..9f691e765d8 100644
--- a/source/blender/io/usd/intern/usd_writer_skinned_mesh.cc
+++ b/source/blender/io/usd/intern/usd_writer_skinned_mesh.cc
@@ -194,7 +194,7 @@ void USDSkinnedMeshWriter::write_weights(const Object *ob,
const pxr::UsdSkelBindingAPI &skel_api,
const std::vector<std::string> &bone_names) const
{
- if (!(skel_api && ob && mesh && mesh->dvert && mesh->totvert > 0)) {
+ if (!(skel_api && ob && mesh && mesh->totvert > 0)) {
return;
}
@@ -223,16 +223,17 @@ void USDSkinnedMeshWriter::write_weights(const Object *ob,
return;
}
+ const Span<MDeformVert> dverts = mesh->deform_verts();
+
int max_totweight = 1;
- for (int i = 0; i < mesh->totvert; ++i) {
- MDeformVert &vert = mesh->dvert[i];
+ for (const int i : dverts.index_range()) {
+ const MDeformVert &vert = dverts[i];
if (vert.totweight > max_totweight) {
max_totweight = vert.totweight;
}
}
const int ELEM_SIZE = max_totweight;
-
int num_points = mesh->totvert;
pxr::VtArray<int> joint_indices(num_points * ELEM_SIZE, 0);
@@ -244,9 +245,8 @@ void USDSkinnedMeshWriter::write_weights(const Object *ob,
/* Record number of out of bounds vert group indices, for error reporting. */
int num_out_of_bounds = 0;
- for (int i = 0; i < mesh->totvert; ++i) {
-
- MDeformVert &vert = mesh->dvert[i];
+ for (const int i : dverts.index_range()) {
+ const MDeformVert &vert = dverts[i];
/* Sum of the weights, for normalizing. */
float sum_weights = 0.0f;