GPencil: Fix unreported unable to deselect when masking is OFF
[blender.git] / source / blender / editors / object / object_intern.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2008 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup edobj
22  */
23
24 #ifndef __OBJECT_INTERN_H__
25 #define __OBJECT_INTERN_H__
26
27 struct Object;
28 struct StructRNA;
29 struct bContext;
30 struct wmOperator;
31 struct wmOperatorType;
32
33 struct ModifierData;
34
35 /* add hook menu */
36 enum eObject_Hook_Add_Mode {
37   OBJECT_ADDHOOK_NEWOB = 1,
38   OBJECT_ADDHOOK_SELOB,
39   OBJECT_ADDHOOK_SELOB_BONE,
40 };
41
42 /* internal exports only */
43
44 /* object_transform.c */
45 void OBJECT_OT_location_clear(struct wmOperatorType *ot);
46 void OBJECT_OT_rotation_clear(struct wmOperatorType *ot);
47 void OBJECT_OT_scale_clear(struct wmOperatorType *ot);
48 void OBJECT_OT_origin_clear(struct wmOperatorType *ot);
49 void OBJECT_OT_visual_transform_apply(struct wmOperatorType *ot);
50 void OBJECT_OT_transform_apply(struct wmOperatorType *ot);
51 void OBJECT_OT_transform_axis_target(struct wmOperatorType *ot);
52 void OBJECT_OT_origin_set(struct wmOperatorType *ot);
53
54 /* object_relations.c */
55 void OBJECT_OT_parent_set(struct wmOperatorType *ot);
56 void OBJECT_OT_parent_no_inverse_set(struct wmOperatorType *ot);
57 void OBJECT_OT_parent_clear(struct wmOperatorType *ot);
58 void OBJECT_OT_vertex_parent_set(struct wmOperatorType *ot);
59 void OBJECT_OT_track_set(struct wmOperatorType *ot);
60 void OBJECT_OT_track_clear(struct wmOperatorType *ot);
61 void OBJECT_OT_make_local(struct wmOperatorType *ot);
62 void OBJECT_OT_make_override_library(struct wmOperatorType *ot);
63 void OBJECT_OT_make_single_user(struct wmOperatorType *ot);
64 void OBJECT_OT_make_links_scene(struct wmOperatorType *ot);
65 void OBJECT_OT_make_links_data(struct wmOperatorType *ot);
66 void OBJECT_OT_drop_named_material(struct wmOperatorType *ot);
67 void OBJECT_OT_unlink_data(struct wmOperatorType *ot);
68
69 /* object_edit.c */
70 void OBJECT_OT_hide_view_set(struct wmOperatorType *ot);
71 void OBJECT_OT_hide_view_clear(struct wmOperatorType *ot);
72 void OBJECT_OT_hide_collection(struct wmOperatorType *ot);
73 void OBJECT_OT_mode_set(struct wmOperatorType *ot);
74 void OBJECT_OT_mode_set_or_submode(struct wmOperatorType *ot);
75 void OBJECT_OT_editmode_toggle(struct wmOperatorType *ot);
76 void OBJECT_OT_posemode_toggle(struct wmOperatorType *ot);
77 void OBJECT_OT_proxy_make(struct wmOperatorType *ot);
78 void OBJECT_OT_shade_smooth(struct wmOperatorType *ot);
79 void OBJECT_OT_shade_flat(struct wmOperatorType *ot);
80 void OBJECT_OT_paths_calculate(struct wmOperatorType *ot);
81 void OBJECT_OT_paths_update(struct wmOperatorType *ot);
82 void OBJECT_OT_paths_clear(struct wmOperatorType *ot);
83 void OBJECT_OT_paths_range_update(struct wmOperatorType *ot);
84 void OBJECT_OT_forcefield_toggle(struct wmOperatorType *ot);
85
86 void OBJECT_OT_move_to_collection(struct wmOperatorType *ot);
87 void OBJECT_OT_link_to_collection(struct wmOperatorType *ot);
88
89 /* object_select.c */
90 void OBJECT_OT_select_all(struct wmOperatorType *ot);
91 void OBJECT_OT_select_random(struct wmOperatorType *ot);
92 void OBJECT_OT_select_by_type(struct wmOperatorType *ot);
93 void OBJECT_OT_select_linked(struct wmOperatorType *ot);
94 void OBJECT_OT_select_grouped(struct wmOperatorType *ot);
95 void OBJECT_OT_select_mirror(struct wmOperatorType *ot);
96 void OBJECT_OT_select_more(struct wmOperatorType *ot);
97 void OBJECT_OT_select_less(struct wmOperatorType *ot);
98 void OBJECT_OT_select_same_collection(struct wmOperatorType *ot);
99
100 /* object_add.c */
101 void OBJECT_OT_add(struct wmOperatorType *ot);
102 void OBJECT_OT_add_named(struct wmOperatorType *ot);
103 void OBJECT_OT_metaball_add(struct wmOperatorType *ot);
104 void OBJECT_OT_text_add(struct wmOperatorType *ot);
105 void OBJECT_OT_armature_add(struct wmOperatorType *ot);
106 void OBJECT_OT_empty_add(struct wmOperatorType *ot);
107 void OBJECT_OT_lightprobe_add(struct wmOperatorType *ot);
108 void OBJECT_OT_drop_named_image(struct wmOperatorType *ot);
109 void OBJECT_OT_gpencil_add(struct wmOperatorType *ot);
110 void OBJECT_OT_light_add(struct wmOperatorType *ot);
111 void OBJECT_OT_effector_add(struct wmOperatorType *ot);
112 void OBJECT_OT_camera_add(struct wmOperatorType *ot);
113 void OBJECT_OT_speaker_add(struct wmOperatorType *ot);
114 void OBJECT_OT_collection_instance_add(struct wmOperatorType *ot);
115
116 void OBJECT_OT_duplicates_make_real(struct wmOperatorType *ot);
117 void OBJECT_OT_duplicate(struct wmOperatorType *ot);
118 void OBJECT_OT_delete(struct wmOperatorType *ot);
119 void OBJECT_OT_join(struct wmOperatorType *ot);
120 void OBJECT_OT_join_shapes(struct wmOperatorType *ot);
121 void OBJECT_OT_convert(struct wmOperatorType *ot);
122
123 /* object_hook.c */
124 void OBJECT_OT_hook_add_selob(struct wmOperatorType *ot);
125 void OBJECT_OT_hook_add_newob(struct wmOperatorType *ot);
126 void OBJECT_OT_hook_remove(struct wmOperatorType *ot);
127 void OBJECT_OT_hook_select(struct wmOperatorType *ot);
128 void OBJECT_OT_hook_assign(struct wmOperatorType *ot);
129 void OBJECT_OT_hook_reset(struct wmOperatorType *ot);
130 void OBJECT_OT_hook_recenter(struct wmOperatorType *ot);
131
132 /* object_group.c */
133 void COLLECTION_OT_create(struct wmOperatorType *ot);
134 void COLLECTION_OT_objects_remove_all(struct wmOperatorType *ot);
135 void COLLECTION_OT_objects_remove(struct wmOperatorType *ot);
136 void COLLECTION_OT_objects_add_active(struct wmOperatorType *ot);
137 void COLLECTION_OT_objects_remove_active(struct wmOperatorType *ot);
138
139 /* object_modifier.c */
140 bool edit_modifier_poll_generic(struct bContext *C,
141                                 struct StructRNA *rna_type,
142                                 int obtype_flag,
143                                 const bool is_editmode_allowed);
144 bool edit_modifier_poll(struct bContext *C);
145 void edit_modifier_properties(struct wmOperatorType *ot);
146 int edit_modifier_invoke_properties(struct bContext *C, struct wmOperator *op);
147 struct ModifierData *edit_modifier_property_get(struct wmOperator *op,
148                                                 struct Object *ob,
149                                                 int type);
150
151 void OBJECT_OT_modifier_add(struct wmOperatorType *ot);
152 void OBJECT_OT_modifier_remove(struct wmOperatorType *ot);
153 void OBJECT_OT_modifier_move_up(struct wmOperatorType *ot);
154 void OBJECT_OT_modifier_move_down(struct wmOperatorType *ot);
155 void OBJECT_OT_modifier_apply(struct wmOperatorType *ot);
156 void OBJECT_OT_modifier_convert(struct wmOperatorType *ot);
157 void OBJECT_OT_modifier_copy(struct wmOperatorType *ot);
158 void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot);
159 void OBJECT_OT_multires_reshape(struct wmOperatorType *ot);
160 void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot);
161 void OBJECT_OT_multires_base_apply(struct wmOperatorType *ot);
162 void OBJECT_OT_multires_external_save(struct wmOperatorType *ot);
163 void OBJECT_OT_multires_external_pack(struct wmOperatorType *ot);
164 void OBJECT_OT_correctivesmooth_bind(struct wmOperatorType *ot);
165 void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot);
166 void OBJECT_OT_explode_refresh(struct wmOperatorType *ot);
167 void OBJECT_OT_ocean_bake(struct wmOperatorType *ot);
168 void OBJECT_OT_skin_root_mark(struct wmOperatorType *ot);
169 void OBJECT_OT_skin_loose_mark_clear(struct wmOperatorType *ot);
170 void OBJECT_OT_skin_radii_equalize(struct wmOperatorType *ot);
171 void OBJECT_OT_skin_armature_create(struct wmOperatorType *ot);
172 void OBJECT_OT_laplaciandeform_bind(struct wmOperatorType *ot);
173 void OBJECT_OT_surfacedeform_bind(struct wmOperatorType *ot);
174
175 /* grease pencil modifiers */
176 void OBJECT_OT_gpencil_modifier_add(struct wmOperatorType *ot);
177 void OBJECT_OT_gpencil_modifier_remove(struct wmOperatorType *ot);
178 void OBJECT_OT_gpencil_modifier_move_up(struct wmOperatorType *ot);
179 void OBJECT_OT_gpencil_modifier_move_down(struct wmOperatorType *ot);
180 void OBJECT_OT_gpencil_modifier_apply(struct wmOperatorType *ot);
181 void OBJECT_OT_gpencil_modifier_copy(struct wmOperatorType *ot);
182
183 /* shader fx */
184 void OBJECT_OT_shaderfx_add(struct wmOperatorType *ot);
185 void OBJECT_OT_shaderfx_remove(struct wmOperatorType *ot);
186 void OBJECT_OT_shaderfx_move_up(struct wmOperatorType *ot);
187 void OBJECT_OT_shaderfx_move_down(struct wmOperatorType *ot);
188
189 /* object_constraint.c */
190 void OBJECT_OT_constraint_add(struct wmOperatorType *ot);
191 void OBJECT_OT_constraint_add_with_targets(struct wmOperatorType *ot);
192 void POSE_OT_constraint_add(struct wmOperatorType *ot);
193 void POSE_OT_constraint_add_with_targets(struct wmOperatorType *ot);
194
195 void OBJECT_OT_constraints_copy(struct wmOperatorType *ot);
196 void POSE_OT_constraints_copy(struct wmOperatorType *ot);
197
198 void OBJECT_OT_constraints_clear(struct wmOperatorType *ot);
199 void POSE_OT_constraints_clear(struct wmOperatorType *ot);
200
201 void POSE_OT_ik_add(struct wmOperatorType *ot);
202 void POSE_OT_ik_clear(struct wmOperatorType *ot);
203
204 void CONSTRAINT_OT_delete(struct wmOperatorType *ot);
205
206 void CONSTRAINT_OT_move_up(struct wmOperatorType *ot);
207 void CONSTRAINT_OT_move_down(struct wmOperatorType *ot);
208
209 void CONSTRAINT_OT_stretchto_reset(struct wmOperatorType *ot);
210 void CONSTRAINT_OT_limitdistance_reset(struct wmOperatorType *ot);
211 void CONSTRAINT_OT_childof_set_inverse(struct wmOperatorType *ot);
212 void CONSTRAINT_OT_childof_clear_inverse(struct wmOperatorType *ot);
213 void CONSTRAINT_OT_objectsolver_set_inverse(struct wmOperatorType *ot);
214 void CONSTRAINT_OT_objectsolver_clear_inverse(struct wmOperatorType *ot);
215 void CONSTRAINT_OT_followpath_path_animate(struct wmOperatorType *ot);
216
217 /* object_vgroup.c */
218 void OBJECT_OT_vertex_group_add(struct wmOperatorType *ot);
219 void OBJECT_OT_vertex_group_remove(struct wmOperatorType *ot);
220 void OBJECT_OT_vertex_group_assign(struct wmOperatorType *ot);
221 void OBJECT_OT_vertex_group_assign_new(struct wmOperatorType *ot);
222 void OBJECT_OT_vertex_group_remove_from(struct wmOperatorType *ot);
223 void OBJECT_OT_vertex_group_select(struct wmOperatorType *ot);
224 void OBJECT_OT_vertex_group_deselect(struct wmOperatorType *ot);
225 void OBJECT_OT_vertex_group_copy_to_linked(struct wmOperatorType *ot);
226 void OBJECT_OT_vertex_group_copy_to_selected(struct wmOperatorType *ot);
227 void OBJECT_OT_vertex_group_copy(struct wmOperatorType *ot);
228 void OBJECT_OT_vertex_group_normalize(struct wmOperatorType *ot);
229 void OBJECT_OT_vertex_group_normalize_all(struct wmOperatorType *ot);
230 void OBJECT_OT_vertex_group_levels(struct wmOperatorType *ot);
231 void OBJECT_OT_vertex_group_lock(struct wmOperatorType *ot);
232 void OBJECT_OT_vertex_group_fix(struct wmOperatorType *ot);
233 void OBJECT_OT_vertex_group_invert(struct wmOperatorType *ot);
234 void OBJECT_OT_vertex_group_smooth(struct wmOperatorType *ot);
235 void OBJECT_OT_vertex_group_clean(struct wmOperatorType *ot);
236 void OBJECT_OT_vertex_group_quantize(struct wmOperatorType *ot);
237 void OBJECT_OT_vertex_group_limit_total(struct wmOperatorType *ot);
238 void OBJECT_OT_vertex_group_mirror(struct wmOperatorType *ot);
239 void OBJECT_OT_vertex_group_set_active(struct wmOperatorType *ot);
240 void OBJECT_OT_vertex_group_sort(struct wmOperatorType *ot);
241 void OBJECT_OT_vertex_group_move(struct wmOperatorType *ot);
242 void OBJECT_OT_vertex_weight_paste(struct wmOperatorType *ot);
243 void OBJECT_OT_vertex_weight_delete(struct wmOperatorType *ot);
244 void OBJECT_OT_vertex_weight_set_active(struct wmOperatorType *ot);
245 void OBJECT_OT_vertex_weight_normalize_active_vertex(struct wmOperatorType *ot);
246 void OBJECT_OT_vertex_weight_copy(struct wmOperatorType *ot);
247
248 /* object_facemap_ops.c */
249 void OBJECT_OT_face_map_add(struct wmOperatorType *ot);
250 void OBJECT_OT_face_map_remove(struct wmOperatorType *ot);
251 void OBJECT_OT_face_map_assign(struct wmOperatorType *ot);
252 void OBJECT_OT_face_map_remove_from(struct wmOperatorType *ot);
253 void OBJECT_OT_face_map_select(struct wmOperatorType *ot);
254 void OBJECT_OT_face_map_deselect(struct wmOperatorType *ot);
255 void OBJECT_OT_face_map_move(struct wmOperatorType *ot);
256
257 /* object_warp.c */
258 void TRANSFORM_OT_vertex_warp(struct wmOperatorType *ot);
259
260 /* object_shapekey.c */
261 void OBJECT_OT_shape_key_add(struct wmOperatorType *ot);
262 void OBJECT_OT_shape_key_remove(struct wmOperatorType *ot);
263 void OBJECT_OT_shape_key_clear(struct wmOperatorType *ot);
264 void OBJECT_OT_shape_key_retime(struct wmOperatorType *ot);
265 void OBJECT_OT_shape_key_mirror(struct wmOperatorType *ot);
266 void OBJECT_OT_shape_key_move(struct wmOperatorType *ot);
267
268 /* object_group.c */
269 void OBJECT_OT_collection_add(struct wmOperatorType *ot);
270 void OBJECT_OT_collection_link(struct wmOperatorType *ot);
271 void OBJECT_OT_collection_remove(struct wmOperatorType *ot);
272 void OBJECT_OT_collection_unlink(struct wmOperatorType *ot);
273 void OBJECT_OT_collection_objects_select(struct wmOperatorType *ot);
274
275 /* object_bake.c */
276 void OBJECT_OT_bake_image(wmOperatorType *ot);
277 void OBJECT_OT_bake(wmOperatorType *ot);
278
279 /* object_random.c */
280 void TRANSFORM_OT_vertex_random(struct wmOperatorType *ot);
281
282 /* object_remesh.c */
283 void OBJECT_OT_voxel_remesh(struct wmOperatorType *ot);
284
285 /* object_transfer_data.c */
286 void OBJECT_OT_data_transfer(struct wmOperatorType *ot);
287 void OBJECT_OT_datalayout_transfer(struct wmOperatorType *ot);
288
289 #endif /* __OBJECT_INTERN_H__ */