31 #include "RNA_prototypes.h"
77 mmd, ob,
result, 0, use_correct_order_on_merge);
82 mmd, ob,
result, 1, use_correct_order_on_merge);
91 mmd, ob,
result, 2, use_correct_order_on_merge);
149 uiItemR(row,
ptr,
"use_mirror_merge", 0,
"", ICON_NONE);
152 uiItemR(sub,
ptr,
"merge_threshold", 0,
"", ICON_NONE);
154 bool is_bisect_set[3];
158 uiLayoutSetActive(sub, is_bisect_set[0] || is_bisect_set[1] || is_bisect_set[2]);
159 uiItemR(sub,
ptr,
"bisect_threshold", 0,
IFACE_(
"Bisect Distance"), ICON_NONE);
177 uiItemR(sub,
ptr,
"use_mirror_u", 0,
"", ICON_NONE);
186 uiItemR(sub,
ptr,
"use_mirror_v", 0,
"", ICON_NONE);
196 uiItemR(layout,
ptr,
"use_mirror_vertex_groups", 0,
IFACE_(
"Vertex Groups"), ICON_NONE);
208 "MirrorModifierData",
void BKE_id_free(struct Main *bmain, void *idv)
struct Mesh * BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(struct MirrorModifierData *mmd, struct Object *ob, const struct Mesh *mesh, int axis, bool use_correct_order_on_merge)
void(* IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cb_flag)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_UsesPreview
@ eModifierTypeFlag_EnableInEditmode
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, int flag)
@ eModifierTypeType_Constructive
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
void DEG_add_object_relation(struct DepsNodeHandle *node_handle, struct Object *object, eDepsObjectComponentType component, const char *description)
void DEG_add_modifier_to_transform_relation(struct DepsNodeHandle *node_handle, const char *description)
#define DNA_struct_default_get(struct_name)
struct MirrorModifierData MirrorModifierData
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static Mesh * modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
ModifierTypeInfo modifierType_Mirror
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
static Mesh * mirrorModifier__doMirror(MirrorModifierData *mmd, Object *ob, Mesh *mesh)
static void data_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_panel_end(uiLayout *layout, PointerRNA *ptr)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
uiLayout * uiLayoutRowWithHeading(uiLayout *layout, bool align, const char *heading)
void uiLayoutSetActive(uiLayout *layout, bool active)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemS(uiLayout *layout)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
@ UI_ITEM_R_FORCE_BLANK_DECORATE
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
void uiItemDecoratorR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int index)
void uiItemFullR(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, const char *name, int icon)
void RNA_boolean_get_array(PointerRNA *ptr, const char *name, bool *values)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
struct Object * mirror_ob
uint8_t use_correct_order_on_merge
struct DepsNodeHandle * node