diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-19 13:20:32 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-19 13:59:47 +0300 |
commit | 908a2742403b279cd6dfa5c27acb76d68d3f1523 (patch) | |
tree | 8a236ae1edaccb9730aa8099388f2eb7c6175da1 /source/blender/blenkernel/BKE_object.h | |
parent | bc8f2e9ee42be09ff196c2e427f52042cff97197 (diff) |
Fix T59237: Instancing on a path doesn't do anything
This commit makes it so curve path parent solving accepts an explicit
arguments for both time and curve speed flag, making it so we don't
have to mock around with scene's frame.
One unfortunate issue still is that if the instancing object is used
for something else, we might be running into a threading conflict.
Possible solution would be to create a temp copy of an object, but
then it will be an issue of preventing drivers from modifying other
datablocks.
At least the original issue is fixed now, and things behave same as
in older Blender version. Additionally, the global variable which
was defining curve speed flag behavior is gone now!
Diffstat (limited to 'source/blender/blenkernel/BKE_object.h')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index fbef5b6485c..0b405b52a17 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -157,8 +157,9 @@ struct Base **BKE_object_pose_base_array_get_unique(struct ViewLayer *view_layer struct Base **BKE_object_pose_base_array_get(struct ViewLayer *view_layer, struct View3D *v3d, unsigned int *r_bases_len); void BKE_object_get_parent_matrix( - struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, - struct Object *par, float parentmat[4][4]); + struct Object *ob, struct Object *par, float parentmat[4][4]); +void BKE_object_get_parent_matrix_for_dupli( + struct Object *ob, struct Object *par, float dupli_ctime, int dupli_transflag, float parentmat[4][4]); void BKE_object_where_is_calc( struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob); void BKE_object_where_is_calc_ex( @@ -166,11 +167,12 @@ void BKE_object_where_is_calc_ex( struct Object *ob, float r_originmat[3][3]); void BKE_object_where_is_calc_time( struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float ctime); +void BKE_object_where_is_calc_time_for_dupli( + struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float ctime, int dupli_transflag); void BKE_object_where_is_calc_time_ex( - struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float ctime, + struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float ctime, int dupli_transflag, struct RigidBodyWorld *rbw, float r_originmat[3][3]); -void BKE_object_where_is_calc_mat4( - struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float obmat[4][4]); +void BKE_object_where_is_calc_mat4(struct Object *ob, float obmat[4][4]); /* possibly belong in own moduke? */ struct BoundBox *BKE_boundbox_alloc_unit(void); @@ -231,7 +233,6 @@ void BKE_object_eval_local_transform( struct Object *ob); void BKE_object_eval_parent( struct Depsgraph *depsgraph, - struct Scene *scene, struct Object *ob); void BKE_object_eval_constraints( struct Depsgraph *depsgraph, |