diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-10-16 22:28:22 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-10-16 22:56:42 +0300 |
commit | 8172712841975014e28219da91a41c7c5b074d5a (patch) | |
tree | 876c6683bab9c6d2759293baf317dd41805d0733 /source/blender/blenkernel/intern/data_transfer_intern.h | |
parent | a88ae6fa708ff099410c035e022eacbc62d87bea (diff) |
Fix T46508: data_transfer of normals fails in case objects are transformed.
The final stage of the process (copying/interpolating new dst cddata from src cddata)
was simply broken in normal case, where we need to convert from source to destination
object space.
This patch is a bit verbose, but I cannot see how to avoid it really.
To think this code is in master since over 6 months and it only gets reported now... :/
Diffstat (limited to 'source/blender/blenkernel/intern/data_transfer_intern.h')
-rw-r--r-- | source/blender/blenkernel/intern/data_transfer_intern.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/data_transfer_intern.h b/source/blender/blenkernel/intern/data_transfer_intern.h index 501b749b464..352eedc6ec2 100644 --- a/source/blender/blenkernel/intern/data_transfer_intern.h +++ b/source/blender/blenkernel/intern/data_transfer_intern.h @@ -45,7 +45,7 @@ void data_transfer_layersmapping_add_item( const float mix_factor, const float *mix_weights, const void *data_src, void *data_dst, const int data_src_n, const int data_dst_n, const size_t elem_size, const size_t data_size, const size_t data_offset, const uint64_t data_flag, - cd_datatransfer_interp interp); + cd_datatransfer_interp interp, void *interp_data); /* Type-specific. */ @@ -55,4 +55,10 @@ bool data_transfer_layersmapping_vgroups( struct Object *ob_src, struct Object *ob_dst, struct CustomData *cd_src, struct CustomData *cd_dst, const bool use_dupref_dst, const int fromlayers, const int tolayers); +/* Defined in customdata.c */ +void customdata_data_transfer_interp_normal_normals( + const CustomDataTransferLayerMap *laymap, void *data_dst, + const void **sources, const float *weights, const int count, + const float mix_factor); + #endif /* __DATA_TRANSFER_INTERN_H__ */ |