33#include "RNA_prototypes.hh"
119#define DT_TYPES_AFFECT_MESH \
120 (DT_TYPE_BWEIGHT_VERT | DT_TYPE_BWEIGHT_EDGE | DT_TYPE_CREASE | DT_TYPE_SHARP_EDGE | \
121 DT_TYPE_LNOR | DT_TYPE_SHARP_FACE)
141 &space_transform_data :
144 if (space_transform) {
154 if (((
result == mesh) || (me_positions.
data() == result_positions.
data()) ||
155 (me_edges.
data() == result_edges.
data())) &&
189 result->runtime->is_original_bmesh =
false;
213 row = &layout->
row(
true);
215 sub = &row->
row(
true);
221 row = &layout->
row(
false);
230 layout->
op(
"OBJECT_OT_datalayout_transfer",
IFACE_(
"Generate Data Layers"), ICON_NONE);
404 row = &layout->
row(
true,
IFACE_(
"Max Distance"));
406 sub = &row->
row(
true);
453#undef DT_TYPES_AFFECT_MESH
458 "DataTransferModifierData",
460 &RNA_DataTransferModifier,
464 ICON_MOD_DATA_TRANSFER,
CustomData interface, see also DNA_customdata_types.h.
bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph, struct Object *ob_src, struct Object *ob_dst, struct Mesh *me_dst, int data_types, bool use_create, int map_vert_mode, int map_edge_mode, int map_loop_mode, int map_face_mode, struct SpaceTransform *space_transform, bool auto_transform, float max_distance, float ray_radius, float islands_handling_precision, const int fromlayers_select[DT_MULTILAYER_INDEX_MAX], const int tolayers_select[DT_MULTILAYER_INDEX_MAX], int mix_mode, float mix_factor, const char *vgroup_name, bool invert_vgroup, struct ReportList *reports)
void BKE_object_data_transfer_dttypes_to_cdmask(int dtdata_types, struct CustomData_MeshMasks *r_data_masks)
ID * BKE_id_copy_ex(Main *bmain, const ID *id, ID **new_id_p, int flag)
void(*)(void *user_data, Object *ob, ID **idpoin, LibraryForeachIDCallbackFlag cb_flag) IDWalkFunc
void BKE_modifier_copydata_generic(const ModifierData *md, ModifierData *md_dst, int flag)
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_set_error(const Object *ob, ModifierData *md, const char *format,...) ATTR_PRINTF_FORMAT(3
bool BKE_reports_contain(ReportList *reports, eReportType level)
char * BKE_reports_string(ReportList *reports, eReportType level)
void BKE_reports_free(ReportList *reports)
void BKE_reports_init(ReportList *reports, int flag)
#define BLI_SPACE_TRANSFORM_SETUP(data, local, target)
void DEG_add_depends_on_transform_relation(DepsNodeHandle *node_handle, const char *description)
void DEG_add_customdata_mask(DepsNodeHandle *handle, Object *object, const CustomData_MeshMasks *masks)
void DEG_add_object_relation(DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
#define CD_MASK_MDEFORMVERT
@ DT_MULTILAYER_INDEX_MAX
@ MREMAP_MODE_VERT_NEAREST
@ MREMAP_MODE_LOOP_NEAREST_POLYNOR
@ MREMAP_MODE_EDGE_NEAREST
@ MREMAP_MODE_POLY_NEAREST
@ CDT_MIX_REPLACE_BELOW_THRESHOLD
@ CDT_MIX_REPLACE_ABOVE_THRESHOLD
@ MOD_DATATRANSFER_OBSRC_TRANSFORM
@ MOD_DATATRANSFER_MAP_MAXDIST
@ MOD_DATATRANSFER_INVERT_VGROUP
@ eModifierType_DataTransfer
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
static void panel_register(ARegionType *region_type)
static void required_data_mask(ModifierData *, CustomData_MeshMasks *r_cddata_masks)
static void panel_draw(const bContext *, Panel *panel)
static void foreach_ID_link(ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
static Mesh * modify_mesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
static void init_data(ModifierData *md)
static void edge_panel_draw_header(const bContext *, Panel *panel)
static void face_corner_panel_draw_header(const bContext *, Panel *panel)
static void vertex_panel_draw_header(const bContext *, Panel *panel)
static void panel_register(ARegionType *region_type)
#define DT_TYPES_AFFECT_MESH
static void vertex_panel_draw(const bContext *, Panel *panel)
static void face_corner_panel_draw(const bContext *, Panel *panel)
static void face_corner_vcol_panel_draw(const bContext *, Panel *panel)
static void vertex_vgroup_panel_draw(const bContext *, Panel *panel)
static void face_corner_uv_panel_draw(const bContext *, Panel *panel)
static void face_panel_draw_header(const bContext *, Panel *panel)
static void vert_vcol_panel_draw(const bContext *, Panel *panel)
static Mesh * modify_mesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *me_mod)
static void advanced_panel_draw(const bContext *, Panel *panel)
static void face_panel_draw(const bContext *, Panel *panel)
static void panel_draw(const bContext *, Panel *panel)
static void required_data_mask(ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
static void foreach_ID_link(ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
ModifierTypeInfo modifierType_DataTransfer
static void edge_panel_draw(const bContext *, Panel *panel)
static void update_depsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
void modifier_vgroup_ui(uiLayout *layout, PointerRNA *ptr, PointerRNA *ob_ptr, const StringRefNull vgroup_prop, const std::optional< StringRefNull > invert_vgroup_prop, const std::optional< StringRefNull > text)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_error_message_draw(uiLayout *layout, PointerRNA *ptr)
constexpr const T * data() const
static void update_depsgraph(tGraphSliderOp *gso)
void MEM_freeN(void *vmemh)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
struct Object * ob_source
void use_property_decorate_set(bool is_sep)
void active_set(bool active)
uiLayout & row(bool align)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void use_property_split_set(bool value)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)