|
Blender V4.3
|
#include <algorithm>#include "MEM_guardedalloc.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BLI_utildefines.h"#include "DNA_armature_types.h"#include "DNA_constraint_types.h"#include "DNA_object_types.h"#include "BKE_action.hh"#include "BKE_anim_path.h"#include "BKE_armature.hh"#include "BKE_curve.hh"#include "BKE_fcurve.hh"#include "BKE_object_types.hh"#include "BKE_scene.hh"#include "BIK_api.h"#include "DEG_depsgraph.hh"Go to the source code of this file.
Classes | |
| struct | tSplineIK_Tree |
| struct | tSplineIk_EvalState |
|
static |
Definition at line 250 of file armature_update.cc.
References CONSTRAINT_SPLINEIK_NO_ROOT, bSplineIKConstraint::flag, mul_m4_v3(), and bSplineIKConstraint::tar.
Referenced by splineik_evaluate_bone().
Definition at line 949 of file armature_update.cc.
References Bone::arm_mat, BKE_pose_channel_free_bbone_cache(), bPoseChannel::bone, BONE_NO_DEFORM, bPoseChannel::chan_mat, bPoseChannel_Runtime::deform_dual_quat, DEG_debug_print_eval_subdata(), DEG_is_active(), depsgraph, bArmature::edbo, Bone::flag, invert_m4_m4(), mat4_to_dquat(), mul_m4_m4m4(), bPoseChannel::name, bPoseChannel::orig_pchan, pose_channel_flush_to_orig_if_needed(), bPoseChannel::pose_mat, pose_pchan_get_indexed(), bPoseChannel::runtime, and Bone::segments.
| void BKE_pose_constraints_evaluate | ( | Depsgraph * | depsgraph, |
| Scene * | scene, | ||
| Object * | object, | ||
| int | pchan_index ) |
Definition at line 902 of file armature_update.cc.
References ARM_RESTPOS, BKE_pose_where_is_bone(), BKE_scene_ctime_get(), DEG_debug_print_eval_subdata(), depsgraph, bArmature::edbo, bArmature::flag, bPoseChannel::flag, bPoseChannel::name, POSE_DONE, POSE_IKSPLINE, POSE_IKTREE, and pose_pchan_get_indexed().
Definition at line 975 of file armature_update.cc.
References BKE_pchan_bbone_segments_cache_compute(), BKE_pchan_bbone_segments_cache_copy(), bPoseChannel::bone, DEG_debug_print_eval_subdata(), DEG_is_active(), depsgraph, bArmature::edbo, bPoseChannel::name, bPoseChannel::orig_pchan, pose_pchan_get_indexed(), and Bone::segments.
Definition at line 866 of file armature_update.cc.
References Bone::arm_head, Bone::arm_mat, ARM_RESTPOS, Bone::arm_tail, BKE_pose_where_is_bone(), BKE_scene_ctime_get(), BLI_assert, bPoseChannel::bone, bPoseChannel::constraints, copy_m4_m4(), copy_v3_v3(), DEG_debug_print_eval_subdata(), depsgraph, bArmature::edbo, ListBase::first, bArmature::flag, bPoseChannel::flag, bPoseChannel::name, OB_ARMATURE, POSE_DONE, bPoseChannel::pose_head, POSE_IKSPLINE, POSE_IKTREE, bPoseChannel::pose_mat, pose_pchan_get_indexed(), and bPoseChannel::pose_tail.
Definition at line 1050 of file armature_update.cc.
References BIK_release_tree(), BKE_scene_ctime_get(), BLI_assert, DEG_debug_print_eval(), depsgraph, OB_ARMATURE, pose_eval_cleanup_common(), and UNUSED_VARS_NDEBUG.
| void BKE_pose_eval_done | ( | Depsgraph * | depsgraph, |
| Object * | object ) |
Definition at line 1041 of file armature_update.cc.
References BLI_assert, DEG_debug_print_eval(), depsgraph, OB_ARMATURE, and UNUSED_VARS_NDEBUG.
Definition at line 818 of file armature_update.cc.
References BKE_pose_channel_free_bbone_cache(), BLI_assert, BLI_listbase_is_empty(), bPose::chan_array, bPose::chanbase, DEG_debug_print_eval(), depsgraph, ListBase::first, invert_m4_m4(), OB_ARMATURE, POSE_CHAIN, POSE_DONE, POSE_IKSPLINE, POSE_IKTREE, and POSE_RECALC.
Definition at line 849 of file armature_update.cc.
References ARM_RESTPOS, BIK_init_tree(), BKE_pose_splineik_init_tree(), BKE_scene_ctime_get(), BLI_assert, DEG_debug_print_eval(), depsgraph, bArmature::flag, and OB_ARMATURE.
| void BKE_pose_iktree_evaluate | ( | Depsgraph * | depsgraph, |
| Scene * | scene, | ||
| Object * | object, | ||
| int | rootchan_index ) |
Definition at line 992 of file armature_update.cc.
References ARM_RESTPOS, BIK_execute_tree(), BKE_scene_ctime_get(), BLI_assert, DEG_debug_print_eval_subdata(), depsgraph, bArmature::edbo, bArmature::flag, bPoseChannel::name, OB_ARMATURE, and pose_pchan_get_indexed().
| void BKE_pose_pchan_index_rebuild | ( | bPose * | pose | ) |
Definition at line 794 of file armature_update.cc.
References BLI_listbase_count(), bPose::chan_array, bPose::chanbase, ListBase::first, MEM_malloc_arrayN, MEM_SAFE_FREE, and bPoseChannel::next.
| void BKE_pose_splineik_evaluate | ( | Depsgraph * | depsgraph, |
| Scene * | scene, | ||
| Object * | object, | ||
| int | rootchan_index ) |
Definition at line 1012 of file armature_update.cc.
References ARM_RESTPOS, BKE_scene_ctime_get(), BKE_splineik_execute_tree(), BLI_assert, DEG_debug_print_eval_subdata(), depsgraph, bArmature::edbo, bArmature::flag, bPoseChannel::name, OB_ARMATURE, and pose_pchan_get_indexed().
Definition at line 781 of file armature_update.cc.
References splineik_init_tree().
Referenced by BKE_pose_eval_init_ik(), and BKE_pose_where_is().
| void BKE_splineik_execute_tree | ( | Depsgraph * | depsgraph, |
| Scene * | scene, | ||
| Object * | ob, | ||
| bPoseChannel * | pchan_root, | ||
| float | ctime ) |
Definition at line 786 of file armature_update.cc.
References depsgraph, and splineik_execute_tree().
Referenced by BKE_pose_splineik_evaluate(), and BKE_pose_where_is().
|
static |
Definition at line 267 of file armature_update.cc.
References len_v3(), and sub_v3_v3v3().
Referenced by position_tail_on_spline().
|
static |
Definition at line 928 of file armature_update.cc.
References bPoseChannel::chan_mat, bPoseChannel::constflag, bPoseChannel::constinv, copy_m4_m4(), copy_v3_v3(), DEG_is_active(), depsgraph, bArmature::edbo, bPoseChannel::orig_pchan, bPoseChannel::pose_head, bPoseChannel::pose_mat, and bPoseChannel::pose_tail.
Referenced by BKE_pose_bone_done().
|
static |
Definition at line 1033 of file armature_update.cc.
References BLI_assert, BLI_listbase_is_empty(), bPose::chan_array, bPose::chanbase, and UNUSED_VARS_NDEBUG.
Referenced by BKE_pose_eval_cleanup().
| BLI_INLINE bPoseChannel * pose_pchan_get_indexed | ( | Object * | ob, |
| int | pchan_index ) |
Definition at line 808 of file armature_update.cc.
References BLI_assert, bPose::chan_array, MEM_allocN_len, and Object::pose.
Referenced by BKE_pose_bone_done(), BKE_pose_constraints_evaluate(), BKE_pose_eval_bbone_segments(), BKE_pose_eval_bone(), BKE_pose_iktree_evaluate(), and BKE_pose_splineik_evaluate().
|
static |
Definition at line 279 of file armature_update.cc.
References CurveCache::anim_path_accum_length, CurveCache::bev, BevList::bevpoints, BKE_anim_path_get_array_size(), BKE_anim_path_get_length(), BLI_assert, copy_v3_v3(), dist_to_sphere_shell(), fabsf, ListBase::first, frac(), interp_v3_v3v3(), is_cyclic(), len_v3(), len_v3v3(), max_fff(), BevList::poly, BevPoint::radius, Object::runtime, bSplineIKConstraint::tar, and BevPoint::vec.
Referenced by splineik_evaluate_bone().
|
static |
Definition at line 406 of file armature_update.cc.
References acosf, apply_curve_transform(), atanf, axis_angle_to_mat3(), axis_sort_v3(), BKE_pose_where_is_bone_tail(), BKE_where_on_path(), bPoseChannel::bone, bSplineIKConstraint::bulge, bSplineIKConstraint::bulge_max, bSplineIKConstraint::bulge_min, bSplineIKConstraint::bulge_smooth, CLAMP, CONSTRAINT_SPLINEIK_NO_CURVERAD, CONSTRAINT_SPLINEIK_NO_ROOT, CONSTRAINT_SPLINEIK_USE_BULGE_MAX, CONSTRAINT_SPLINEIK_USE_BULGE_MIN, CONSTRAINT_SPLINEIK_USE_ORIGINAL_SCALE, CONSTRAINT_SPLINEIK_XZS_INVERSE, CONSTRAINT_SPLINEIK_XZS_NONE, CONSTRAINT_SPLINEIK_XZS_ORIGINAL, CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC, CONSTRAINT_SPLINEIK_YS_FIT_CURVE, CONSTRAINT_SPLINEIK_YS_ORIGINAL, copy_m4_m3(), copy_v3_v3(), cross_v3_v3v3(), dot_v3v3(), fabsf, bPoseChannel::flag, bSplineIKConstraint::flag, float, interp_v3_v3v3(), interpf(), len_v3(), len_v3v3(), Bone::length, M_PI_2, madd_m3_m3m3fl(), max_ff(), min_ff(), mul_m3_m3m3(), mul_m3_m4m4(), mul_m4_m3m4(), mul_v3_fl(), mul_v3_m4v3(), mul_v3_mat3_m4v3(), norm(), normalize_m3(), normalize_m3_m3(), normalize_v3(), POSE_DONE, bPoseChannel::pose_head, bPoseChannel::pose_mat, bPoseChannel::pose_tail, position_tail_on_spline(), powf, sqrtf, state, sub_m3_m3m3(), sub_v3_v3v3(), bSplineIKConstraint::tar, tree, bSplineIKConstraint::xzScaleMode, bSplineIKConstraint::yScaleMode, and zero_v3().
Referenced by splineik_execute_tree().
|
static |
Definition at line 209 of file armature_update.cc.
References CurveCache::anim_path_accum_length, BKE_anim_path_get_length(), CONSTRAINT_SPLINEIK_YS_FIT_CURVE, ELEM, Object::runtime, state, bSplineIKConstraint::tar, tree, unit_m4(), bSplineIKConstraint::yScaleMode, and zero_v3().
Referenced by splineik_execute_tree().
|
static |
Definition at line 744 of file armature_update.cc.
References BKE_pose_where_is_bone(), BLI_freelinkN(), depsgraph, ListBase::first, MEM_freeN(), bPoseChannel::siktree, splineik_evaluate_bone(), splineik_evaluate_init(), state, and tree.
Referenced by BKE_splineik_execute_tree().
Definition at line 186 of file armature_update.cc.
References bPose::chanbase, LISTBASE_FOREACH, PCHAN_HAS_SPLINEIK, Object::pose, and splineik_init_tree_from_pchan().
Referenced by BKE_pose_splineik_init_tree().
|
static |
Definition at line 58 of file armature_update.cc.
References BLI_addtail(), bPoseChannel::bone, bSplineIKConstraint::chainlen, CLAMP_MIN, CONSTRAINT_DISABLE, CONSTRAINT_OFF, CONSTRAINT_SPLINEIK_BOUND, CONSTRAINT_SPLINEIK_EVENSPLITS, CONSTRAINT_TYPE_SPLINEIK, bPoseChannel::constraints, bConstraint::data, bConstraint::enforce, ListBase::first, bConstraint::flag, bPoseChannel::flag, bSplineIKConstraint::flag, float, Bone::length, MEM_callocN, MEM_freeN(), MEM_mallocN, bConstraint::next, bSplineIKConstraint::numpoints, OB_CURVES_LEGACY, bPoseChannel::parent, bSplineIKConstraint::points, POSE_IKSPLINE, bPoseChannel::siktree, bSplineIKConstraint::tar, tree, bConstraint::type, Object::type, and tSplineIK_Tree::type.
Referenced by splineik_init_tree().