Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform_convert.c
| Show First 20 Lines • Show All 2,231 Lines • ▼ Show 20 Lines | FOREACH_TRANS_DATA_CONTAINER (t, tc) { | ||||
| if (t->mode != TFM_DUMMY && motionpath_need_update_pose(t->scene, ob)) { | if (t->mode != TFM_DUMMY && motionpath_need_update_pose(t->scene, ob)) { | ||||
| BLI_gset_insert(motionpath_updates, ob); | BLI_gset_insert(motionpath_updates, ob); | ||||
| } | } | ||||
| } | } | ||||
| /* Update motion paths once for all transformed bones in an object. */ | /* Update motion paths once for all transformed bones in an object. */ | ||||
| GSetIterator gs_iter; | GSetIterator gs_iter; | ||||
| GSET_ITER (gs_iter, motionpath_updates) { | GSET_ITER (gs_iter, motionpath_updates) { | ||||
| bool current_frame_only = canceled; | const ePosePathCalcRange range = canceled ? POSE_PATH_CALC_RANGE_CURRENT_FRAME : | ||||
| POSE_PATH_CALC_RANGE_CHANGED; | |||||
| ob = BLI_gsetIterator_getKey(&gs_iter); | ob = BLI_gsetIterator_getKey(&gs_iter); | ||||
| ED_pose_recalculate_paths(C, t->scene, ob, current_frame_only); | ED_pose_recalculate_paths(C, t->scene, ob, range); | ||||
| } | } | ||||
| BLI_gset_free(motionpath_updates, NULL); | BLI_gset_free(motionpath_updates, NULL); | ||||
| } | } | ||||
| else if (t->options & CTX_PAINT_CURVE) { | else if (t->options & CTX_PAINT_CURVE) { | ||||
| /* pass */ | /* pass */ | ||||
| } | } | ||||
| else if (t->options & CTX_SCULPT) { | else if (t->options & CTX_SCULPT) { | ||||
| /* pass */ | /* pass */ | ||||
| ▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | for (int i = 0; i < tc->data_len; i++) { | ||||
| td->ext->orotAxis, | td->ext->orotAxis, | ||||
| td->ext->orotAngle); | td->ext->orotAngle); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| if (motionpath_update) { | if (motionpath_update) { | ||||
| /* Update motion paths once for all transformed objects. */ | /* Update motion paths once for all transformed objects. */ | ||||
| bool current_frame_only = canceled; | const eObjectPathCalcRange range = canceled ? OBJECT_PATH_CALC_RANGE_CURRENT_FRAME : | ||||
| ED_objects_recalculate_paths(C, t->scene, current_frame_only); | OBJECT_PATH_CALC_RANGE_CHANGED; | ||||
| ED_objects_recalculate_paths(C, t->scene, range); | |||||
| } | } | ||||
| } | } | ||||
| clear_trans_object_base_flags(t); | clear_trans_object_base_flags(t); | ||||
| } | } | ||||
| int special_transform_moving(TransInfo *t) | int special_transform_moving(TransInfo *t) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 408 Lines • Show Last 20 Lines | |||||