exports.rotate_eye_camera = function(camobj, phi, theta, phi_is_abs, theta_is_abs) { if (!camera.is_eye_camera(camobj)) { m_print.error("rotate_eye_camera(): wrong object"); return; } camera.rotate_eye_camera(camobj, phi, theta, phi_is_abs, theta_is_abs); transform.update_transform(camobj); m_phy.sync_transform(camobj); }
/** * uses _vec2_tmp, _vec2_tmp_2, _quat4_tmp */ function clamp_orientation(obj, cons) { var quat = obj._render.quat; var p_quat = cons.obj_parent._render.quat; var quat_base = m_quat.multiply(p_quat, cons.rotation_offset, _quat4_tmp); var base_angles = m_cam.get_camera_angles_from_quat(quat_base, _vec2_tmp); var curr_angles = m_cam.get_camera_angles_from_quat(quat, _vec2_tmp_2); var d_phi = m_util.calc_returning_angle(curr_angles[0], base_angles[0] + cons.clamp_right, base_angles[0] + cons.clamp_left); var d_theta = m_util.calc_returning_angle(curr_angles[1], base_angles[1] + cons.clamp_down, base_angles[1] + cons.clamp_up); m_cam.rotate_eye_camera(obj, d_phi, d_theta); }
exports.rotate_camera = function(camobj, phi, theta, phi_is_abs, theta_is_abs) { var move_style = exports.get_move_style(camobj); switch (move_style) { case camera.MS_STATIC: case camera.MS_ANIMATION: break; case camera.MS_TARGET_CONTROLS: camera.rotate_target_camera(camobj, phi, theta, phi_is_abs, theta_is_abs); break; case camera.MS_EYE_CONTROLS: camera.rotate_eye_camera(camobj, phi, theta, phi_is_abs, theta_is_abs); break; case camera.MS_HOVER_CONTROLS: camera.rotate_hover_camera(camobj, phi, theta, phi_is_abs, theta_is_abs); break; default: m_print.error("rotate_camera(): Wrong object"); break; } transform.update_transform(camobj); m_phy.sync_transform(camobj); }