Blender
V3.3
|
Go to the source code of this file.
Macros | |
Conversion Defines | |
#define | RAD2DEG(_rad) ((_rad) * (180.0 / M_PI)) |
#define | DEG2RAD(_deg) ((_deg) * (M_PI / 180.0)) |
#define | RAD2DEGF(_rad) ((_rad) * (float)(180.0 / M_PI)) |
#define | DEG2RADF(_deg) ((_deg) * (float)(M_PI / 180.0)) |
Definition at line 23 of file BLI_math_rotation.h.
Definition at line 26 of file BLI_math_rotation.h.
Definition at line 200 of file BLI_math_rotation.h.
Definition at line 22 of file BLI_math_rotation.h.
Definition at line 25 of file BLI_math_rotation.h.
typedef enum eEulerRotationOrders eEulerRotationOrders |
enum eEulerRotationOrders |
Enumerator | |
---|---|
EULER_ORDER_DEFAULT | |
EULER_ORDER_XYZ | |
EULER_ORDER_XZY | |
EULER_ORDER_YXZ | |
EULER_ORDER_YZX | |
EULER_ORDER_ZXY | |
EULER_ORDER_ZYX |
Definition at line 312 of file BLI_math_rotation.h.
Definition at line 1919 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), eulO_to_quat(), mul_qt_qtqt(), order, and quat_to_eulO().
Referenced by ElementRotation_ex().
Definition at line 849 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), and t.
Referenced by Quaternion_add().
Definition at line 2046 of file math_rotation.c.
References add_m4_m4m4(), copy_m4_m4(), dot_qtqt(), mul_m4_fl(), DualQuat::quat, DualQuat::scale, DualQuat::scale_weight, and DualQuat::trans.
Referenced by armdef_accumulate_matrix(), and pchan_deform_accumulate().
Returns an angle compatible with angle_compat.
Definition at line 2274 of file math_rotation.c.
References angle(), and angle_wrap_rad().
Referenced by gizmo_bisect_prop_angle_set(), gizmo_spin_prop_axis_angle_set(), gpencil_guide_event_handling(), gpencil_guide_rotate(), and recalcData_edit_armature().
Definition at line 553 of file math_rotation.c.
References BLI_ASSERT_UNIT_QUAT, and saacos().
Referenced by angle_normalized_qtqt(), angle_qt(), and ED_view3d_cursor3d_position_rotation().
Definition at line 568 of file math_rotation.c.
References angle_normalized_qt(), BLI_ASSERT_UNIT_QUAT, q1, and rotation_between_quats_to_quat().
Referenced by angle_qtqt(), and angle_signed_normalized_qtqt().
Definition at line 559 of file math_rotation.c.
References angle_normalized_qt(), and normalize_qt_qt().
Definition at line 580 of file math_rotation.c.
References angle_normalized_qtqt(), normalize_qt_qt(), and q1.
Referenced by angle_signed_qtqt().
Definition at line 602 of file math_rotation.c.
References BLI_ASSERT_UNIT_QUAT, and saacos().
Referenced by angle_signed_qt().
Definition at line 612 of file math_rotation.c.
References angle_normalized_qtqt(), dot_qtqt(), negate_v4_v4(), and q1.
Referenced by ED_view3d_smooth_view_ex().
Definition at line 623 of file math_rotation.c.
References angle_signed_normalized_qt(), and normalize_qt_qt().
Definition at line 632 of file math_rotation.c.
References angle_qtqt(), dot_qtqt(), negate_v4_v4(), and q1.
Referenced by ED_view3d_quat_to_axis_view(), and view_axis_exec().
Definition at line 1254 of file math_rotation.c.
References angle(), cosf, R, and sinf.
Referenced by bm_face_array_uv_rotate_fit_aabb(), C_Matrix_Rotation(), compensate_rotation_center(), edit_text_cache_populate_select(), init_track_for_stabilization(), p_chart_rotate_fit_aabb(), snap_v2_angle(), and stitch_calculate_island_snapping().
Definition at line 2269 of file math_rotation.c.
References angle(), and mod_inline().
Definition at line 2264 of file math_rotation.c.
References angle(), float(), M_PI, and mod_inline().
Referenced by angle_compat_rad(), C_Matrix_Rotation(), dial_ghostarc_get_angles(), expmap_to_quat(), Quaternion_angle_set(), Quaternion_new(), updateDuplicateKinematicConstraintSettings(), and viewrotate_apply().
Definition at line 1136 of file math_rotation.c.
References angle(), axis_angle_normalized_to_mat3_ex(), cosf, R, and sinf.
Referenced by applyNormalRotation(), applyRotationMatrix(), applyTrackballMatrix(), applyTrackballValue(), axis_angle_to_mat3(), bmo_spin_exec(), blender::io::usd::convert_to_z_up(), damptrack_do_transform(), do_kink_spiral(), do_kink_spiral_deform(), do_rotate_brush_task_cb_ex(), gizmo_bisect_prop_angle_set(), gizmo_spin_prop_axis_angle_set(), gpencil_brush_twist_apply(), legacy_vec_roll_to_mat3_normalized(), modifyMesh(), rmat_cache_init(), rmat_cache_update(), blender::math::rotate_around_axis(), transdata_elem_bend(), transdata_elem_rotate(), transdata_elem_trackball(), vec_roll_to_mat3_normalized(), and wm_xr_fly_compute_turn().
void axis_angle_normalized_to_mat3_ex | ( | float | mat[3][3], |
const float | axis[3], | ||
float | angle_sin, | ||
float | angle_cos | ||
) |
axis angle to 3x3 matrix
This takes the angle with sin/cos applied so we can avoid calculating it in some cases.
axis | rotation axis (must be normalized). |
angle_sin | sin(angle) |
angle_cos | cos(angle) |
Definition at line 1101 of file math_rotation.c.
References BLI_ASSERT_UNIT_V3.
Referenced by axis_angle_normalized_to_mat3(), and rotation_between_vecs_to_mat3().
Definition at line 1028 of file math_rotation.c.
References angle(), BLI_ASSERT_UNIT_V3, cosf, mul_v3_v3fl(), r, and sinf.
Referenced by axis_angle_to_quat(), expmap_to_quat(), flip_qt_qt(), pose_solve_roll_chain(), rotation_between_vecs_to_quat(), sculpt_update_brush_delta(), vec_to_quat(), and view_roll_angle().
Axis Angle to Euler Rotation.
Definition at line 1083 of file math_rotation.c.
References angle(), axis_angle_to_quat(), order, and quat_to_eulO().
Referenced by BKE_rotMode_change_values(), object_clear_rot(), pchan_clear_rot(), pose_bone_do_paste(), and protectedAxisAngleBits().
Axis angle to 3x3 matrix - safer version (normalization of axis performed).
Definition at line 1141 of file math_rotation.c.
References angle(), axis_angle_normalized_to_mat3(), nor, normalize_v3_v3(), R, and unit_m3().
Referenced by axis_angle_to_mat4(), BKE_object_rot_to_mat3(), BKE_pchan_rot_to_mat3(), BKE_scene_cursor_rot_to_mat3(), bmo_create_uvsphere_exec(), C_Matrix_Rotation(), ed_editnurb_spin(), ED_view3d_cursor3d_update(), edbm_dupli_extrude_cursor_invoke(), blender::nodes::node_fn_rotate_euler_cc::get_multi_function(), gizmo_mesh_spin_init_refresh(), joint_callback(), blender::nodes::node_geo_curve_primitive_arc_cc::rotate_vector_around_axis(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_around_axis(), splineik_evaluate_bone(), and transform_data_ext_rotate().
Create a 3x3 rotation matrix from a single axis.
Definition at line 1209 of file math_rotation.c.
References angle(), BLI_assert_unreachable, cosf, R, and sinf.
Referenced by axis_angle_to_mat4_single(), C_Matrix_Rotation(), calc_overlap(), EEVEE_lookdev_cache_init(), gizmo2d_xform_invoke_prepare(), modifyMesh(), seq_image_transform_quad_get_ex(), SeqToTransData(), sequencer_image_crop_transform_matrix(), and transform_orientation_matrix_get().
Axis angle to 4x4 matrix - safer version (normalization of axis performed).
Definition at line 1154 of file math_rotation.c.
References angle(), axis_angle_to_mat3(), copy_m4_m3(), R, and unit_m4().
Referenced by constraintob_from_transdata(), TransformReader::dae_rotate_to_mat4(), AnimationImporter::evaluate_animation(), and GPU_matrix_rotate_3fv().
Create a 4x4 rotation matrix from a single axis.
Definition at line 1202 of file math_rotation.c.
References angle(), axis_angle_to_mat3_single(), copy_m4_m3(), and R.
Referenced by blender::io::alembic::ABCTransformWriter::do_write(), image_camera_background_matrix_get(), lookat_m4(), make_duplis_font(), object_warp_calc_view_matrix(), blender::io::alembic::AbcObjectReader::read_matrix(), blender::io::alembic::AbcObjectReader::setupObjectTransform(), UnitConverter::UnitConverter(), and workbench_studiolight_data_update().
Definition at line 1038 of file math_rotation.c.
References angle(), axis_angle_normalized_to_quat(), LIKELY, nor, normalize_v3_v3(), r, and unit_qt().
Referenced by axis_angle_to_eulO(), axis_angle_to_gimbal_axis(), basic_rotate(), bevel_list_apply_tilt(), bevel_list_smooth(), BKE_gpencil_stroke_stretch(), BKE_object_mat3_to_rot(), BKE_rotMode_change_values(), BKE_scene_cursor_rot_to_quat(), bm_edgering_pair_interpolate(), boid_body(), cache_key_incremental_rotation(), TransformReader::dae_rotate_to_mat4(), do_guides(), do_kink(), ED_object_rotation_from_quat(), ElementRotation_ex(), flyApply(), gizmo_ruler_draw(), knifetool_draw_angle(), loc_axisangle_size_to_mat4(), make_bevel_list_3D_minimum_twist(), make_bevel_list_segment_3D(), minimum_twist_between_two_points(), modifyMesh(), pose_bone_do_paste(), psys_get_birth_coords(), psys_get_dupli_path_transform(), Quaternion_angle_set(), Quaternion_axis_vector_set(), Quaternion_new(), rotation_between_vecs_to_quat(), view_axis_exec(), vieworbit_exec(), viewrotate_apply(), viewrotate_apply_snap(), and walkApply().
Definition at line 1266 of file math_rotation.c.
References angle(), BLI_assert, cosf, sinf, and zero_v3().
Referenced by vieworbit_exec(), viewrotate_apply(), walkApply(), wm_xr_basenav_rotation_calc(), and wm_xr_session_base_pose_calc().
Definition at line 1491 of file math_rotation.c.
References fabsf, float(), floorf, and M_PI.
Referenced by Euler_make_compatible(), mat3_normalized_to_compatible_eul(), mat3_normalized_to_compatible_eulO(), and rotlike_evaluate().
Definition at line 85 of file math_rotation.c.
Referenced by invert_qt(), invert_qt_normalized(), and Quaternion_conjugate().
Definition at line 77 of file math_rotation.c.
References q1.
Referenced by rotation_between_quats_to_quat().
Definition at line 2163 of file math_rotation.c.
References r.
Definition at line 33 of file math_rotation.c.
References Freestyle::a.
Referenced by add_pose_transdata(), bevel_list_smooth(), BKE_object_tfm_backup(), BKE_object_tfm_restore(), BKE_pose_copy_pchan_result(), BKE_scene_cursor_quat_to_rot(), BKE_screen_view3d_do_versions_250(), BKE_where_on_path(), bm_edgering_pair_interpolate(), boid_body(), calc_curve_deform(), createTransCursor_view3d(), createTransMBallVerts(), createTransSculpt(), do_path_effectors(), dquat_to_mat4(), ED_object_rotation_from_view(), ED_view3d_cameracontrol_acquire(), ED_view3d_cameracontrol_release(), ED_view3d_cursor3d_position_rotation(), ED_view3d_cursor3d_update(), ED_view3d_lastview_store(), ED_view3d_quat_from_axis_view(), ED_view3d_smooth_view_ex(), fcurves_to_pchan_links_get(), interp_qt_qtqt(), interpolate_pathcache(), invert_qt_qt(), invert_qt_qt_normalized(), metaball_coords_and_quats_apply_with_mat4(), metaball_coords_and_quats_get(), minimum_twist_between_two_points(), modifyMesh(), normalize_qt_qt(), object_clear_rot(), ObjectToTransData(), offset_child(), pose_bone_do_paste(), pose_mirror_info_init(), pose_mirror_info_restore(), pose_slide_apply_quat(), poseAnim_mapping_reset(), psys_cache_edit_paths_iter(), psys_get_birth_coords(), psys_get_from_key(), psys_get_particle_on_path(), psys_path_iter_get(), psys_thread_create_path(), quat_mul_float(), quat_to_compatible_quat(), Quaternion_CreatePyObject(), Quaternion_imatmul(), restoreElement(), rotateBevelPiece(), SCULPT_do_pose_brush(), sculpt_rake_rotate(), transform_data_ext_rotate(), view3d_localview_update_rv3d(), view3d_smooth_view_state_backup(), view3d_smooth_view_state_restore(), viewops_data_create(), viewroll_modal(), viewrotate_apply(), viewrotate_apply_snap(), WM_xr_action_binding_create(), WM_xr_action_state_get(), wm_xr_draw_matrices_create(), wm_xr_navigation_fly_modal(), wm_xr_session_event_create(), WM_xr_session_state_controller_aim_rotation_get(), WM_xr_session_state_controller_grip_rotation_get(), WM_xr_session_state_nav_rotation_get(), WM_xr_session_state_nav_rotation_set(), and wm_xr_session_state_update().
Definition at line 92 of file math_rotation.c.
References Freestyle::a, and usdtokens::b().
Referenced by add_weighted_dq_dq(), angle_signed_normalized_qtqt(), angle_signed_qtqt(), dquat_to_mat4(), interp_qt_qtqt(), invert_qt(), mul_v3m3_dq(), normalize_qt(), quat_to_axis_angle(), quat_to_mat3(), quat_to_mat4(), Quaternion_dot(), Quaternion_magnitude_get(), and rotation_between_quats_to_quat().
Definition at line 2016 of file math_rotation.c.
References copy_qt_qt(), dot_qtqt(), len, mul_m4_m4m4(), mul_qt_fl(), DualQuat::quat, quat_to_mat4(), R, DualQuat::scale, DualQuat::scale_weight, sqrtf, t, and DualQuat::trans.
Referenced by armdef_evaluate().
Definition at line 1317 of file math_rotation.c.
References KDL::cos(), float(), sh, and KDL::sin().
Referenced by ED_object_new_primitive_matrix(), euler_filter_multi_channel(), blender::nodes::node_fn_rotate_euler_cc::get_multi_function(), loc_eul_size_to_mat4(), object_preview_camera_create(), rotate_eul(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_euler(), and blender::bke::tests::TEST().
Definition at line 1343 of file math_rotation.c.
References KDL::cos(), float(), sh, and KDL::sin().
Referenced by BKE_texture_mapping_init().
Definition at line 1442 of file math_rotation.c.
References cosf, sh, and sinf.
Referenced by modifyMesh(), object_clear_rot(), pchan_clear_rot(), pose_bone_do_paste(), protectedQuaternionBits(), and wm_xr_session_base_pose_calc().
Euler Rotation to Axis Angle.
Definition at line 1092 of file math_rotation.c.
References angle(), eulO_to_quat(), order, and quat_to_axis_angle().
Referenced by BKE_rotMode_change_values(), object_clear_rot(), pchan_clear_rot(), pose_bone_do_paste(), and protectedAxisAngleBits().
The matrix is written to as 3 axis vectors.
Definition at line 1897 of file math_rotation.c.
References copy_v3_v3(), eulO_to_mat3(), get_rotation_order_info(), order, R, and zero_v3().
Referenced by gimbal_axis_object(), and gimbal_axis_pose().
Construct 3x3 matrix from Euler angles (in radians).
Definition at line 1670 of file math_rotation.c.
References KDL::cos(), e, float(), get_rotation_order_info(), M, order, R, sh, and KDL::sin().
Referenced by BKE_object_rot_to_mat3(), BKE_pchan_rot_to_mat3(), BKE_scene_cursor_rot_to_mat3(), draw_bone_update_disp_matrix_custom(), ElementRotation_ex(), Euler_rotate(), Euler_to_matrix(), eulO_to_gimbal_axis(), eulO_to_mat4(), joint_callback(), loc_eulO_size_to_mat4(), mathutils_any_to_rotmat(), rotate_eulO(), rotlike_evaluate(), transform_data_ext_rotate(), and transform_evaluate().
Construct 4x4 matrix from Euler angles (in radians).
Definition at line 1747 of file math_rotation.c.
References copy_m4_m3(), e, eulO_to_mat3(), and order.
Referenced by BKE_pchan_minmax(), C_Matrix_LocRotScale(), and constraintob_from_transdata().
Construct quaternion from Euler angles (in radians).
Definition at line 1625 of file math_rotation.c.
References Freestyle::a, KDL::cos(), e, float(), get_rotation_order_info(), order, R, sh, and KDL::sin().
Referenced by add_eul_euleul(), BKE_object_mat3_to_rot(), BKE_rotMode_change_values(), BKE_scene_cursor_rot_to_quat(), Euler_to_quaternion(), eulO_to_axis_angle(), mapping_node_order_flip(), pose_bone_do_paste(), and sub_eul_euleul().
Definition at line 1301 of file math_rotation.c.
References angle(), angle_wrap_rad(), axis_angle_normalized_to_quat(), LIKELY, normalize_v3_v3(), r, and unit_qt().
Referenced by Quaternion_new().
Lens/angle conversion (radians).
Definition at line 2248 of file math_rotation.c.
References atanf.
Referenced by BLI_uvproject_camera_info(), ED_view3d_radius_to_dist(), AnimationExporter::get_modified_export_curve(), lineart_main_load_geometries(), and CamerasExporter::operator()().
Definition at line 2253 of file math_rotation.c.
References tanf.
Referenced by AnimationImporter::convert_to_focal_length(), wm_xr_session_state_update(), and DocumentImporter::writeCamera().
Generic function for implementing slerp (quaternions and spherical vector coords).
t | factor in [0..1] |
cosom | dot product from normalized vectors/quats. |
r_w | calculated weights. |
Definition at line 801 of file math_rotation.c.
References acosf, BLI_assert, eps, fabsf, IN_RANGE_INCL, LIKELY, sinf, and t.
Referenced by interp_qt_qtqt(), interp_v2_v2v2_slerp(), interp_v3_v3v3_slerp(), and Vector_slerp().
Definition at line 823 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), BLI_ASSERT_UNIT_QUAT, copy_qt_qt(), dot_qtqt(), interp_dot_slerp(), negate_v4_v4(), t, and w().
Referenced by animsys_blend_fcurves_quaternion(), bevel_list_smooth(), BKE_where_on_path(), blend_m3_m3m3(), blend_m4_m4m4(), collision_response(), do_kink_spiral(), do_particle_interpolation(), execute_posetree(), interp_m3_m3m3(), interpolate_pathcache(), pose_slide_apply_quat(), psys_get_birth_coords(), ptcache_particle_interpolate(), ptcache_rigidbody_interpolate(), Quaternion_slerp(), rotateBevelPiece(), and view3d_smoothview_apply_ex().
Definition at line 97 of file math_rotation.c.
References conjugate_qt(), dot_qtqt(), and mul_qt_fl().
Referenced by invert_qt_qt(), and Quaternion_invert().
This is just conjugate_qt for cases we know q is unit-length. we could use conjugate_qt directly, but use this function to show intent, and assert if its ever becomes non-unit-length.
Definition at line 115 of file math_rotation.c.
References BLI_ASSERT_UNIT_QUAT, and conjugate_qt().
Referenced by BKE_object_mat3_to_rot(), dvar_eval_rotDiff(), ED_view3d_from_m4(), invert_qt_qt_normalized(), nla_combine_quaternion_get_inverted_lower_values(), nla_combine_quaternion_get_inverted_strip_values(), sub_eul_euleul(), view3d_boxview_sync_axis(), view3d_orbit_apply_dyn_ofs(), view_axis_exec(), and viewrotate_apply_snap().
Definition at line 109 of file math_rotation.c.
References copy_qt_qt(), invert_qt(), and q1.
Definition at line 121 of file math_rotation.c.
References copy_qt_qt(), invert_qt_normalized(), and q1.
Referenced by ED_view3d_distance_set(), ED_view3d_distance_set_from_location(), ElementRotation_ex(), psys_get_birth_coords(), view3d_orbit_apply_dyn_ofs(), viewrotate_apply_snap(), wm_xr_pose_scale_to_imat(), and wm_xr_pose_to_imat().
Definition at line 41 of file math_rotation.c.
bool mat3_from_axis_conversion | ( | int | src_forward, |
int | src_up, | ||
int | dst_forward, | ||
int | dst_up, | ||
float | r_mat[3][3] | ||
) |
Each argument us an axis in ['X', 'Y', 'Z', '-X', '-Y', '-Z'] where the first 2 are a source and the second 2 are the target.
Definition at line 2362 of file math_rotation.c.
References _axis_convert_lut, _axis_convert_matrix, _axis_signed(), ARRAY_SIZE, copy_m3_m3(), and unit_m3().
Referenced by BCMatrix::BCMatrix(), blender::io::stl::importer_main(), mat3_from_axis_conversion_single(), meshcache_do(), and blender::io::obj::transform_object().
Use when the second axis can be guessed.
Definition at line 2394 of file math_rotation.c.
References mat3_from_axis_conversion(), and unit_m3().
Referenced by single_axis_convert().
3x3 matrix to axis angle.
Definition at line 1163 of file math_rotation.c.
References angle(), mat3_normalized_to_quat(), and quat_to_axis_angle().
Referenced by BKE_pchan_mat3_to_rot(), and pivotcon_evaluate().
Definition at line 1543 of file math_rotation.c.
References compatible_eul(), copy_v3_v3(), fabsf, and mat3_normalized_to_eul2().
Referenced by euler_filter_multi_channel(), mat3_to_compatible_eul(), Matrix_to_euler(), and quat_to_compatible_eul().
void mat3_normalized_to_compatible_eulO | ( | float | eul[3], |
const float | old[3], | ||
short | order, | ||
const float | mat[3][3] | ||
) |
Definition at line 1798 of file math_rotation.c.
References compatible_eul(), copy_v3_v3(), fabsf, mat3_normalized_to_eulo2(), and order.
Referenced by BKE_pchan_mat3_to_rot(), mat3_to_compatible_eulO(), mat4_normalized_to_compatible_eulO(), mat4_to_compatible_eulO(), Matrix_to_euler(), and quat_to_compatible_eulO().
Definition at line 1400 of file math_rotation.c.
References copy_v3_v3(), fabsf, and mat3_normalized_to_eul2().
Referenced by ED_object_add_generic_get_opts(), mat3_to_eul(), mat4_normalized_to_eul(), Matrix_to_euler(), and quat_to_eul().
Convert 3x3 matrix to Euler angles (in radians).
Definition at line 1756 of file math_rotation.c.
References copy_v3_v3(), fabsf, mat3_normalized_to_eulo2(), and order.
Referenced by BKE_pchan_mat3_to_rot(), mat3_to_eulO(), mat4_normalized_to_eulO(), mat4_to_eulO(), Matrix_to_euler(), and quat_to_eulO().
Definition at line 272 of file math_rotation.c.
References BLI_ASSERT_UNIT_M3, negate_v4(), normalize_qt(), and sqrtf.
Referenced by BKE_object_mat3_to_rot(), BKE_pchan_mat3_to_rot(), BKE_scene_cursor_mat3_to_rot(), blend_m3_m3m3(), blend_m4_m4m4(), ED_view3d_from_m4(), mat3_normalized_to_axis_angle(), mat3_to_quat(), mat4_decompose(), mat4_normalized_to_quat(), mat4_to_loc_quat(), Matrix_to_quaternion(), Quaternion_rotate(), and test_quat_to_mat_to_quat().
Definition at line 1172 of file math_rotation.c.
References angle(), mat3_to_quat(), and quat_to_axis_angle().
Referenced by BKE_scene_cursor_mat3_to_rot(), and transform_data_ext_rotate().
Definition at line 1564 of file math_rotation.c.
References mat3_normalized_to_compatible_eul(), and normalize_m3_m3().
void mat3_to_compatible_eulO | ( | float | eul[3], |
const float | old[3], | ||
short | order, | ||
const float | mat[3][3] | ||
) |
Definition at line 1822 of file math_rotation.c.
References mat3_normalized_to_compatible_eulO(), normalize_m3_m3(), and order.
Referenced by BKE_scene_cursor_mat3_to_rot(), ElementRotation_ex(), Euler_rotate(), and transform_data_ext_rotate().
Definition at line 1415 of file math_rotation.c.
References mat3_normalized_to_eul(), and normalize_m3_m3().
Referenced by blender::nodes::node_fn_rotate_euler_cc::get_multi_function(), mat4_to_eul(), object_convert_exec(), rotate_eul(), and view3d_interactive_add_modal().
Definition at line 1774 of file math_rotation.c.
References mat3_normalized_to_eulO(), normalize_m3_m3(), and order.
Referenced by BKE_scene_cursor_mat3_to_rot(), blender::io::alembic::copy_m44_axis_swap(), rotate_eulO(), and transform_evaluate().
Definition at line 335 of file math_rotation.c.
References mat3_normalized_to_quat(), and normalize_m3_m3().
Referenced by ED_view3d_cursor3d_position_rotation(), ElementRotation_ex(), execute_posetree(), interp_m3_m3m3(), mat3_to_axis_angle(), mat3_vec_to_roll(), mat4_to_quat(), Matrix_decompose(), modifyMesh(), object_preview_camera_create(), psys_get_birth_coords(), transform_data_ext_rotate(), and view_axis_exec().
TODO: don't what this is, but it's not the same as mat3_to_quat.
Definition at line 361 of file math_rotation.c.
References angle(), atan2f, copy_m3_m3(), cosf, invert_m3_m3(), mul_m3_v3(), mul_qt_qtqt(), nor, normalize_m3(), normalize_v3(), q1, quat_to_mat3_no_error(), saacos(), and sinf.
Referenced by boid_body(), psys_cache_edit_paths_iter(), psys_get_birth_coords(), and visualkey_get_values().
4x4 matrix to axis angle.
Definition at line 1182 of file math_rotation.c.
References angle(), mat4_normalized_to_quat(), and quat_to_axis_angle().
void mat4_normalized_to_compatible_eulO | ( | float | eul[3], |
const float | old[3], | ||
short | order, | ||
const float | mat[4][4] | ||
) |
Definition at line 1833 of file math_rotation.c.
References copy_m3_m4(), mat3_normalized_to_compatible_eulO(), and order.
Definition at line 1422 of file math_rotation.c.
References copy_m3_m4(), and mat3_normalized_to_eul().
Convert 4x4 matrix to Euler angles (in radians).
Definition at line 1781 of file math_rotation.c.
References copy_m3_m4(), mat3_normalized_to_eulO(), and order.
Definition at line 345 of file math_rotation.c.
References copy_m3_m4(), and mat3_normalized_to_quat().
Referenced by mat4_normalized_to_axis_angle(), and obmat_to_viewmat().
4x4 matrix to axis angle.
Definition at line 1192 of file math_rotation.c.
References angle(), mat4_to_quat(), and quat_to_axis_angle().
Referenced by constraintRotLim(), and visualkey_get_values().
void mat4_to_compatible_eulO | ( | float | eul[3], |
const float | old[3], | ||
short | order, | ||
const float | mat[4][4] | ||
) |
Definition at line 1844 of file math_rotation.c.
References copy_m3_m4(), mat3_normalized_to_compatible_eulO(), normalize_m3(), and order.
Referenced by rotlike_evaluate().
Definition at line 1958 of file math_rotation.c.
References copy_m3_m4(), copy_m4_m4(), copy_v3_v3(), determinant_m4(), invert_m4_m4(), is_orthonormal_m3(), len_squared_v3(), mat4_to_quat(), mat4_to_size(), mul_m4_m4m4(), mul_m4_series, orthogonalize_m4(), DualQuat::quat, quat_to_mat4(), R, DualQuat::scale, DualQuat::scale_weight, square_f(), t, and DualQuat::trans.
Referenced by armdef_accumulate_matrix(), BKE_pchan_bbone_segments_cache_compute(), and BKE_pose_bone_done().
Definition at line 1428 of file math_rotation.c.
References copy_m3_m4(), and mat3_to_eul().
Referenced by actcon_get_tarmat(), bc_decompose(), and blender::float4x4::to_euler().
Definition at line 1790 of file math_rotation.c.
References copy_m3_m4(), mat3_normalized_to_eulO(), normalize_m3(), and order.
Referenced by BKE_driver_target_matrix_to_rot_channels(), childof_evaluate(), constraintRotLim(), pivotcon_evaluate(), rotlike_evaluate(), rotlimit_evaluate(), and visualkey_get_values().
Definition at line 353 of file math_rotation.c.
References copy_m3_m4(), and mat3_to_quat().
Referenced by bc_decompose(), bc_rotate_from_reference_quat(), BKE_driver_target_matrix_to_rot_channels(), BKE_mball_transform(), constraintRotLim(), dvar_eval_rotDiff(), execute_posetree(), mat4_to_axis_angle(), mat4_to_dquat(), psys_get_birth_coords(), BCQuat::rotate_to(), AnimationImporter::translate_animation_OLD(), wm_xr_navigation_fly_modal(), and wm_xr_navigation_grab_apply().
Simple multiply.
Definition at line 127 of file math_rotation.c.
Referenced by dquat_to_mat4(), invert_qt(), normalize_dq(), normalize_qt(), object_clear_rot(), pchan_clear_rot(), protectedQuaternionBits(), quat_mul_float(), Quaternion_angle_set(), Quaternion_axis_vector_set(), Quaternion_imul(), Quaternion_make_compatible(), Quaternion_negate(), Quaternion_rotate(), rotation_between_quats_to_quat(), and test_quat_to_mat_to_quat().
Definition at line 46 of file math_rotation.c.
References Freestyle::a, and usdtokens::b().
Referenced by add_eul_euleul(), axis_set_view(), basic_rotate(), bc_rotate_from_reference_quat(), bevel_list_apply_tilt(), bevel_list_smooth(), BKE_mball_transform(), BKE_object_mat3_to_rot(), bm_edgering_pair_interpolate(), cache_key_incremental_rotation(), calc_curve_deform(), dvar_eval_rotDiff(), ED_object_rotation_from_quat(), ED_view3d_cursor3d_position_rotation(), ElementRotation_ex(), flyApply(), interpolate_pathcache(), make_bevel_list_3D_minimum_twist(), make_bevel_list_segment_3D(), mat3_to_quat_is_ok(), minimum_twist_between_two_points(), modifyMesh(), nla_combine_quaternion(), nla_combine_quaternion_get_inverted_lower_values(), nla_combine_quaternion_get_inverted_strip_values(), psys_get_birth_coords(), psys_path_iter_get(), psys_thread_create_path(), quat_apply_track(), quat_split_swing_and_twist(), quat_to_compatible_quat(), Quaternion_cross(), Quaternion_imatmul(), Quaternion_matmul(), BCQuat::rotate_to(), rotation_between_quats_to_quat(), sub_eul_euleul(), sub_qt_qtqt(), tri_to_quat_ex(), vec_to_quat(), view3d_orbit_apply_dyn_ofs(), view_axis_exec(), view_roll_angle(), vieworbit_exec(), viewrotate_apply(), viewrotate_apply_snap(), walkApply(), wm_xr_basenav_rotation_calc(), and wm_xr_session_base_pose_calc().
in fact not, but you may want to use a unit quaternion read on...
Shortcut for 'q v q*' when v is actually a quaternion. This removes the need for converting a vector to a quaternion, calculating q's conjugate and converting back to a vector. It also happens to be faster (17+,24* vs * 24+,32*). If q is not a unit quaternion, then v will be both rotated by the same amount as if q was a unit quaternion, and scaled by the square of the length of q.
For people used to python mathutils, its like: def mul_qt_v3(q, v): (q * Quaternion((0.0, v[0], v[1], v[2])) * q.conjugated())[1:]
Definition at line 59 of file math_rotation.c.
References r.
Referenced by axis_angle_to_gimbal_axis(), bevel_list_smooth(), BKE_gpencil_stroke_stretch(), bm_edgering_pair_interpolate(), boid_body(), calc_curve_deform(), curve_create_edit_curves_nor(), do_guides(), do_kink(), do_physical_effector(), draw_view_axis(), DRW_draw_cursor(), ED_view3d_cursor3d_position_rotation(), ED_view3d_distance_set(), ED_view3d_distance_set_from_location(), explodeMesh(), get_effector_data(), gizmo_ruler_draw(), knifetool_draw_angle(), make_bevel_list_3D_minimum_twist(), mball_select_similar_type(), mball_select_similar_type_get(), modifyMesh(), offset_child(), psys_get_birth_coords(), psys_get_dupli_path_transform(), psys_thread_create_path(), Quaternion_matmul(), recalcData_edit_armature(), rotateBevelPiece(), rule_average_speed(), sculpt_rake_rotate(), view3d_boxview_sync_axis(), view3d_orbit_apply_dyn_ofs(), viewrotate_apply_snap(), wm_xr_navigation_reset_exec(), and wm_xr_raycast_update().
Definition at line 2110 of file math_rotation.c.
References copy_m3_m3(), copy_m3_m4(), dot_qtqt(), M, mul_m3_fl(), mul_m3_m3m3(), mul_m3_v3(), mul_m4_v3(), DualQuat::quat, R, r, DualQuat::scale, DualQuat::scale_weight, t, DualQuat::trans, w(), x, y, and z.
Referenced by armature_vert_task_with_dvert().
Definition at line 2085 of file math_rotation.c.
References mul_m4_fl(), mul_qt_fl(), DualQuat::quat, DualQuat::scale, DualQuat::scale_weight, and DualQuat::trans.
Referenced by armature_vert_task_with_dvert(), and armdef_evaluate().
Definition at line 404 of file math_rotation.c.
References dot_qtqt(), len, mul_qt_fl(), and sqrtf.
Referenced by animsys_quaternion_evaluate_fcurves(), basic_rotate(), bevel_list_apply_tilt(), bevel_list_smooth(), BKE_rotMode_change_values(), bm_edgering_pair_interpolate(), calc_curve_deform(), joint_callback(), make_bevel_list_segment_3D(), mat3_normalized_to_quat(), normalize_qt_qt(), ob_parcurve(), pose_bone_do_paste(), pose_slide_apply_quat(), psys_get_birth_coords(), Quaternion_normalize(), sculpt_transform_matrices_init(), view_roll_angle(), vieworbit_exec(), viewrotate_apply(), viewrotate_apply_snap(), and wm_xr_navigation_grab_apply().
Definition at line 419 of file math_rotation.c.
References copy_qt_qt(), normalize_qt(), and r.
Referenced by angle_qt(), angle_qtqt(), angle_signed_qt(), axis_set_view(), BKE_object_mat3_to_rot(), BKE_object_rot_to_mat3(), BKE_pchan_rot_to_mat3(), BKE_scene_cursor_rot_to_mat3(), BKE_scene_cursor_rot_to_quat(), constraintob_from_transdata(), make_duplis_particle_system(), mathutils_any_to_rotmat(), nla_combine_quaternion(), nla_combine_quaternion_get_inverted_lower_values(), nla_combine_quaternion_get_inverted_strip_values(), pchan_clear_rot(), pose_slide_apply_quat(), protectedQuaternionBits(), quat_to_compatible_quat(), quat_to_expmap(), Quaternion_angle_get(), Quaternion_angle_set(), Quaternion_axis_vector_get(), Quaternion_axis_vector_set(), Quaternion_make_compatible(), Quaternion_rotate(), Quaternion_to_axis_angle(), Quaternion_to_euler(), test_quat_to_mat_to_quat(), and transform_data_ext_rotate().
Raise a unit quaternion to the specified power.
Definition at line 147 of file math_rotation.c.
References angle(), BLI_ASSERT_UNIT_QUAT, cosf, normalize_v3_length(), saacos(), and sinf.
Referenced by nla_combine_quaternion(), nla_combine_quaternion_get_inverted_lower_values(), nla_combine_quaternion_get_inverted_strip_values(), and sculpt_rake_rotate().
Definition at line 1021 of file math_rotation.c.
References str.
Axis matches eTrackToAxis_Modes.
Definition at line 2168 of file math_rotation.c.
References BLI_assert, float(), M_SQRT1_2, and mul_qt_qtqt().
Referenced by calc_curve_deform(), followpath_get_tarmat(), and ob_parcurve().
Definition at line 1282 of file math_rotation.c.
References angle(), BLI_ASSERT_UNIT_QUAT, mul_v3_fl(), and quat_to_axis_angle().
Referenced by quat_to_expmap().
Decompose a quaternion into a swing rotation (quaternion with the selected axis component locked at zero), followed by a twist rotation around the axis.
q | input quaternion. |
axis | twist axis in [0,1,2] |
r_swing | if not NULL, receives the swing quaternion. |
r_twist | if not NULL, receives the twist quaternion. |
Definition at line 501 of file math_rotation.c.
References atan2f, BLI_assert, BLI_ASSERT_UNIT_EPSILON, copy_v4_v4(), cosf, fabsf, mul_qt_qtqt(), negate_v4_v4(), sinf, t, and zero_v3().
Referenced by BKE_driver_target_matrix_to_rot_channels(), mat3_vec_to_roll(), Quaternion_to_swing_twist(), and TEST().
Quaternions to Axis Angle.
Definition at line 1050 of file math_rotation.c.
References acosf, angle(), dot_qtqt(), fabsf, is_zero_v3(), and sinf.
Referenced by BKE_object_mat3_to_rot(), BKE_rotMode_change_values(), BKE_scene_cursor_quat_to_rot(), ElementRotation_ex(), eulO_to_axis_angle(), flip_qt_qt(), mat3_normalized_to_axis_angle(), mat3_to_axis_angle(), mat4_normalized_to_axis_angle(), mat4_to_axis_angle(), pose_bone_do_paste(), quat_normalized_to_expmap(), Quaternion_angle_set(), Quaternion_axis_vector_get(), Quaternion_axis_vector_set(), Quaternion_to_axis_angle(), and sculpt_update_brush_delta().
Definition at line 1571 of file math_rotation.c.
References mat3_normalized_to_compatible_eul(), and quat_to_mat3().
Referenced by Quaternion_to_euler(), and BCMatrix::set_transform().
Definition at line 1857 of file math_rotation.c.
References mat3_normalized_to_compatible_eulO(), order, and quat_to_mat3().
Referenced by BKE_object_mat3_to_rot(), BKE_scene_cursor_quat_to_rot(), and Quaternion_to_euler().
Apply the rotation of a to q keeping the values compatible with old. Avoid axis flipping for animated f-curves for eg.
Definition at line 158 of file math_rotation.c.
References Freestyle::a, BLI_ASSERT_UNIT_QUAT, copy_qt_qt(), eps, len_squared_v4v4(), mul_qt_qtqt(), negate_v4_v4(), normalize_qt_qt(), and rotation_between_quats_to_quat().
Referenced by BKE_scene_cursor_mat3_to_rot(), BKE_scene_cursor_quat_to_rot(), pose_slide_apply_quat(), and Quaternion_make_compatible().
Definition at line 1435 of file math_rotation.c.
References mat3_normalized_to_eul(), and quat_to_mat3().
Referenced by ED_object_rotation_from_quat(), blender::nodes::node_geo_distribute_points_on_faces_cc::normal_to_euler_rotation(), object_clear_rot(), pchan_clear_rot(), pose_bone_do_paste(), protectedQuaternionBits(), Quaternion_to_euler(), BCMatrix::set_transform(), wm_xr_basenav_rotation_calc(), and wm_xr_session_base_pose_calc().
Convert quaternion to Euler angles (in radians).
Definition at line 1662 of file math_rotation.c.
References e, mat3_normalized_to_eulO(), order, and quat_to_mat3().
Referenced by add_eul_euleul(), axis_angle_to_eulO(), BKE_object_mat3_to_rot(), BKE_rotMode_change_values(), BKE_scene_cursor_quat_to_rot(), mapping_node_order_flip(), pose_bone_do_paste(), Quaternion_to_euler(), and sub_eul_euleul().
Definition at line 1294 of file math_rotation.c.
References normalize_qt_qt(), and quat_normalized_to_expmap().
Referenced by Quaternion_to_exponential_map().
Definition at line 212 of file math_rotation.c.
References dot_qtqt(), fabsf, and quat_to_mat3_no_error().
Referenced by BKE_crazyspace_build_sculpt(), BKE_curve_deform_co(), BKE_gpencil_stroke_stretch(), BKE_object_rot_to_mat3(), BKE_pchan_rot_to_mat3(), BKE_scene_cursor_rot_to_mat3(), blend_m3_m3m3(), createTransMBallVerts(), ED_view3d_cursor3d_update(), ElementRotation_ex(), execute_posetree(), getTransformOrientation_ex(), interp_m3_m3m3(), joint_callback(), loc_quat_size_to_mat4(), mathutils_any_to_rotmat(), ob_parvert3(), quat_to_compatible_eul(), quat_to_compatible_eulO(), quat_to_eul(), quat_to_eulO(), Quaternion_rotate(), Quaternion_to_matrix(), test_quat_to_mat_to_quat(), transform_convert_mesh_crazyspace_transdata_set(), transform_data_ext_rotate(), tri_to_quat_ex(), vec_to_quat(), viewrotate_apply(), wm_xr_fly_compute_move(), wm_xr_grab_compute_bimanual(), wm_xr_navigation_reset_exec(), and wm_xr_navigation_teleport().
Definition at line 226 of file math_rotation.c.
References dot_qtqt(), double(), fabs(), float(), M_SQRT2, and q1.
Referenced by bc_rotate_from_reference_quat(), C_Matrix_LocRotScale(), constraintob_from_transdata(), TransformReader::dae_rotate_to_mat4(), dquat_to_mat4(), dyntopo_detail_size_edit_invoke(), ED_view3d_to_m4(), followpath_get_tarmat(), init_meta(), make_duplis_particle_system(), mat4_to_dquat(), ob_parcurve(), paint_cursor_drawing_setup_cursor_space(), psys_get_dupli_path_transform(), BCQuat::rotate_to(), SCULPT_cloth_simulation_limits_draw(), SCULPT_do_pose_brush(), sculpt_transform_matrices_init(), view3d_viewmatrix_set(), wm_xr_grab_compute(), wm_xr_grab_update(), wm_xr_navigation_grab_bimanual_state_update(), wm_xr_pose_scale_to_imat(), wm_xr_pose_to_imat(), and wm_xr_pose_to_mat().
Definition at line 1466 of file math_rotation.c.
References BLI_assert, eul_to_mat3(), mat3_to_eul(), and mul_m3_m3m3().
Definition at line 1871 of file math_rotation.c.
References BLI_assert, eulO_to_mat3(), mat3_to_eulO(), mul_m3_m3m3(), order, and zero_v3().
Referenced by Euler_rotate_axis(), and rotlike_evaluate().
Definition at line 490 of file math_rotation.c.
References conjugate_qt_qt(), dot_qtqt(), mul_qt_fl(), mul_qt_qtqt(), and q1.
Referenced by angle_normalized_qtqt(), DRW_draw_cursor(), pose_solve_roll_chain(), quat_to_compatible_quat(), and Quaternion_rotation_difference().
Calculate a rotation matrix from 2 normalized vectors.
v1
and v2
must be normalized. Definition at line 425 of file math_rotation.c.
References axis_angle_normalized_to_mat3_ex(), BLI_ASSERT_UNIT_M3, BLI_ASSERT_UNIT_V3, cross_v3_v3v3(), dot_v3v3(), normalize_v3(), ortho_v3_v3(), unit_m3(), v1, and v2.
Referenced by applyFaceProject(), cloth_parallel_transport_hair_frame(), ED_view3d_win_to_3d_on_plane_with_fallback(), blender::ed::sculpt_paint::SlideOperationExecutor::get_slide_transform(), gizmo_mesh_spin_redo_update_orient_axis(), blender::geometry::interpolate_position_with_interpolation(), object_orient_to_location(), transdata_elem_translate(), and wm_gizmo_set_matrix_rotation_from_z_axis__internal().
Definition at line 462 of file math_rotation.c.
References angle(), angle_normalized_v3v3(), axis_angle_normalized_to_quat(), axis_angle_to_quat(), cross_v3_v3v3(), dot_v3v3(), M_PI, normalize_v3(), ortho_v3_v3(), unit_qt(), v1, and v2.
Referenced by calc_curve_deform(), dyntopo_detail_size_edit_invoke(), ED_view3d_cursor3d_position_rotation(), modifyMesh(), paint_cursor_drawing_setup_cursor_space(), pose_solve_ik_chain(), recalcData_edit_armature(), SCULPT_cloth_simulation_limits_draw(), sculpt_update_brush_delta(), Vector_rotation_difference(), and viewrotate_apply_snap().
Utility that performs sinf
& cosf
intended for plotting a 2D circle, where the values of the coordinates with are exactly symmetrical although this favors even numbers as odd numbers can only be symmetrical on a single axis.
Besides adjustments to precision, this function is the equivalent of:
numerator | An integer factor in [0..denominator] (inclusive). |
denominator | The faction denominator (typically the number of segments of the circle). |
r_sin | The resulting sine. |
r_cos | The resulting cosine. |
Definition at line 918 of file math_rotation.c.
References BLI_assert, cosf, float(), M_PI, and sinf.
Referenced by bmo_create_circle_exec(), bmo_create_cone_exec(), bmo_create_uvsphere_exec(), test_sin_cos_from_fraction_accuracy(), and test_sin_cos_from_fraction_symmetry().
Definition at line 1931 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), eulO_to_quat(), invert_qt_normalized(), mul_qt_qtqt(), order, and quat_to_eulO().
Referenced by ElementRotation_ex().
Definition at line 135 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), and mul_qt_qtqt().
Referenced by explodeMesh(), sculpt_transform_matrices_init(), and set_crazy_vertex_quat().
Definition at line 909 of file math_rotation.c.
References Freestyle::a, usdtokens::b(), Freestyle::c, len, normal_tri_v3(), and tri_to_quat_ex().
Referenced by make_bevel_list_3D_tangent(), and ob_parvert3().
void tri_to_quat_ex | ( | float | quat[4], |
const float | v1[3], | ||
const float | v2[3], | ||
const float | v3[3], | ||
const float | no_orig[3] | ||
) |
Same as tri_to_quat() but takes pre-computed normal from the triangle used for ngons when we know their normal.
Definition at line 857 of file math_rotation.c.
References angle(), atan2f, copy_v3_v3(), cosf, invert_m3_m3(), mul_m3_v3(), mul_qt_qtqt(), normal_tri_v3(), normalize_v3(), q1, quat_to_mat3(), saacos(), sinf, sub_v3_v3v3(), v1, v2, and void.
Referenced by get_dupliface_transform_from_coords(), tan_calc_quat_v3(), and tri_to_quat().
Definition at line 19 of file math_rotation.c.
References angle().
Referenced by apply_objects_internal(), applyarmature_transfer_properties(), BKE_pose_channel_ensure(), BKE_pose_rest(), blo_do_versions_250(), object_clear_rot(), and pchan_clear_rot().
Definition at line 27 of file math_rotation.c.
Referenced by AnimationImporter::apply_matrix_curves(), apply_objects_internal(), applyarmature_transfer_properties(), axis_angle_to_quat(), basic_rotate(), BCQuat::BCQuat(), BKE_curve_bevelList_make(), BKE_mball_element_add(), BKE_pose_channel_ensure(), BKE_pose_rest(), blo_do_versions_250(), cache_key_incremental_rotation(), expmap_to_quat(), get_duplivert_transform(), modifyMesh(), nlaevalchan_get_default_values(), object_clear_rot(), offset_child(), particles_fluid_step(), pchan_clear_rot(), pose_solve_translate_chain(), psys_get_birth_coords(), psys_path_iter_get(), psys_thread_create_path(), ptcache_particle_interpolate(), ptcache_particle_read(), Quaternion_CreatePyObject(), Quaternion_identity(), Quaternion_new(), rotation_between_vecs_to_quat(), tan_calc_quat_v3(), vec_to_quat(), view_axis_exec(), wm_xr_navigation_reset_exec(), WM_xr_session_state_controller_aim_rotation_get(), WM_xr_session_state_controller_grip_rotation_get(), WM_xr_session_state_nav_rotation_get(), WM_xr_session_state_navigation_reset(), and WM_xr_session_state_viewer_pose_rotation_get().
Definition at line 2206 of file math_rotation.c.
References BLI_assert, and copy_v3_v3().
Referenced by calc_curve_deform().
Definition at line 645 of file math_rotation.c.
References angle(), atan2f, axis_angle_normalized_to_quat(), BLI_assert, copy_v3_v3(), cosf, eps, fabsf, len, len_v3(), mul_qt_qtqt(), negate_v3_v3(), nor, normalize_v3(), quat_to_mat3(), saacos(), sinf, unit_qt(), and UNLIKELY.
Referenced by BKE_ptcache_make_particle_key(), bm_edgering_pair_interpolate(), get_duplivert_transform(), make_bevel_list_2D(), make_bevel_list_3D_minimum_twist(), make_bevel_list_3D_zup(), make_bevel_list_segment_3D(), make_duplis_particle_system(), blender::nodes::node_geo_distribute_points_on_faces_cc::normal_to_euler_rotation(), psys_get_birth_coords(), Vector_to_track_quat(), and viewrotate_apply_snap().