154 bool UNUSED(useRenderParams))
166 #define HIGH_POLY_WARNING 10000
167 #define DT_TYPES_AFFECT_MESH \
168 (DT_TYPE_BWEIGHT_VERT | DT_TYPE_BWEIGHT_EDGE | DT_TYPE_CREASE | DT_TYPE_SHARP_EDGE | \
169 DT_TYPE_LNOR | DT_TYPE_SHARP_FACE)
190 &space_transform_data :
193 if (space_transform) {
230 result->runtime.is_original =
false;
247 "Source or destination object has a high polygon count, computation might be slow");
267 uiItemR(sub,
ptr,
"use_object_transform", 0,
"", ICON_ORIENTATION_GLOBAL);
281 uiItemO(layout,
IFACE_(
"Generate Data Layers"), ICON_NONE,
"OBJECT_OT_datalayout_transfer");
320 uiItemR(layout,
ptr,
"layers_vgroup_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
321 uiItemR(layout,
ptr,
"layers_vgroup_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
382 uiItemR(layout,
ptr,
"layers_vcol_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
383 uiItemR(layout,
ptr,
"layers_vcol_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
396 uiItemR(layout,
ptr,
"layers_uv_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
397 uiItemR(layout,
ptr,
"layers_uv_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
435 uiItemR(row,
ptr,
"use_max_distance", 0,
"", ICON_NONE);
438 uiItemR(sub,
ptr,
"max_distance", 0,
"", ICON_NONE);
476 #undef HIGH_POLY_WARNING
477 #undef DT_TYPES_AFFECT_MESH
481 "DataTransferModifierData",
487 ICON_MOD_DATA_TRANSFER,
CustomData interface, see also DNA_customdata_types.h.
@ CDT_MIX_REPLACE_BELOW_THRESHOLD
@ CDT_MIX_REPLACE_ABOVE_THRESHOLD
bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob_src, struct Object *ob_dst, struct Mesh *me_dst, const int data_types, bool use_create, const int map_vert_mode, const int map_edge_mode, const int map_loop_mode, const int map_poly_mode, struct SpaceTransform *space_transform, const bool auto_transform, const float max_distance, const float ray_radius, const float islands_handling_precision, const int fromlayers_select[DT_MULTILAYER_INDEX_MAX], const int tolayers_select[DT_MULTILAYER_INDEX_MAX], const int mix_mode, const float mix_factor, const char *vgroup_name, const bool invert_vgroup, struct ReportList *reports)
int BKE_object_data_transfer_get_dttypes_item_types(const int dtdata_types)
@ DT_MULTILAYER_INDEX_MAX
void BKE_object_data_transfer_dttypes_to_cdmask(const int dtdata_types, struct CustomData_MeshMasks *r_data_masks)
struct ID * BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, const int flag)
void BKE_mesh_remap_calc_source_cddata_masks_from_map_modes(const int vert_mode, const int edge_mode, const int loop_mode, const int poly_mode, struct CustomData_MeshMasks *cddata_mask)
@ MREMAP_MODE_VERT_NEAREST
@ MREMAP_MODE_LOOP_NEAREST_POLYNOR
@ MREMAP_MODE_EDGE_NEAREST
@ MREMAP_MODE_POLY_NEAREST
void(* IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cb_flag)
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_UsesPreview
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, const int flag)
@ eModifierTypeType_NonGeometrical
void BKE_modifier_set_error(const struct Object *ob, struct ModifierData *md, const char *format,...) ATTR_PRINTF_FORMAT(3
char * BKE_reports_string(ReportList *reports, ReportType level)
void BKE_reports_init(ReportList *reports, int flag)
bool BKE_reports_contain(ReportList *reports, ReportType level)
#define BLI_SPACE_TRANSFORM_SETUP(data, local, target)
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)
void DEG_add_customdata_mask(struct DepsNodeHandle *handle, struct Object *object, const struct CustomData_MeshMasks *masks)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
#define CD_MASK_MDEFORMVERT
struct DataTransferModifierData DataTransferModifierData
@ eModifierType_DataTransfer
@ MOD_DATATRANSFER_OBSRC_TRANSFORM
@ MOD_DATATRANSFER_MAP_MAXDIST
@ MOD_DATATRANSFER_INVERT_VGROUP
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static void vertex_vgroup_panel_draw(const bContext *UNUSED(C), Panel *panel)
#define DT_TYPES_AFFECT_MESH
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
static void face_panel_draw(const bContext *UNUSED(C), Panel *panel)
static bool isDisabled(const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams))
static void face_corner_vcol_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void vertex_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
static bool dependsOnNormals(ModifierData *md)
static void face_corner_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
static void face_corner_uv_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void advanced_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void edge_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void edge_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
static void face_corner_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
static void face_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
#define HIGH_POLY_WARNING
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
ModifierTypeInfo modifierType_DataTransfer
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
static void vertex_panel_draw(const bContext *UNUSED(C), Panel *panel)
static Mesh * modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *me_mod)
static void requiredDataMask(Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
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)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
StructRNA RNA_DataTransferModifier
uiLayout * uiLayoutRowWithHeading(uiLayout *layout, bool align, const char *heading)
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
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
struct Depsgraph * depsgraph
struct DepsNodeHandle * node