From de21ab418d69ca82a07ec7c836b1deca09bbd57f Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Mon, 7 Sep 2020 14:26:00 -0400 Subject: Add a Self option to the Exact boolean modifier. Fixes T52425. With this option, self-intersections in either or both operands will be handled properly (if both sides are piecewise winding number constant, and maybe some other cases too). In the Boolean tool, this flag was there already but the code forced a unary operation in that case; this commit corrects it to make a binary operation. This flag makes the code slower, which is why it is an option and not an always-on thing. --- source/blender/makesdna/DNA_modifier_types.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender/makesdna') diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 2839d826df9..a9f1d5bcfc4 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -863,7 +863,7 @@ typedef struct BooleanModifierData { struct Object *object; char operation; char solver; - char _pad[1]; + char flag; char bm_flag; float double_threshold; } BooleanModifierData; @@ -879,6 +879,10 @@ typedef enum { eBooleanModifierSolver_Exact = 1, } BooleanModifierSolver; +enum { + eBooleanModifierFlag_Self = (1 << 0), +}; + /* bm_flag only used when G_DEBUG. */ enum { eBooleanModifierBMeshFlag_BMesh_Separate = (1 << 0), -- cgit v1.2.3