Blender V5.0
ED_object_vgroup.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <optional>
12
13struct EnumPropertyItem;
14struct ID;
15struct MDeformVert;
16struct Object;
17struct PointerRNA;
18struct PropertyRNA;
19struct SpaceNode;
20struct bContext;
21struct bDeformGroup;
22
23#define WEIGHT_REPLACE 1
24#define WEIGHT_ADD 2
25#define WEIGHT_SUBTRACT 3
26
27namespace blender::ed::object {
28
30void vgroup_select_by_name(Object *ob, const char *name);
34void vgroup_data_clamp_range(ID *id, int total);
38bool vgroup_array_copy(Object *ob, Object *ob_from);
39bool vgroup_parray_alloc(ID *id,
40 MDeformVert ***dvert_arr,
41 int *dvert_tot,
42 bool use_vert_sel,
43 std::optional<int> current_frame = {});
53 MDeformVert **dvert_array,
54 int dvert_tot,
55 const bool *vgroup_validmap,
56 int vgroup_tot);
62void vgroup_parray_mirror_assign(Object *ob, MDeformVert **dvert_array, int dvert_tot);
63void vgroup_parray_remove_zero(MDeformVert **dvert_array,
64 int dvert_tot,
65 const bool *vgroup_validmap,
66 int vgroup_tot,
67 float epsilon,
68 bool keep_single);
69void vgroup_parray_to_weight_array(const MDeformVert **dvert_array,
70 int dvert_tot,
71 float *dvert_weights,
72 int def_nr);
74 int dvert_tot,
75 const float *dvert_weights,
76 int def_nr,
77 bool remove_zero);
78void vgroup_mirror(Object *ob,
79 bool mirror_weights,
80 bool flip_vgroups,
81 bool all_vgroups,
82 bool use_topology,
83 int *r_totmirr,
84 int *r_totfail);
85
89void vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, int assignmode);
93void vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum);
94float vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum);
98void vgroup_vert_active_mirror(Object *ob, int def_nr);
99
102 PropertyRNA *prop,
103 bool *r_free,
104 unsigned int selection_mask);
105
106} // namespace blender::ed::object
#define C
Definition RandGen.cpp:29
void vgroup_parray_to_weight_array(const MDeformVert **dvert_array, int dvert_tot, float *dvert_weights, int def_nr)
void vgroup_data_clamp_range(ID *id, int total)
void vgroup_parray_from_weight_array(MDeformVert **dvert_array, int dvert_tot, const float *dvert_weights, int def_nr, bool remove_zero)
bool vgroup_array_copy(Object *ob, Object *ob_from)
void vgroup_parray_remove_zero(MDeformVert **dvert_array, int dvert_tot, const bool *vgroup_validmap, int vgroup_tot, float epsilon, bool keep_single)
bool vgroup_sync_from_pose(Object *ob)
bool vgroup_parray_alloc(ID *id, MDeformVert ***dvert_arr, int *dvert_tot, bool use_vert_sel, std::optional< int > current_frame={})
void vgroup_parray_mirror_assign(Object *ob, MDeformVert **dvert_array, int dvert_tot)
float vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum)
void vgroup_mirror(Object *ob, bool mirror_weights, bool flip_vgroups, bool all_vgroups, bool use_topology, int *r_totmirr, int *r_totfail)
const EnumPropertyItem * vgroup_selection_itemf_helper(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free, unsigned int selection_mask)
void vgroup_select_by_name(Object *ob, const char *name)
void vgroup_parray_mirror_sync(Object *ob, MDeformVert **dvert_array, int dvert_tot, const bool *vgroup_validmap, int vgroup_tot)
void vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, int assignmode)
void vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum)
void vgroup_vert_active_mirror(Object *ob, int def_nr)
const char * name
Definition DNA_ID.h:414
PointerRNA * ptr
Definition wm_files.cc:4238