Blender V4.3
armature_update.cc File Reference
#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
 

Functions

static void splineik_init_tree_from_pchan (Scene *, Object *, bPoseChannel *pchan_tip)
 
static void splineik_init_tree (Scene *scene, Object *ob, float)
 
static bool splineik_evaluate_init (tSplineIK_Tree *tree, tSplineIk_EvalState *state)
 
static void apply_curve_transform (bSplineIKConstraint *ik_data, Object *ob, float radius, float r_vec[3], float *r_radius)
 
static float dist_to_sphere_shell (const float sphere_origin[3], const float sphere_radius, const float point[3])
 
static int position_tail_on_spline (bSplineIKConstraint *ik_data, const float head_pos[3], const float sphere_radius, int prev_seg_idx, float r_tail_pos[3], float *r_new_curve_pos, float *r_radius)
 
static void splineik_evaluate_bone (tSplineIK_Tree *tree, Object *ob, bPoseChannel *pchan, int index, tSplineIk_EvalState *state)
 
static void splineik_execute_tree (Depsgraph *depsgraph, Scene *scene, Object *ob, bPoseChannel *pchan_root, float ctime)
 
void BKE_pose_splineik_init_tree (Scene *scene, Object *ob, float ctime)
 
void BKE_splineik_execute_tree (Depsgraph *depsgraph, Scene *scene, Object *ob, bPoseChannel *pchan_root, float ctime)
 
void BKE_pose_pchan_index_rebuild (bPose *pose)
 
BLI_INLINE bPoseChannelpose_pchan_get_indexed (Object *ob, int pchan_index)
 
void BKE_pose_eval_init (Depsgraph *depsgraph, Scene *, Object *object)
 
void BKE_pose_eval_init_ik (Depsgraph *depsgraph, Scene *scene, Object *object)
 
void BKE_pose_eval_bone (Depsgraph *depsgraph, Scene *scene, Object *object, int pchan_index)
 
void BKE_pose_constraints_evaluate (Depsgraph *depsgraph, Scene *scene, Object *object, int pchan_index)
 
static void pose_channel_flush_to_orig_if_needed (Depsgraph *depsgraph, Object *object, bPoseChannel *pchan)
 
void BKE_pose_bone_done (Depsgraph *depsgraph, Object *object, int pchan_index)
 
void BKE_pose_eval_bbone_segments (Depsgraph *depsgraph, Object *object, int pchan_index)
 
void BKE_pose_iktree_evaluate (Depsgraph *depsgraph, Scene *scene, Object *object, int rootchan_index)
 
void BKE_pose_splineik_evaluate (Depsgraph *depsgraph, Scene *scene, Object *object, int rootchan_index)
 
static void pose_eval_cleanup_common (Object *object)
 
void BKE_pose_eval_done (Depsgraph *depsgraph, Object *object)
 
void BKE_pose_eval_cleanup (Depsgraph *depsgraph, Scene *scene, Object *object)
 

Function Documentation

◆ apply_curve_transform()

static void apply_curve_transform ( bSplineIKConstraint * ik_data,
Object * ob,
float radius,
float r_vec[3],
float * r_radius )
static

◆ BKE_pose_bone_done()

◆ BKE_pose_constraints_evaluate()

void BKE_pose_constraints_evaluate ( Depsgraph * depsgraph,
Scene * scene,
Object * object,
int pchan_index )

◆ BKE_pose_eval_bbone_segments()

◆ BKE_pose_eval_bone()

◆ BKE_pose_eval_cleanup()

void BKE_pose_eval_cleanup ( Depsgraph * depsgraph,
Scene * scene,
Object * object )

◆ BKE_pose_eval_done()

void BKE_pose_eval_done ( Depsgraph * depsgraph,
Object * object )

◆ BKE_pose_eval_init()

◆ BKE_pose_eval_init_ik()

void BKE_pose_eval_init_ik ( Depsgraph * depsgraph,
Scene * scene,
Object * object )

◆ BKE_pose_iktree_evaluate()

void BKE_pose_iktree_evaluate ( Depsgraph * depsgraph,
Scene * scene,
Object * object,
int rootchan_index )

◆ BKE_pose_pchan_index_rebuild()

void BKE_pose_pchan_index_rebuild ( bPose * pose)

◆ BKE_pose_splineik_evaluate()

void BKE_pose_splineik_evaluate ( Depsgraph * depsgraph,
Scene * scene,
Object * object,
int rootchan_index )

◆ BKE_pose_splineik_init_tree()

void BKE_pose_splineik_init_tree ( Scene * scene,
Object * ob,
float ctime )

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().

◆ BKE_splineik_execute_tree()

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().

◆ dist_to_sphere_shell()

static float dist_to_sphere_shell ( const float sphere_origin[3],
const float sphere_radius,
const float point[3] )
static

Definition at line 267 of file armature_update.cc.

References len_v3(), and sub_v3_v3v3().

Referenced by position_tail_on_spline().

◆ pose_channel_flush_to_orig_if_needed()

static void pose_channel_flush_to_orig_if_needed ( Depsgraph * depsgraph,
Object * object,
bPoseChannel * pchan )
static

◆ pose_eval_cleanup_common()

static void pose_eval_cleanup_common ( Object * object)
static

◆ pose_pchan_get_indexed()

◆ position_tail_on_spline()

◆ splineik_evaluate_bone()

static void splineik_evaluate_bone ( tSplineIK_Tree * tree,
Object * ob,
bPoseChannel * pchan,
int index,
tSplineIk_EvalState * state )
static

◆ splineik_evaluate_init()

◆ splineik_execute_tree()

static void splineik_execute_tree ( Depsgraph * depsgraph,
Scene * scene,
Object * ob,
bPoseChannel * pchan_root,
float ctime )
static

◆ splineik_init_tree()

static void splineik_init_tree ( Scene * scene,
Object * ob,
float  )
static

◆ splineik_init_tree_from_pchan()