53 Object *ob,
int *r_totelem,
float *arr,
size_t arr_size,
ID *obdata);
120 const float mat[4][4],
142 float (*r_vert_normals)[3],
143 float (*r_face_normals)[3],
144 float (*r_loop_normals)[3]);
192 const float (*coords)[3],
193 const float mat[4][4]);
199 Key *key,
const ListBase *nurb,
int shape_index,
const void *data,
const float mat[4][4]);
void key_curve_normal_weights(float t, float data[4], int type)
void BKE_keyblock_mesh_calc_normals(const KeyBlock *kb, Mesh *mesh, float(*r_vert_normals)[3], float(*r_face_normals)[3], float(*r_loop_normals)[3])
KeyBlock * BKE_keyblock_from_object(Object *ob)
void BKE_keyblock_convert_to_lattice(const KeyBlock *kb, Lattice *lt)
Key ** BKE_key_from_id_p(ID *id)
std::optional< std::string > BKE_keyblock_curval_rnapath_get(const Key *key, const KeyBlock *kb)
void BKE_key_free_nolib(Key *key)
bool BKE_keyblock_is_basis(const Key *key, int index)
Key * BKE_key_add(Main *bmain, ID *id)
void BKE_keyblock_curve_data_transform(const ListBase *nurb, const float mat[4][4], const void *src, void *dst)
KeyBlock * BKE_keyblock_add(Key *key, const char *name)
KeyBlock * BKE_keyblock_from_object_reference(Object *ob)
bool BKE_keyblock_move(Object *ob, int org_index, int new_index)
void BKE_keyblock_update_from_mesh(const Mesh *mesh, KeyBlock *kb)
void BKE_keyblock_update_from_curve(const Curve *cu, KeyBlock *kb, const ListBase *nurb)
void BKE_keyblock_data_set(Key *key, int shape_index, const void *data)
void BKE_key_free_data(Key *key)
void BKE_keyblock_update_from_offset(const Object *ob, KeyBlock *kb, const float(*ofs)[3])
void BKE_keyblock_data_set_with_mat4(Key *key, int shape_index, const float(*coords)[3], const float mat[4][4])
void BKE_keyblock_convert_to_mesh(const KeyBlock *kb, float(*vert_positions)[3], int totvert)
int BKE_keyblock_curve_element_count(const ListBase *nurb)
void BKE_keyblock_data_get(const Key *key, float(*arr)[3])
void BKE_keyblock_convert_from_mesh(const Mesh *mesh, const Key *key, KeyBlock *kb)
size_t BKE_keyblock_element_calc_size(const Key *key)
float * BKE_key_evaluate_object_ex(Object *ob, int *r_totelem, float *arr, size_t arr_size, ID *obdata)
KeyBlock * BKE_keyblock_find_by_index(Key *key, int index)
void BKE_keyblock_copy_settings(KeyBlock *kb_dst, const KeyBlock *kb_src)
copy shape-key attributes, but not key data or name/UID.
void BKE_keyblock_convert_from_curve(const Curve *cu, KeyBlock *kb, const ListBase *nurb)
void key_curve_tangent_weights(float t, float data[4], int type)
KeyBlock * BKE_keyblock_find_name(Key *key, const char name[])
KeyBlock * BKE_keyblock_add_ctime(Key *key, const char *name, bool do_force)
void BKE_keyblock_convert_from_lattice(const Lattice *lt, KeyBlock *kb)
float * BKE_key_evaluate_object(Object *ob, int *r_totelem)
void BKE_keyblock_update_from_lattice(const Lattice *lt, KeyBlock *kb)
void BKE_keyblock_convert_to_curve(KeyBlock *kb, Curve *cu, ListBase *nurb)
int BKE_keyblock_element_count(const Key *key)
void BKE_keyblock_curve_data_set_with_mat4(Key *key, const ListBase *nurb, int shape_index, const void *data, const float mat[4][4])
Key ** BKE_key_from_object_p(Object *ob)
void BKE_keyblock_convert_from_vertcos(const Object *ob, KeyBlock *kb, const float(*vertCos)[3])
std::optional< blender::Array< bool > > BKE_keyblock_get_dependent_keys(const Key *key, int index)
Key * BKE_key_from_id(ID *id)
void BKE_keyblock_data_get_from_shape(const Key *key, float(*arr)[3], int shape_index)
void BKE_key_sort(Key *key)
void BKE_keyblock_update_from_vertcos(const Object *ob, KeyBlock *kb, const float(*vertCos)[3])
Key * BKE_key_from_object(Object *ob)
float(* BKE_keyblock_convert_to_vertcos(const Object *ob, const KeyBlock *kb))[3]
size_t BKE_keyblock_element_calc_size_from_shape(const Key *key, int shape_index)
int BKE_keyblock_element_count_from_shape(const Key *key, int shape_index)
void key_curve_position_weights(float t, float data[4], int type)
bool BKE_key_idtype_support(short id_type)
KeyBlock * BKE_keyblock_find_uid(Key *key, int uid)
draw_view in_light_buf[] float