diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-09-25 23:09:05 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-09-25 23:11:37 +0300 |
commit | 04230e80d12a7187887a927f16a0ccdac9b50e9e (patch) | |
tree | d4fbe43d2123f0767750f9ca72dedb13314eb9fa /source/blender/alembic | |
parent | 0b89b31a1842edba162e3ca01b556906c8adee52 (diff) |
Alembic: only interpolate vertices when their number don't differ
between samples.
This could cause some crashes.
Diffstat (limited to 'source/blender/alembic')
-rw-r--r-- | source/blender/alembic/intern/abc_mesh.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc index 00c86779960..8e640b36c27 100644 --- a/source/blender/alembic/intern/abc_mesh.cc +++ b/source/blender/alembic/intern/abc_mesh.cc @@ -859,7 +859,10 @@ static void read_mverts(CDStreamConfig &config, const AbcMeshData &mesh_data) const P3fArraySamplePtr &positions = mesh_data.positions; const N3fArraySamplePtr &normals = mesh_data.vertex_normals; - if (config.weight != 0.0f && mesh_data.ceil_positions) { + if ( config.weight != 0.0f + && mesh_data.ceil_positions != NULL + && mesh_data.ceil_positions->size() == positions->size()) + { read_mverts_interp(mverts, positions, mesh_data.ceil_positions, config.weight); return; } |