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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user