35 #include "RNA_prototypes.h"
139 bool UNUSED(useRenderParams))
151 #define DT_TYPES_AFFECT_MESH \
152 (DT_TYPE_BWEIGHT_VERT | DT_TYPE_BWEIGHT_EDGE | DT_TYPE_CREASE | DT_TYPE_SHARP_EDGE | \
153 DT_TYPE_LNOR | DT_TYPE_SHARP_FACE)
174 &space_transform_data :
177 if (space_transform) {
214 result->runtime.is_original =
false;
244 uiItemR(sub,
ptr,
"use_object_transform", 0,
"", ICON_ORIENTATION_GLOBAL);
258 uiItemO(layout,
IFACE_(
"Generate Data Layers"), ICON_NONE,
"OBJECT_OT_datalayout_transfer");
297 uiItemR(layout,
ptr,
"layers_vgroup_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
298 uiItemR(layout,
ptr,
"layers_vgroup_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
361 uiItemR(layout,
ptr,
"layers_vcol_vert_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
362 uiItemR(layout,
ptr,
"layers_vcol_vert_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
377 uiItemR(layout,
ptr,
"layers_vcol_loop_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
378 uiItemR(layout,
ptr,
"layers_vcol_loop_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
391 uiItemR(layout,
ptr,
"layers_uv_select_src", 0,
IFACE_(
"Layer Selection"), ICON_NONE);
392 uiItemR(layout,
ptr,
"layers_uv_select_dst", 0,
IFACE_(
"Layer Mapping"), ICON_NONE);
430 uiItemR(row,
ptr,
"use_max_distance", 0,
"", ICON_NONE);
433 uiItemR(sub,
ptr,
"max_distance", 0,
"", ICON_NONE);
474 #undef DT_TYPES_AFFECT_MESH
478 "DataTransferModifierData",
480 &RNA_DataTransferModifier,
484 ICON_MOD_DATA_TRANSFER,
CustomData interface, see also DNA_customdata_types.h.
@ CDT_MIX_REPLACE_BELOW_THRESHOLD
@ CDT_MIX_REPLACE_ABOVE_THRESHOLD
@ DT_MULTILAYER_INDEX_MAX
int BKE_object_data_transfer_get_dttypes_item_types(int dtdata_types)
void BKE_object_data_transfer_dttypes_to_cdmask(int dtdata_types, struct CustomData_MeshMasks *r_data_masks)
bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph, struct Scene *scene, 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_poly_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)
struct ID * BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, int flag)
void BKE_mesh_remap_calc_source_cddata_masks_from_map_modes(int vert_mode, int edge_mode, int loop_mode, 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, int flag)
@ eModifierTypeType_NonGeometrical
void BKE_modifier_set_error(const struct Object *ob, struct 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_init(ReportList *reports, int flag)
#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
@ 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 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)
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 vert_vcol_panel_draw(const bContext *UNUSED(C), Panel *panel)
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)
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