Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/camera.c
| Context not available. | |||||
| #include "BLI_string.h" | #include "BLI_string.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "BKE_action.h" | |||||
| #include "BKE_animsys.h" | #include "BKE_animsys.h" | ||||
| #include "BKE_camera.h" | #include "BKE_camera.h" | ||||
| #include "BKE_idtype.h" | #include "BKE_idtype.h" | ||||
| Context not available. | |||||
| if (cam->dof.focus_object) { | if (cam->dof.focus_object) { | ||||
| float view_dir[3], dof_dir[3]; | float view_dir[3], dof_dir[3]; | ||||
| normalize_v3_v3(view_dir, ob->obmat[2]); | normalize_v3_v3(view_dir, ob->obmat[2]); | ||||
| sub_v3_v3v3(dof_dir, ob->obmat[3], cam->dof.focus_object->obmat[3]); | bPoseChannel *pchan = BKE_pose_channel_find_name(cam->dof.focus_object->pose, cam->dof.focus_subtarget); | ||||
| if (pchan) { | |||||
| float posemat[4][4]; | |||||
| mul_m4_m4m4(posemat, cam->dof.focus_object->obmat, pchan->pose_mat); | |||||
| sub_v3_v3v3(dof_dir, ob->obmat[3], posemat[3]); | |||||
| } | |||||
| else { | |||||
| sub_v3_v3v3(dof_dir, ob->obmat[3], cam->dof.focus_object->obmat[3]); | |||||
| } | |||||
| return fabsf(dot_v3v3(view_dir, dof_dir)); | return fabsf(dot_v3v3(view_dir, dof_dir)); | ||||
| } | } | ||||
| return cam->dof.focus_distance; | return cam->dof.focus_distance; | ||||
| Context not available. | |||||