115 Slot &first_slot = pose_action->slot_add();
117 keyframe_data->keyframe_insert(bmain, first_slot, {
"location", 0}, {1, 10}, key_settings);
120 obj_empty, pose_action, first_slot.
handle, &eval_context);
126 Slot &first_slot = pose_action->slot_add();
128 keyframe_data->keyframe_insert(
129 bmain, first_slot, {
"pose.bones[\"BoneA\"].location", 0}, {1, 10}, key_settings);
130 keyframe_data->keyframe_insert(
131 bmain, first_slot, {
"pose.bones[\"BoneB\"].location", 1}, {1, 5}, key_settings);
136 bone_a->
loc[1] = 1.0;
137 bone_a->
loc[2] = 2.0;
141 obj_armature_a, pose_action, first_slot.
handle, &eval_context);
151 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
152 Slot &slot_b = pose_action->slot_add_for_id(obj_armature_b->id);
154 keyframe_data->keyframe_insert(
155 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
156 keyframe_data->keyframe_insert(
157 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
159 keyframe_data->keyframe_insert(
160 bmain, slot_b, {
"pose.bones[\"BoneA\"].location", 1}, {1, 10}, key_settings);
161 keyframe_data->keyframe_insert(
162 bmain, slot_b, {
"pose.bones[\"BoneB\"].location", 1}, {1, 10}, key_settings);
172 obj_armature_a, pose_action, slot_a.
handle, &eval_context);
180 EXPECT_EQ(arm_b_bone_a->
loc[1], 0.0) <<
"Other armature should not be affected yet.";
183 obj_armature_b, pose_action, slot_b.
handle, &eval_context);
189 EXPECT_EQ(arm_a_bone_a->
loc[0], 5.0) <<
"Other armature should not be affected.";
193 obj_armature_a, pose_action, slot_b.
handle, &eval_context);
196 <<
"Applying the same pose should result in the same values.";
201 Slot &first_slot = pose_action->slot_add();
202 keyframe_data->keyframe_insert(
203 bmain, first_slot, {
"pose.bones[\"BoneA\"].location", 0}, {1, 10}, key_settings);
204 keyframe_data->keyframe_insert(
205 bmain, first_slot, {
"pose.bones[\"BoneB\"].location", 1}, {1, 5}, key_settings);
210 bone_a->
loc[0] = 0.0;
211 bone_b->
loc[1] = 0.0;
215 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 1.0);
217 EXPECT_NEAR(bone_a->
loc[0], 10.0, 0.001);
218 EXPECT_NEAR(bone_b->
loc[1], 5.0, 0.001);
220 bone_a->
loc[0] = 0.0;
221 bone_b->
loc[1] = 0.0;
224 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 0.5);
226 EXPECT_NEAR(bone_a->
loc[0], 5.0, 0.001);
227 EXPECT_NEAR(bone_b->
loc[1], 2.5, 0.001);
229 bone_a->
loc[0] = 0.0;
230 bone_b->
loc[1] = 0.0;
237 obj_armature_a, pose_action, first_slot.
handle, &eval_context, 0.5);
239 EXPECT_NEAR(bone_a->
loc[0], 5.0, 0.001);
240 EXPECT_NEAR(bone_b->
loc[1], 0.0, 0.001);
245 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
246 Slot &slot_b = pose_action->slot_add_for_id(obj_armature_b->id);
248 keyframe_data->keyframe_insert(
249 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
250 keyframe_data->keyframe_insert(
251 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
253 keyframe_data->keyframe_insert(
254 bmain, slot_b, {
"pose.bones[\"BoneA\"].location", 1}, {1, 10}, key_settings);
255 keyframe_data->keyframe_insert(
256 bmain, slot_b, {
"pose.bones[\"BoneB\"].location", 1}, {1, 10}, key_settings);
265 arm_a_bone_a, arm_a_bone_b, arm_b_bone_a, arm_b_bone_b};
269 pose_bone->loc[0] = 0.0;
270 pose_bone->loc[1] = 0.0;
275 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
278 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
279 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
280 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
281 EXPECT_NEAR(arm_b_bone_b->
loc[1], 10, 0.001);
284 pose_bone->loc[0] = 0.0;
285 pose_bone->loc[1] = 0.0;
291 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
294 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
295 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
296 EXPECT_NEAR(arm_b_bone_a->
loc[1], 0, 0.001);
297 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
300 pose_bone->loc[0] = 0.0;
301 pose_bone->loc[1] = 0.0;
308 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
311 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
312 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
313 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
314 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
317 pose_bone->loc[0] = 0.0;
318 pose_bone->loc[1] = 0.0;
322 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 0.5);
325 EXPECT_NEAR(arm_a_bone_a->
loc[0], 2.5, 0.001);
326 EXPECT_NEAR(arm_a_bone_b->
loc[0], 0, 0.001);
327 EXPECT_NEAR(arm_b_bone_a->
loc[1], 5, 0.001);
328 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
331 pose_bone->loc[0] = 0.0;
332 pose_bone->loc[1] = 0.0;
340 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
342 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
343 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
344 EXPECT_NEAR(arm_b_bone_a->
loc[1], 10, 0.001);
345 EXPECT_NEAR(arm_b_bone_b->
loc[1], 0, 0.001);
350 Slot &slot_a = pose_action->slot_add_for_id(obj_armature_a->id);
352 keyframe_data->keyframe_insert(
353 bmain, slot_a, {
"pose.bones[\"BoneA\"].location", 0}, {1, 5}, key_settings);
354 keyframe_data->keyframe_insert(
355 bmain, slot_a, {
"pose.bones[\"BoneB\"].location", 0}, {1, 5}, key_settings);
364 arm_a_bone_a, arm_a_bone_b, arm_b_bone_a, arm_b_bone_b};
368 pose_bone->loc[0] = 0.0;
369 pose_bone->loc[1] = 0.0;
374 {obj_armature_a, obj_armature_b}, *pose_action, &eval_context, 1.0);
378 EXPECT_NEAR(arm_a_bone_a->
loc[0], 5, 0.001);
379 EXPECT_NEAR(arm_a_bone_b->
loc[0], 5, 0.001);
380 EXPECT_NEAR(arm_b_bone_a->
loc[0], 5, 0.001);
381 EXPECT_NEAR(arm_b_bone_b->
loc[0], 5, 0.001);
void BKE_main_free(Main *bmain)