diff options
Diffstat (limited to 'source/blender/geometry/intern/mesh_to_volume.cc')
-rw-r--r-- | source/blender/geometry/intern/mesh_to_volume.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/geometry/intern/mesh_to_volume.cc b/source/blender/geometry/intern/mesh_to_volume.cc index b6025f8f1a9..ff321ddf057 100644 --- a/source/blender/geometry/intern/mesh_to_volume.cc +++ b/source/blender/geometry/intern/mesh_to_volume.cc @@ -16,7 +16,7 @@ namespace blender::geometry { /* This class follows the MeshDataAdapter interface from openvdb. */ class OpenVDBMeshAdapter { private: - Span<MVert> verts_; + Span<float3> positions_; Span<MLoop> loops_; Span<MLoopTri> looptris_; float4x4 transform_; @@ -30,7 +30,10 @@ class OpenVDBMeshAdapter { }; OpenVDBMeshAdapter::OpenVDBMeshAdapter(const Mesh &mesh, float4x4 transform) - : verts_(mesh.verts()), loops_(mesh.loops()), looptris_(mesh.looptris()), transform_(transform) + : positions_(mesh.positions()), + loops_(mesh.loops()), + looptris_(mesh.looptris()), + transform_(transform) { } @@ -41,7 +44,7 @@ size_t OpenVDBMeshAdapter::polygonCount() const size_t OpenVDBMeshAdapter::pointCount() const { - return size_t(verts_.size()); + return size_t(positions_.size()); } size_t OpenVDBMeshAdapter::vertexCount(size_t /*polygon_index*/) const @@ -55,8 +58,7 @@ void OpenVDBMeshAdapter::getIndexSpacePoint(size_t polygon_index, openvdb::Vec3d &pos) const { const MLoopTri &looptri = looptris_[polygon_index]; - const MVert &vertex = verts_[loops_[looptri.tri[vertex_index]].v]; - const float3 transformed_co = transform_ * float3(vertex.co); + const float3 transformed_co = transform_ * positions_[loops_[looptri.tri[vertex_index]].v]; pos = &transformed_co.x; } |