diff options
Diffstat (limited to 'source/blender/io/alembic/intern/abc_reader_mesh.cc')
-rw-r--r-- | source/blender/io/alembic/intern/abc_reader_mesh.cc | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/source/blender/io/alembic/intern/abc_reader_mesh.cc b/source/blender/io/alembic/intern/abc_reader_mesh.cc index 2531bd62609..58b7a28c419 100644 --- a/source/blender/io/alembic/intern/abc_reader_mesh.cc +++ b/source/blender/io/alembic/intern/abc_reader_mesh.cc @@ -122,31 +122,30 @@ struct AbcMeshData { UInt32ArraySamplePtr uvs_indices; }; -static void read_mverts_interp(MVert *mverts, +static void read_mverts_interp(float3 *mesh_positions, const P3fArraySamplePtr &positions, const P3fArraySamplePtr &ceil_positions, const double weight) { float tmp[3]; for (int i = 0; i < positions->size(); i++) { - MVert &mvert = mverts[i]; const Imath::V3f &floor_pos = (*positions)[i]; const Imath::V3f &ceil_pos = (*ceil_positions)[i]; interp_v3_v3v3(tmp, floor_pos.getValue(), ceil_pos.getValue(), float(weight)); - copy_zup_from_yup(mvert.co, tmp); + copy_zup_from_yup(mesh_positions[i], tmp); } } static void read_mverts(CDStreamConfig &config, const AbcMeshData &mesh_data) { - MVert *mverts = config.mvert; + float3 *mesh_positions = config.positions; const P3fArraySamplePtr &positions = mesh_data.positions; if (config.use_vertex_interpolation && config.weight != 0.0f && mesh_data.ceil_positions != nullptr && mesh_data.ceil_positions->size() == positions->size()) { - read_mverts_interp(mverts, positions, mesh_data.ceil_positions, config.weight); + read_mverts_interp(mesh_positions, positions, mesh_data.ceil_positions, config.weight); return; } @@ -155,12 +154,11 @@ static void read_mverts(CDStreamConfig &config, const AbcMeshData &mesh_data) void read_mverts(Mesh &mesh, const P3fArraySamplePtr positions, const N3fArraySamplePtr normals) { - MutableSpan<MVert> verts = mesh.verts_for_write(); + MutableSpan<float3> mesh_positions = mesh.positions_for_write(); for (int i = 0; i < positions->size(); i++) { - MVert &mvert = verts[i]; Imath::V3f pos_in = (*positions)[i]; - copy_zup_from_yup(mvert.co, pos_in.getValue()); + copy_zup_from_yup(mesh_positions[i], pos_in.getValue()); } if (normals) { float(*vert_normals)[3] = BKE_mesh_vertex_normals_for_write(&mesh); @@ -517,7 +515,7 @@ CDStreamConfig get_config(Mesh *mesh, const bool use_vertex_interpolation) { CDStreamConfig config; config.mesh = mesh; - config.mvert = mesh->verts_for_write().data(); + config.positions = mesh->positions_for_write().data(); config.mloop = mesh->loops_for_write().data(); config.mpoly = mesh->polys_for_write().data(); config.totvert = mesh->totvert; |