|
Blender V5.0
|
#include <Eigen/Core>#include <Eigen/Geometry>#include <algorithm>#include <cmath>Go to the source code of this file.
Functions | |
| static bool | FuzzyZero (double x) |
| static double | Clamp (const double x, const double min, const double max) |
| static Eigen::Matrix3d | CreateMatrix (double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz) |
| static Eigen::Matrix3d | RotationMatrix (double sine, double cosine, int axis) |
| static Eigen::Matrix3d | RotationMatrix (double angle, int axis) |
| static double | EulerAngleFromMatrix (const Eigen::Matrix3d &R, int axis) |
| static double | safe_acos (double f) |
| static Eigen::Vector3d | normalize (const Eigen::Vector3d &v) |
| static double | angle (const Eigen::Vector3d &v1, const Eigen::Vector3d &v2) |
| static double | ComputeTwist (const Eigen::Matrix3d &R) |
| static Eigen::Matrix3d | ComputeTwistMatrix (double tau) |
| static void | RemoveTwist (Eigen::Matrix3d &R) |
| static Eigen::Vector3d | SphericalRangeParameters (const Eigen::Matrix3d &R) |
| static Eigen::Matrix3d | ComputeSwingMatrix (double ax, double az) |
| static Eigen::Vector3d | MatrixToAxisAngle (const Eigen::Matrix3d &R) |
| static bool | EllipseClamp (double &ax, double &az, const double *amin, const double *amax) |
Variables | |
| static const double | IK_EPSILON = 1e-20 |
|
inlinestatic |
Definition at line 117 of file IK_Math.h.
References safe_acos(), and v2.
Referenced by blender::nodes::node_fn_align_euler_to_vector_cc::align_rotations_auto_pivot(), blender::nodes::node_fn_align_rotation_to_vector_cc::align_rotations_auto_pivot(), blender::nodes::node_fn_align_euler_to_vector_cc::align_rotations_fixed_pivot(), blender::nodes::node_fn_align_rotation_to_vector_cc::align_rotations_fixed_pivot(), angle_compat_rad(), angle_signed_on_axis_normalized_v3v3_v3(), angle_signed_on_axis_v3v3_v3(), angle_signed_v2v2_pos(), angle_to_mat2(), angle_wrap_deg(), angle_wrap_rad(), blender::math::AngleCartesianBase< float >::AngleCartesianBase(), blender::ed::transform::applyNormalRotation(), blender::ed::transform::applyRotationValue(), blender::ed::transform::applyTrackballValue(), Light::area(), attr_create_pointiness(), axis_angle_normalized_to_mat3(), axis_angle_normalized_to_quat(), axis_angle_to_eulO(), blender::ed::transform::axis_angle_to_gimbal_axis(), axis_angle_to_mat3(), axis_angle_to_mat3_single(), axis_angle_to_mat4(), axis_angle_to_mat4_single(), axis_angle_to_quat(), axis_angle_to_quat_single(), blender::ed::transform::axisProjection(), background_sun_pdf(), background_sun_sample(), basic_rotate(), blender::ed::transform::Bend(), bevel_quarter_fill(), BKE_brush_sample_masktex(), BKE_brush_sample_tex_3d(), BKE_light_area(), BKE_main_mesh_legacy_convert_auto_smooth(), BKE_maskrasterize_handle_init(), BKE_object_protected_rotation_axisangle_set(), BKE_pchan_protected_rotation_axisangle_set(), BKE_rotMode_change_values(), BKE_tracking_reconstruction_error_message_get(), BKE_tracking_stabilization_data_get(), BKE_tracking_stabilization_data_to_mat4(), BKE_tracking_stabilize_frame(), BKE_uvproject_from_camera(), BLF_rotation(), BLF_str_offset_to_glyph_bounds(), BLI_convexhull_aabb_fit_points_2d(), BLI_dial_angle(), BLI_rctf_clamp_segment(), BLI_rctf_rotate_expand(), BM_edge_calc_face_angle_signed_ex(), bm_edge_is_delimit(), bm_edgering_pair_interpolate(), bm_interior_face_group_calc_cost(), bm_vert_edge_face_angle(), bmo_vert_calc_edge_angle_blended(), boid_body(), blender::compositor::bokeh(), bpy_bmedge_calc_face_angle(), bpy_bmedge_calc_face_angle_signed(), bpy_bmvert_calc_edge_angle(), bsdf_diffuse_toon_eval(), bsdf_diffuse_toon_sample(), bsdf_glossy_toon_eval(), bsdf_glossy_toon_sample(), bsdf_toon_get_intensity(), btAtan2Fast(), btGetAngle(), btNormalizeAnglePositive(), build_emats_stack(), C_Matrix_Rotation(), cache_key_incremental_rotation(), blender::ed::sculpt_paint::brushes::calc_bmesh(), blender::ed::sculpt_paint::calc_brush_local_mat(), blender::ed::sculpt_paint::brushes::calc_faces(), blender::ed::sculpt_paint::brushes::calc_grids(), calc_overlap(), calc_radial_symmetry_feather(), calc_solidify_normals(), blender::seq::calc_wipe_blend(), calculate_autoscale_factor(), blender::geometry::calculate_cone_uvs(), blender::geometry::calculate_cone_verts(), blender::bke::curves::poly::calculate_next_normal(), blender::bke::curves::poly::calculate_normals_minimum(), btTransformUtil::calculateDiffAxisAngle(), btTransformUtil::calculateDiffAxisAngleQuaternion(), btTransformUtil::calculateVelocity(), btTransformUtil::calculateVelocityQuaternion(), camera_stereo3d_model_matrix(), clamp_angle(), blender::ed::transform::clip_uv_transform_rotate(), compensate_rotation_center(), blender::noise::compute_2d_gabor_kernel(), compute_2d_gabor_kernel(), blender::noise::compute_3d_gabor_kernel(), compute_3d_gabor_kernel(), blender::compositor::compute_rotation(), compute_seam_normal(), blender::nodes::node_composite_movieclip_cc::MovieClipOperation::compute_stabilization_data(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_streak_direction(), computeBindWeights(), connection_node_mat(), convexhull_aabb_canonical_angle(), convexhull_aabb_fit_hull_2d(), blender::nodes::node_geo_curve_primitive_arc_cc::create_arc_curve_from_points(), blender::bke::create_auto_smooth_modifier(), blender::nodes::node_geo_mesh_primitive_circle_cc::create_circle_mesh(), blender::bke::tests::GreasePencilInterpolate::create_test_shape(), cubic_tangent_factor_circle_v3(), blender::ed::sculpt_paint::cursor_draw_point_with_symmetry(), curve_bevel_make_full_circle(), LightManager::device_update_lights(), dial_ghostarc_draw_helpline(), do_guides(), blender::ed::sculpt_paint::do_radial_symmetry(), blender::ed::sculpt_paint::brushes::do_rotate_brush(), do_twist(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_matrix_template(), btIDebugDraw::drawArc(), libmv::DrawEllipse(), DRW_text_edit_mesh_measure_stats(), dvar_eval_rotDiff(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_parallel_lines_draw(), ED_space_clip_get_stable_buffer(), ED_view3d_radius_to_dist(), ED_view3d_radius_to_dist_persp(), edbm_dupli_extrude_cursor_invoke(), edbm_fill_grid_prepare(), edbm_spin_exec(), blender::math::Euler3Base< float >::Euler3Base(), Euler_rotate_axis(), blender::math::EulerXYZBase< float >::EulerXYZBase(), eulO_to_axis_angle(), blender::math::QuaternionBase< T >::expmap(), expmap_to_quat(), blender::geometry::extend_curve_curved(), extrawindow_spin_cursor(), btAngularLimit::fit(), flip_qt_qt(), blender::math::from_triangle(), blender::math::from_vector(), gearGL(), gearGL(), blender::ed::greasepencil::generate_arc_from_point_to_point(), blender::nodes::node_fn_compare_cc::get_multi_function(), blender::nodes::node_fn_rotate_euler_cc::get_multi_function(), blender::nodes::node_shader_vector_rotate_cc::get_multi_function(), blender::compositor::get_regular_polygon_vertex_position(), blender::nodes::node_geo_input_mesh_edge_angle_cc::SignedAngleFieldInput::get_varray_for_context(), blender::ed::space_node::viewer_linking::get_viewer_node_position_candidates(), getHingeAngle(), KDL::Rotation::GetRotAngle(), gizmo_bisect_prop_angle_get(), gizmo_bisect_prop_angle_set(), gizmo_cage2d_modal(), gizmo_ruler_draw(), gizmo_spin_prop_axis_angle_get(), gizmo_spin_prop_axis_angle_set(), imm_draw_circle(), imm_draw_circle_3D(), imm_draw_circle_partial(), imm_draw_circle_partial_3d(), imm_draw_disk_partial(), imm_draw_disk_partial_3d(), init_track_for_stabilization(), interp_weights_poly_v2(), knife_snap_v3_angle(), knife_update_header(), knifetool_draw_angle(), knifetool_draw_visible_angles(), blender::ed::transform::large_rotation_limit(), blender::geometry::limit_radius(), blender::ed::sculpt_paint::load_tex_task_cb_ex(), M_Geometry_box_fit_2d(), make_bevel_list_2D(), make_bevel_list_3D_minimum_twist(), map_to_plane_axis_angle_v2_v3v3fl(), slim::map_vertices_to_convex_border(), mat3_normalized_to_axis_angle(), mat3_to_axis_angle(), mat3_to_quat_legacy(), mat4_normalized_to_axis_angle(), mat4_to_axis_angle(), blender::bke::mesh_sharp_edges_set_from_angle(), mid_v3_v3v3_angle_weighted(), minimum_twist_between_two_points(), MOD_lineart_chain_split_angle(), MOD_solidify_extrude_modifyMesh(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), modify_mesh(), blender::ed::sculpt_paint::brushes::multiplane_scrape_preview_draw(), blender::nodes::node_fn_axis_angle_to_rotation_cc::node_build_multi_function(), NODE_DEFINE(), NODE_DEFINE(), blender::nodes::node_fn_rotation_to_axis_angle_cc::node_eval_inverse(), blender::ed::sculpt_paint::auto_mask::normal_calc(), blender::ed::object::object_warp_transverts(), blender::ed::sculpt_paint::greasepencil::TwistOperation::on_stroke_extended(), one_minus_cos(), blender::math::AngleFraction< T >::operator AngleCartesianBase< T >(), KDL::Frame2::operator()(), KDL::Twist::operator()(), KDL::Twist::operator()(), KDL::RotationVel::operator*(), KDL::RotationVel::operator*(), KDL::Twist::operator*, KDL::Twist::operator*, KDL::operator>>(), orthogonalize_stable(), blender::geometry::p_abf_compute_sines(), blender::geometry::p_chart_correct_degenerate_triangle_point(), blender::geometry::p_chart_correct_degenerate_triangles2(), blender::geometry::p_chart_fill_boundary(), blender::geometry::p_chart_rotate_fit_aabb(), blender::geometry::p_chart_rotate_minimum_area(), blender::geometry::p_edge_boundary_angle(), blender::ed::sculpt_paint::paint_stroke_line_constrain(), pdf_uniform_cone(), pivotcon_evaluate(), polar_to_x(), polar_to_y(), pow_qt_fl_normalized(), blender::draw::precompute_sphere_points(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::transform::protectedAxisAngleBits(), py_blf_rotation(), quat__axis_angle_sanitize(), quat_normalized_to_expmap(), quat_to_axis_angle(), Quaternion_angle_get(), Quaternion_angle_set(), Quaternion_axis_vector_set(), Quaternion_to_axis_angle(), Quaternion_vectorcall(), blender::io::usd::USDLightReader::read_object_data(), regular_polygon_sample(), RemoveEulerAngleFromMatrix(), resolveConeFrictionConstraintRows(), blender::draw::overlay::ring_vertices(), blender::ed::transform::rmat_cache_init(), blender::ed::transform::rmat_cache_update(), KDL::Rotation::Rot(), Rot(), KDL::Rotation::Rot2(), blender::nodes::materialx::NodeItem::rotate(), rotate(), blender::math::rotate_around_axis(), rotate_around_axis(), blender::ed::transform::rotate_around_center_v2(), blender::ed::sculpt_paint::greasepencil::rotate_by_angle(), blender::rotate_by_angle(), blender::math::rotate_direction_around_axis(), rotate_eul(), rotate_eulO(), rotate_m4(), rotate_normalized_v3_v3v3fl(), rotate_point_v2(), rotate_to_plane(), rotate_v2_v2fl(), rotate_v3_v3v3fl(), blender::nodes::node_geo_curve_primitive_arc_cc::rotate_vector_around_axis(), rotation_between_vecs_to_quat(), libmv::RotationAroundX(), libmv::RotationAroundY(), libmv::RotationAroundZ(), blender::ed::transform::RotationBetween(), RotationMatrix(), blender::bke::mesh_surface_sample::sample_surface_points_projected(), blender::bke::mesh_surface_sample::sample_surface_points_spherical(), SCULPT_cache_calc_brushdata_symm(), Freestyle::Controller::setCreaseAngle(), Freestyle::FEdgeXDetector::setCreaseAngle(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_around_axis(), blender::ed::object::shade_auto_smooth_exec(), blender::ed::object::shade_smooth_exec(), blender::draw::overlay::ShapeCache::ShapeCache(), shell_angle_to_dist(), shift_cos_in(), SIM_mass_spring_force_spring_angular(), similar_edge_select_exec(), sin_cos_from_fraction(), slide_marker_modal(), stabilization_data_to_mat4(), blender::draw::statvis_calc_sharp(), stencil_control_calculate(), svm_node_vector_rotate(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), TEST(), btAngularLimit::test(), testAngularLimitMotor(), blender::math::to_axis_angle(), blender::ed::transform::transdata_elem_bend(), blender::ed::transform::transdata_elem_rotate(), blender::ed::transform::transdata_elem_trackball(), blender::ed::transform::transform_data_ext_rotate(), blender::ed::transform::transform_draw_cursor_draw(), transform_rotate(), tri_to_quat_ex(), ui_but_pie_dir(), ui_draw_but_VECTORSCOPE(), ui_draw_pie_center(), UI_fontstyle_draw_rotated(), ui_numedit_but_UNITVEC(), unit_axis_angle(), blender::geometry::UVMinimumEnclosingSquareFinder::update(), blender::ed::transform::uv_rotation_in_clip_bounds_test(), vec_to_quat(), blender::ed::sculpt_paint::vwpaint::view_angle_limits_init(), view_roll_angle(), vieworbit_exec(), viewroll_apply(), viewroll_exec(), viewrotate_apply(), viewrotate_apply_snap(), vpaint_do_paint(), vpaint_do_radial_symmetry(), walkApply(), wpaint_do_paint(), wpaint_do_radial_symmetry(), wrap_rad_angle(), blender::write_weights_for_drawing(), and blender::nodes::materialx::NodeItem::~NodeItem().
|
inlinestatic |
Definition at line 30 of file IK_Math.h.
Referenced by blender::nodes::node_shader_map_range_cc::build_float_linear(), blender::nodes::node_shader_map_range_cc::build_float_stepped(), blender::nodes::node_shader_map_range_cc::build_vector_linear(), blender::nodes::node_shader_map_range_cc::build_vector_stepped(), btSoftBody::AJoint::Prepare(), btSoftBody::LJoint::Prepare(), IK_QElbowSegment::SetLimit(), IK_QRevoluteSegment::SetLimit(), IK_QSphericalSegment::SetLimit(), IK_QSwingSegment::SetLimit(), blender::tests::TEST(), and btSoftBody::updatePose().
|
inlinestatic |
Definition at line 173 of file IK_Math.h.
References sqrt.
Referenced by IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
Definition at line 122 of file IK_Math.h.
Referenced by RemoveTwist(), and SphericalRangeParameters().
|
inlinestatic |
Definition at line 133 of file IK_Math.h.
References RotationMatrix().
Referenced by RemoveTwist(), IK_QElbowSegment::SetBasis(), IK_QRevoluteSegment::SetBasis(), and IK_QSphericalSegment::UpdateAngle().
|
inlinestatic |
Definition at line 35 of file IK_Math.h.
Referenced by IK_SetTransform(), IK_SolverAddGoalOrientation(), RotationMatrix(), IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
Definition at line 199 of file IK_Math.h.
References FuzzyZero(), sqrt, x, and z().
Referenced by IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
|
inlinestatic |
Definition at line 25 of file IK_Math.h.
References fabs(), IK_EPSILON, and x.
Referenced by EllipseClamp(), IK_QCenterOfMassTask::IK_QCenterOfMassTask(), MatrixToAxisAngle(), normalize(), IK_QJacobianSolver::Setup(), IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
Definition at line 185 of file IK_Math.h.
References FuzzyZero(), l, R, and safe_acos().
Referenced by IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
Definition at line 109 of file IK_Math.h.
References FuzzyZero(), len, and v.
|
inlinestatic |
Definition at line 138 of file IK_Math.h.
References ComputeTwist(), ComputeTwistMatrix(), R, and T.
Referenced by IK_QElbowSegment::SetBasis(), IK_QSwingSegment::SetBasis(), and IK_QSwingSegment::UpdateAngle().
|
inlinestatic |
|
inlinestatic |
Definition at line 58 of file IK_Math.h.
References CreateMatrix().
Referenced by ComputeTwistMatrix(), RotationMatrix(), IK_QElbowSegment::SetBasis(), IK_QRevoluteSegment::SetBasis(), IK_QElbowSegment::UpdateAngleApply(), and IK_QRevoluteSegment::UpdateAngleApply().
|
inlinestatic |
|
inlinestatic |
Definition at line 150 of file IK_Math.h.
References ComputeTwist(), fabs(), IK_EPSILON, num, R, and sqrt.
Referenced by IK_QSphericalSegment::UpdateAngle(), and IK_QSwingSegment::UpdateAngle().
|
static |
Definition at line 23 of file IK_Math.h.
Referenced by EulerAngleFromMatrix(), FuzzyZero(), and SphericalRangeParameters().