diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-01-09 23:19:12 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-01-10 02:04:43 +0300 |
commit | 79d8617424daeda01c01924c7067e1be71516ecb (patch) | |
tree | 488fbc977b3615e93d99882cd2d177e333fa36bc /source/blender/makesdna/DNA_modifier_types.h | |
parent | 86159776241aad94301e152d44de59ff382fd3a9 (diff) |
Transfer data: add modifier.
Not much to add, modifier uses same code as operator basically, only key difference
is that modifier will never create data layers itself, you have to use dedicated operator
for that.
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 47782bb3ae1..b1e9fd254e1 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -82,6 +82,7 @@ typedef enum ModifierType { eModifierType_MeshCache = 46, eModifierType_LaplacianDeform = 47, eModifierType_Wireframe = 48, + eModifierType_DataTransfer = 49, NUM_MODIFIER_TYPES } ModifierType; @@ -1367,5 +1368,47 @@ enum { }; +typedef struct DataTransferModifierData { + ModifierData modifier; + + struct Object *ob_source; + + int data_types; /* See DT_TYPE_ enum in ED_object.h */ + + /* See MREMAP_MODE_ enum in BKE_mesh_mapping.h */ + int vmap_mode; + int emap_mode; + int lmap_mode; + int pmap_mode; + + float map_max_distance; + float map_ray_radius; + float islands_precision; + + int pad_i1; + + int layers_select_src[4]; /* DT_MULTILAYER_INDEX_MAX; See DT_FROMLAYERS_ enum in ED_object.h */ + int layers_select_dst[4]; /* DT_MULTILAYER_INDEX_MAX; See DT_TOLAYERS_ enum in ED_object.h */ + + int mix_mode; /* See CDT_MIX_ enum in BKE_customdata.h */ + float mix_factor; + char defgrp_name[64]; /* MAX_VGROUP_NAME */ + + int flags; +} DataTransferModifierData; + +/* DataTransferModifierData.flags */ +enum { + MOD_DATATRANSFER_OBSRC_TRANSFORM = 1 << 0, + MOD_DATATRANSFER_MAP_MAXDIST = 1 << 1, + MOD_DATATRANSFER_INVERT_VGROUP = 1 << 2, + + /* Only for UI really. */ + MOD_DATATRANSFER_USE_VERT = 1 << 28, + MOD_DATATRANSFER_USE_EDGE = 1 << 29, + MOD_DATATRANSFER_USE_LOOP = 1 << 30, + MOD_DATATRANSFER_USE_POLY = 1 << 31, +}; + #endif /* __DNA_MODIFIER_TYPES_H__ */ |