Transfer Data: add main core code and operators.
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 9 Jan 2015 18:11:40 +0000 (19:11 +0100)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 9 Jan 2015 18:32:44 +0000 (19:32 +0100)
commitee4453f08369d8cf910a88763bfb14392ea489cf
treee134c9f97feed70bcd0ccfea830cb497af8ac37d
parent67b1412bc956c857843db0551ce1ac426414f7c2
Transfer Data: add main core code and operators.

This add code needed to map a CD data layout from source mesh towards destination one,
and code needed to actually transfer data, using BKE's mesh remap generated data.

This allows to transfer most CD layers (vgroups, vcols, uvs...) as well as fake, boolean ones
(like smooth/sharp edges/faces, etc.). Some types are not yet transferable, mainly
shape keys, this is known TODO.

Data transfer can also use some advanced mixing in some cases (mostly, vgroups and vcols).

Notes:
* New transfer operators transfer data from active object towards selected ones.
* Modifier will be committed separately.
* Old weight transfer code (for vgroups) is kept for now, mostly because it is the only
  usable one in weightpaint mode (it transfers from selected object to active one,
  this is not sensible in Object mode, but needed in WeightPaint one). This will be addressed soon.

Again, heavily reviewed and enhanced by Campbell, thanks!
17 files changed:
release/scripts/startup/bl_ui/space_view3d.py
release/scripts/startup/bl_ui/space_view3d_toolbar.py
source/blender/blenkernel/BKE_customdata.h
source/blender/blenkernel/BKE_deform.h
source/blender/blenkernel/BKE_object_data_transfer.h [new file with mode: 0644]
source/blender/blenkernel/BKE_object_deform.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/customdata.c
source/blender/blenkernel/intern/data_transfer_intern.h [new file with mode: 0644]
source/blender/blenkernel/intern/deform.c
source/blender/blenkernel/intern/object_data_transfer.c [new file with mode: 0644]
source/blender/editors/object/CMakeLists.txt
source/blender/editors/object/object_data_transfer.c [new file with mode: 0644]
source/blender/editors/object/object_intern.h
source/blender/editors/object/object_ops.c
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/intern/rna_modifier.c