113 Slot &first_slot = pose_action->slot_add();
115 keyframe_data->keyframe_insert(bmain, first_slot, {
"location", 0}, {1, 10}, key_settings);
118 obj_empty, pose_action, first_slot.
handle, &eval_context);
124 Slot &first_slot = pose_action->slot_add();
126 keyframe_data->keyframe_insert(
127 bmain, first_slot, {
"pose.bones[\"BoneA\"].location", 0}, {1, 10}, key_settings);
128 keyframe_data->keyframe_insert(
129 bmain, first_slot, {
"pose.bones[\"BoneB\"].location", 1}, {1, 5}, key_settings);
134 bone_a->
loc[1] = 1.0;
135 bone_a->
loc[2] = 2.0;
139 obj_armature_a, pose_action, first_slot.
handle, &eval_context);
149 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
150 Slot &slot_b = pose_action->slot_add_for_id(obj_armature_b->id);
152 keyframe_data->keyframe_insert(
153 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
154 keyframe_data->keyframe_insert(
155 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
157 keyframe_data->keyframe_insert(
158 bmain, slot_b, {
"pose.bones[\"BoneA\"].location", 1}, {1, 10}, key_settings);
159 keyframe_data->keyframe_insert(
160 bmain, slot_b, {
"pose.bones[\"BoneB\"].location", 1}, {1, 10}, key_settings);
170 obj_armature_a, pose_action, slot_a.
handle, &eval_context);
178 EXPECT_EQ(arm_b_bone_a->
loc[1], 0.0) <<
"Other armature should not be affected yet.";
181 obj_armature_b, pose_action, slot_b.
handle, &eval_context);
187 EXPECT_EQ(arm_a_bone_a->
loc[0], 5.0) <<
"Other armature should not be affected.";
191 obj_armature_a, pose_action, slot_b.
handle, &eval_context);
194 <<
"Applying the same pose should result in the same values.";
199 Slot &first_slot = pose_action->slot_add();
200 keyframe_data->keyframe_insert(
201 bmain, first_slot, {
"pose.bones[\"BoneA\"].location", 0}, {1, 10}, key_settings);
202 keyframe_data->keyframe_insert(
203 bmain, first_slot, {
"pose.bones[\"BoneB\"].location", 1}, {1, 5}, key_settings);
208 bone_a->
loc[0] = 0.0;
209 bone_b->
loc[1] = 0.0;
213 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 1.0);
215 EXPECT_NEAR(bone_a->
loc[0], 10.0, 0.001);
216 EXPECT_NEAR(bone_b->
loc[1], 5.0, 0.001);
218 bone_a->
loc[0] = 0.0;
219 bone_b->
loc[1] = 0.0;
222 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 0.5);
224 EXPECT_NEAR(bone_a->
loc[0], 5.0, 0.001);
225 EXPECT_NEAR(bone_b->
loc[1], 2.5, 0.001);
227 bone_a->
loc[0] = 0.0;
228 bone_b->
loc[1] = 0.0;
235 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 0.5);
237 EXPECT_NEAR(bone_a->
loc[0], 5.0, 0.001);
238 EXPECT_NEAR(bone_b->
loc[1], 0.0, 0.001);
243 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
244 Slot &slot_b = pose_action->slot_add_for_id(obj_armature_b->id);
246 keyframe_data->keyframe_insert(
247 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
248 keyframe_data->keyframe_insert(
249 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
251 keyframe_data->keyframe_insert(
252 bmain, slot_b, {
"pose.bones[\"BoneA\"].location", 1}, {1, 10}, key_settings);
253 keyframe_data->keyframe_insert(
254 bmain, slot_b, {
"pose.bones[\"BoneB\"].location", 1}, {1, 10}, key_settings);
263 arm_a_bone_a, arm_a_bone_b, arm_b_bone_a, arm_b_bone_b};
267 pose_bone->loc[0] = 0.0;
268 pose_bone->loc[1] = 0.0;
273 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
276 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
277 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
278 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
279 EXPECT_NEAR(arm_b_bone_b->
loc[1], 10, 0.001);
282 pose_bone->loc[0] = 0.0;
283 pose_bone->loc[1] = 0.0;
289 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
292 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
293 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
294 EXPECT_NEAR(arm_b_bone_a->
loc[1], 0, 0.001);
295 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
298 pose_bone->loc[0] = 0.0;
299 pose_bone->loc[1] = 0.0;
306 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
309 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
310 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
311 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
312 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
315 pose_bone->loc[0] = 0.0;
316 pose_bone->loc[1] = 0.0;
320 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 0.5);
323 EXPECT_NEAR(arm_a_bone_a->
loc[0], 2.5, 0.001);
324 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
325 EXPECT_NEAR(arm_b_bone_a->
loc[1], 5, 0.001);
326 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
329 pose_bone->loc[0] = 0.0;
330 pose_bone->loc[1] = 0.0;
338 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
340 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
341 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
342 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
343 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
348 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
350 keyframe_data->keyframe_insert(
351 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
352 keyframe_data->keyframe_insert(
353 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
362 arm_a_bone_a, arm_a_bone_b, arm_b_bone_a, arm_b_bone_b};
366 pose_bone->loc[0] = 0.0;
367 pose_bone->loc[1] = 0.0;
372 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
376 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
377 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
378 EXPECT_NEAR(arm_b_bone_a->
loc[0], 5, 0.001);
379 EXPECT_NEAR(arm_b_bone_b->
loc[0], 5, 0.001);
void BKE_main_free(Main *bmain)