Blender  V3.3
Classes | Typedefs | Functions
armature_update.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_action.h"
#include "BKE_anim_path.h"
#include "BKE_armature.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
#include "BKE_fcurve.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "BIK_api.h"
#include "DEG_depsgraph.h"

Go to the source code of this file.

Classes

struct  tSplineIK_Tree
 
struct  tSplineIk_EvalState
 

Typedefs

typedef struct tSplineIK_Tree tSplineIK_Tree
 
typedef struct tSplineIk_EvalState tSplineIk_EvalState
 

Functions

static void splineik_init_tree_from_pchan (Scene *UNUSED(scene), Object *UNUSED(ob), bPoseChannel *pchan_tip)
 
static void splineik_init_tree (Scene *scene, Object *ob, float UNUSED(ctime))
 
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 (struct 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 (struct 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 (struct Depsgraph *depsgraph, Scene *UNUSED(scene), Object *object)
 
void BKE_pose_eval_init_ik (struct Depsgraph *depsgraph, Scene *scene, Object *object)
 
void BKE_pose_eval_bone (struct Depsgraph *depsgraph, Scene *scene, Object *object, int pchan_index)
 
void BKE_pose_constraints_evaluate (struct Depsgraph *depsgraph, Scene *scene, Object *object, int pchan_index)
 
static void pose_channel_flush_to_orig_if_needed (struct Depsgraph *depsgraph, struct Object *object, bPoseChannel *pchan)
 
void BKE_pose_bone_done (struct Depsgraph *depsgraph, struct Object *object, int pchan_index)
 
void BKE_pose_eval_bbone_segments (struct Depsgraph *depsgraph, struct Object *object, int pchan_index)
 
void BKE_pose_iktree_evaluate (struct Depsgraph *depsgraph, Scene *scene, Object *object, int rootchan_index)
 
void BKE_pose_splineik_evaluate (struct Depsgraph *depsgraph, Scene *scene, Object *object, int rootchan_index)
 
static void pose_eval_cleanup_common (Object *object)
 
void BKE_pose_eval_done (struct Depsgraph *depsgraph, Object *object)
 
void BKE_pose_eval_cleanup (struct Depsgraph *depsgraph, Scene *scene, Object *object)
 

Typedef Documentation

◆ tSplineIk_EvalState

◆ tSplineIK_Tree

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

void BKE_pose_bone_done ( struct Depsgraph depsgraph,
struct Object object,
int  pchan_index 
)

◆ BKE_pose_constraints_evaluate()

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

◆ BKE_pose_eval_bbone_segments()

void BKE_pose_eval_bbone_segments ( struct Depsgraph depsgraph,
struct Object object,
int  pchan_index 
)

◆ BKE_pose_eval_bone()

void BKE_pose_eval_bone ( struct Depsgraph depsgraph,
Scene scene,
Object object,
int  pchan_index 
)

◆ BKE_pose_eval_cleanup()

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

◆ BKE_pose_eval_done()

void BKE_pose_eval_done ( struct Depsgraph depsgraph,
Object object 
)

◆ BKE_pose_eval_init()

void BKE_pose_eval_init ( struct Depsgraph depsgraph,
Scene UNUSEDscene,
Object object 
)

◆ BKE_pose_eval_init_ik()

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

◆ BKE_pose_iktree_evaluate()

void BKE_pose_iktree_evaluate ( struct 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 ( struct 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 774 of file armature_update.c.

References scene, and splineik_init_tree().

Referenced by BKE_pose_eval_init_ik(), and BKE_pose_where_is().

◆ BKE_splineik_execute_tree()

void BKE_splineik_execute_tree ( struct Depsgraph depsgraph,
Scene scene,
Object ob,
bPoseChannel pchan_root,
float  ctime 
)

Definition at line 779 of file armature_update.c.

References depsgraph, scene, 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 262 of file armature_update.c.

References len_v3(), point, 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 ( struct Depsgraph depsgraph,
struct Object object,
bPoseChannel pchan 
)
static

◆ pose_eval_cleanup_common()

static void pose_eval_cleanup_common ( Object object)
static

◆ pose_pchan_get_indexed()

BLI_INLINE bPoseChannel* pose_pchan_get_indexed ( Object ob,
int  pchan_index 
)

◆ position_tail_on_spline()

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

◆ splineik_evaluate_bone()

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

◆ splineik_evaluate_init()

static bool splineik_evaluate_init ( tSplineIK_Tree tree,
tSplineIk_EvalState state 
)
static

◆ splineik_execute_tree()

static void splineik_execute_tree ( struct 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   UNUSEDctime 
)
static

◆ splineik_init_tree_from_pchan()

static void splineik_init_tree_from_pchan ( Scene UNUSEDscene,
Object UNUSEDob,
bPoseChannel pchan_tip 
)
static