Revert "Volumes: make Mesh to Volume modifier independent of object transforms"

This reverts commit 66cd82a8d. This was based on a misunderstanding. We do want
to take into account transforms similar to other modifiers like booleans, to
support taking into account animated transforms, combining multiple meshes into
one volume, etc.
This commit is contained in:
Brecht Van Lommel
2020-10-05 11:20:59 +02:00
parent a4f8b2ad76
commit 0026ca09de

View File

@@ -120,6 +120,7 @@ static void initData(ModifierData *md)
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
MeshToVolumeModifierData *mvmd = reinterpret_cast<MeshToVolumeModifierData *>(md);
DEG_add_modifier_to_transform_relation(ctx->node, "Mesh to Volume Modifier");
if (mvmd->object) {
DEG_add_object_relation(
ctx->node, mvmd->object, DEG_OB_COMP_GEOMETRY, "Mesh to Volume Modifier");
@@ -197,9 +198,7 @@ static float compute_voxel_size(const MeshToVolumeModifierData *mvmd,
return voxel_size;
}
static Volume *modifyVolume(ModifierData *md,
const ModifierEvalContext *UNUSED(ctx),
Volume *input_volume)
static Volume *modifyVolume(ModifierData *md, const ModifierEvalContext *ctx, Volume *input_volume)
{
#ifdef WITH_OPENVDB
using namespace blender;
@@ -216,7 +215,8 @@ static Volume *modifyVolume(ModifierData *md,
}
BKE_mesh_wrapper_ensure_mdata(mesh);
const float4x4 mesh_to_own_object_space_transform = object_to_convert->obmat;
const float4x4 mesh_to_own_object_space_transform = float4x4(ctx->object->imat) *
float4x4(object_to_convert->obmat);
const float voxel_size = compute_voxel_size(mvmd, mesh_to_own_object_space_transform);
float4x4 mesh_to_index_space_transform;
@@ -263,7 +263,7 @@ static Volume *modifyVolume(ModifierData *md,
return volume;
#else
UNUSED_VARS(md);
UNUSED_VARS(md, ctx);
UNUSED_VARS(compute_voxel_size);
BKE_modifier_set_error(md, "Compiled without OpenVDB");
return input_volume;