Blender V4.3
BKE_object_deform.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
13#include "DNA_scene_enums.h"
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19struct ID;
20struct MDeformVert;
21struct Object;
22struct bDeformGroup;
23
24/* General vgroup operations. */
25
33void BKE_object_defgroup_remap_update_users(struct Object *ob, const int *map);
34
40bool BKE_object_defgroup_array_get(struct ID *id, struct MDeformVert **dvert_arr, int *dvert_tot);
41
49struct bDeformGroup *BKE_object_defgroup_add_name(struct Object *ob, const char *name);
54
61bool BKE_object_defgroup_clear(struct Object *ob, struct bDeformGroup *dg, bool use_selection);
68bool BKE_object_defgroup_clear_all(struct Object *ob, bool use_selection);
69
73void BKE_object_defgroup_remove(struct Object *ob, struct bDeformGroup *defgroup);
78void BKE_object_defgroup_remove_all_ex(struct Object *ob, bool only_unlocked);
83
90 struct Object *ob_dst,
91 int *r_map_len);
93 int dvert_len,
94 const int *map,
95 int map_len);
96
97/* Select helpers. */
98
103 enum eVGroupSelect subset_type,
104 int *r_defgroup_tot,
105 int *r_subset_count);
109void BKE_object_defgroup_subset_to_index_array(const bool *defgroup_validmap,
110 int defgroup_tot,
111 int *r_defgroup_subset_map);
112
113/* ********** */
114
119bool *BKE_object_defgroup_lock_flags_get(struct Object *ob, int defbase_tot);
120bool *BKE_object_defgroup_validmap_get(struct Object *ob, int defbase_tot);
126 int defbase_tot,
127 int *r_dg_flags_sel_tot);
128
134bool BKE_object_defgroup_check_lock_relative(const bool *lock_flags,
135 const bool *validmap,
136 int index);
143 const bool *lock_flags,
144 const bool *selected,
145 int sel_tot);
146
151
158 int defbase_tot, const bool *locked, const bool *deform, bool *r_locked, bool *r_unlocked);
159
166 int defbase_tot,
167 const bool *selection,
168 bool *dg_flags_sel,
169 int *r_dg_flags_sel_tot);
170
171#ifdef __cplusplus
172}
173#endif
bool BKE_object_defgroup_check_lock_relative(const bool *lock_flags, const bool *validmap, int index)
bool * BKE_object_defgroup_subset_from_select_type(struct Object *ob, enum eVGroupSelect subset_type, int *r_defgroup_tot, int *r_subset_count)
void BKE_object_defgroup_split_locked_validmap(int defbase_tot, const bool *locked, const bool *deform, bool *r_locked, bool *r_unlocked)
bool BKE_object_defgroup_clear_all(struct Object *ob, bool use_selection)
bool BKE_object_defgroup_array_get(struct ID *id, struct MDeformVert **dvert_arr, int *dvert_tot)
void BKE_object_defgroup_remove(struct Object *ob, struct bDeformGroup *defgroup)
bool * BKE_object_defgroup_validmap_get(struct Object *ob, int defbase_tot)
int * BKE_object_defgroup_index_map_create(struct Object *ob_src, struct Object *ob_dst, int *r_map_len)
bool * BKE_object_defgroup_lock_flags_get(struct Object *ob, int defbase_tot)
void BKE_object_defgroup_remove_all_ex(struct Object *ob, bool only_unlocked)
void BKE_object_defgroup_index_map_apply(struct MDeformVert *dvert, int dvert_len, const int *map, int map_len)
void BKE_object_defgroup_remap_update_users(struct Object *ob, const int *map)
void BKE_object_defgroup_mirror_selection(struct Object *ob, int defbase_tot, const bool *selection, bool *dg_flags_sel, int *r_dg_flags_sel_tot)
bool BKE_object_defgroup_check_lock_relative_multi(int defbase_tot, const bool *lock_flags, const bool *selected, int sel_tot)
void BKE_object_defgroup_subset_to_index_array(const bool *defgroup_validmap, int defgroup_tot, int *r_defgroup_subset_map)
struct bDeformGroup * BKE_object_defgroup_add(struct Object *ob)
struct bDeformGroup * BKE_object_defgroup_add_name(struct Object *ob, const char *name)
struct MDeformVert * BKE_object_defgroup_data_create(struct ID *id)
void BKE_object_defgroup_remove_all(struct Object *ob)
bool BKE_object_defgroup_clear(struct Object *ob, struct bDeformGroup *dg, bool use_selection)
bool BKE_object_defgroup_active_is_locked(const struct Object *ob)
bool * BKE_object_defgroup_selected_get(struct Object *ob, int defbase_tot, int *r_dg_flags_sel_tot)
eVGroupSelect
Definition DNA_ID.h:413