31 #ifdef USE_BVHTREEKDOP
44 #include "RNA_prototypes.h"
60 if (defgrp_index == -1) {
79 selected_indices.
append(i);
82 return selected_indices;
92 selection[i] = (found !=
invert);
106 vertex_group, defgrp_index,
invert);
117 vertex_group, defgrp_index,
invert);
172 uiItemR(layout,
ptr,
"mode", 0,
nullptr, ICON_NONE);
175 uiItemR(layout,
ptr,
"loose_edges", 0,
nullptr, ICON_NONE);
void * CustomData_get_layer(const struct CustomData *data, int type)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_EnableInEditmode
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, int flag)
@ eModifierTypeType_Constructive
#define BLI_assert_unreachable()
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define CD_MASK_MDEFORMVERT
#define DNA_struct_default_get(struct_name)
struct WeldModifierData WeldModifierData
@ MOD_WELD_MODE_CONNECTED
Read Guarded memory(de)allocation.
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)
void modifier_vgroup_ui(uiLayout *layout, PointerRNA *ptr, PointerRNA *ob_ptr, const char *vgroup_prop, const char *invert_vgroup_prop, const char *text)
static Span< MDeformVert > get_vertex_group(const Mesh &mesh, const int defgrp_index)
ModifierTypeInfo modifierType_Weld
static std::optional< Mesh * > calculate_weld(const Mesh &mesh, const WeldModifierData &wmd)
static Vector< int64_t > selected_indices_from_vertex_group(Span< MDeformVert > vertex_group, const int index, const bool invert)
static Array< bool > selection_array_from_vertex_group(Span< MDeformVert > vertex_group, const int index, const bool invert)
static Mesh * modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
static void requiredDataMask(Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
constexpr int64_t size() const
constexpr IndexRange index_range() const
constexpr bool is_empty() const
void append(const T &value)
CCL_NAMESPACE_BEGIN ccl_device float invert(float color, float factor)
std::optional< Mesh * > mesh_merge_by_distance_connected(const Mesh &mesh, Span< bool > selection, float merge_distance, bool only_loose_edges)
std::optional< Mesh * > mesh_merge_by_distance_all(const Mesh &mesh, IndexMask selection, float merge_distance)
int RNA_enum_get(PointerRNA *ptr, const char *name)