diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-01-05 14:27:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-01-05 14:48:12 +0300 |
commit | 105d385e4b73f353350a3a1894eb0d9e933130c3 (patch) | |
tree | 601a0689e7caeeae235a45dc9f06266ab5a5176a /source/blender/blenkernel/BKE_mesh_mirror.h | |
parent | 724110487721226812a111cb147b85622f2c19e4 (diff) |
Fix T84364: Sculpt symmetrize fails with shape keys
Use the BMesh symmetrize operator instead of using the modifier code.
While we could support shape-keys with the existing code used by the
mirror modifier, we'd need to add code-paths for evaluated mesh & bmesh
conversion to handle shape-keys differently just for this one case,
since we want to avoid copying & processing shape-keys layers for
evaluated meshes in general.
Diffstat (limited to 'source/blender/blenkernel/BKE_mesh_mirror.h')
-rw-r--r-- | source/blender/blenkernel/BKE_mesh_mirror.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/source/blender/blenkernel/BKE_mesh_mirror.h b/source/blender/blenkernel/BKE_mesh_mirror.h index 2c6920a18bf..a91f0787e68 100644 --- a/source/blender/blenkernel/BKE_mesh_mirror.h +++ b/source/blender/blenkernel/BKE_mesh_mirror.h @@ -23,27 +23,30 @@ * \ingroup bke */ -#include "BLI_utildefines.h" - #ifdef __cplusplus extern "C" { #endif +struct Main; +struct Mesh; struct MirrorModifierData; -struct ModifierEvalContext; struct Object; -struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(struct MirrorModifierData *mmd, - const struct Mesh *mesh, - int axis, - const float plane_co[3], - float plane_no[3]); - -struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis(struct MirrorModifierData *mmd, - const struct ModifierEvalContext *UNUSED(ctx), - struct Object *ob, - const struct Mesh *mesh, - int axis); +struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(struct MirrorModifierData *mmd, + const struct Mesh *mesh, + int axis, + const float plane_co[3], + float plane_no[3]); + +void BKE_mesh_mirror_apply_mirror_on_axis(struct Main *bmain, + struct Mesh *mesh, + const int axis, + const float dist); + +struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(struct MirrorModifierData *mmd, + struct Object *ob, + const struct Mesh *mesh, + int axis); #ifdef __cplusplus } |