BLI: improve Map.add_new
[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 #pragma once
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 struct Object;
31 struct StructRNA;
32 struct bContext;
33 struct wmOperator;
34 struct wmOperatorType;
35
36 struct ModifierData;
37
38 /* add hook menu */
39 enum eObject_Hook_Add_Mode {
40   OBJECT_ADDHOOK_NEWOB = 1,
41   OBJECT_ADDHOOK_SELOB,
42   OBJECT_ADDHOOK_SELOB_BONE,
43 };
44
45 /* internal exports only */
46
47 /* object_transform.c */
48 void OBJECT_OT_location_clear(struct wmOperatorType *ot);
49 void OBJECT_OT_rotation_clear(struct wmOperatorType *ot);
50 void OBJECT_OT_scale_clear(struct wmOperatorType *ot);
51 void OBJECT_OT_origin_clear(struct wmOperatorType *ot);
52 void OBJECT_OT_visual_transform_apply(struct wmOperatorType *ot);
53 void OBJECT_OT_transform_apply(struct wmOperatorType *ot);
54 void OBJECT_OT_transform_axis_target(struct wmOperatorType *ot);
55 void OBJECT_OT_origin_set(struct wmOperatorType *ot);
56
57 /* object_relations.c */
58 void OBJECT_OT_parent_set(struct wmOperatorType *ot);
59 void OBJECT_OT_parent_no_inverse_set(struct wmOperatorType *ot);
60 void OBJECT_OT_parent_clear(struct wmOperatorType *ot);
61 void OBJECT_OT_vertex_parent_set(struct wmOperatorType *ot);
62 void OBJECT_OT_track_set(struct wmOperatorType *ot);
63 void OBJECT_OT_track_clear(struct wmOperatorType *ot);
64 void OBJECT_OT_make_local(struct wmOperatorType *ot);
65 void OBJECT_OT_make_override_library(struct wmOperatorType *ot);
66 void OBJECT_OT_convert_proxy_to_override(struct wmOperatorType *ot);
67 void OBJECT_OT_make_single_user(struct wmOperatorType *ot);
68 void OBJECT_OT_make_links_scene(struct wmOperatorType *ot);
69 void OBJECT_OT_make_links_data(struct wmOperatorType *ot);
70 void OBJECT_OT_drop_named_material(struct wmOperatorType *ot);
71 void OBJECT_OT_unlink_data(struct wmOperatorType *ot);
72
73 /* object_edit.c */
74 void OBJECT_OT_hide_view_set(struct wmOperatorType *ot);
75 void OBJECT_OT_hide_view_clear(struct wmOperatorType *ot);
76 void OBJECT_OT_hide_collection(struct wmOperatorType *ot);
77 void OBJECT_OT_mode_set(struct wmOperatorType *ot);
78 void OBJECT_OT_mode_set_with_submode(struct wmOperatorType *ot);
79 void OBJECT_OT_editmode_toggle(struct wmOperatorType *ot);
80 void OBJECT_OT_posemode_toggle(struct wmOperatorType *ot);
81 void OBJECT_OT_proxy_make(struct wmOperatorType *ot);
82 void OBJECT_OT_shade_smooth(struct wmOperatorType *ot);
83 void OBJECT_OT_shade_flat(struct wmOperatorType *ot);
84 void OBJECT_OT_paths_calculate(struct wmOperatorType *ot);
85 void OBJECT_OT_paths_update(struct wmOperatorType *ot);
86 void OBJECT_OT_paths_clear(struct wmOperatorType *ot);
87 void OBJECT_OT_paths_range_update(struct wmOperatorType *ot);
88 void OBJECT_OT_forcefield_toggle(struct wmOperatorType *ot);
89
90 void OBJECT_OT_move_to_collection(struct wmOperatorType *ot);
91 void OBJECT_OT_link_to_collection(struct wmOperatorType *ot);
92
93 void OBJECT_OT_switch_object(struct wmOperatorType *ot);
94
95 /* object_select.c */
96 void OBJECT_OT_select_all(struct wmOperatorType *ot);
97 void OBJECT_OT_select_random(struct wmOperatorType *ot);
98 void OBJECT_OT_select_by_type(struct wmOperatorType *ot);
99 void OBJECT_OT_select_linked(struct wmOperatorType *ot);
100 void OBJECT_OT_select_grouped(struct wmOperatorType *ot);
101 void OBJECT_OT_select_mirror(struct wmOperatorType *ot);
102 void OBJECT_OT_select_more(struct wmOperatorType *ot);
103 void OBJECT_OT_select_less(struct wmOperatorType *ot);
104 void OBJECT_OT_select_same_collection(struct wmOperatorType *ot);
105
106 /* object_add.c */
107 void OBJECT_OT_add(struct wmOperatorType *ot);
108 void OBJECT_OT_add_named(struct wmOperatorType *ot);
109 void OBJECT_OT_metaball_add(struct wmOperatorType *ot);
110 void OBJECT_OT_text_add(struct wmOperatorType *ot);
111 void OBJECT_OT_armature_add(struct wmOperatorType *ot);
112 void OBJECT_OT_empty_add(struct wmOperatorType *ot);
113 void OBJECT_OT_lightprobe_add(struct wmOperatorType *ot);
114 void OBJECT_OT_drop_named_image(struct wmOperatorType *ot);
115 void OBJECT_OT_gpencil_add(struct wmOperatorType *ot);
116 void OBJECT_OT_light_add(struct wmOperatorType *ot);
117 void OBJECT_OT_effector_add(struct wmOperatorType *ot);
118 void OBJECT_OT_camera_add(struct wmOperatorType *ot);
119 void OBJECT_OT_speaker_add(struct wmOperatorType *ot);
120 void OBJECT_OT_hair_add(struct wmOperatorType *ot);
121 void OBJECT_OT_pointcloud_add(struct wmOperatorType *ot);
122 void OBJECT_OT_collection_instance_add(struct wmOperatorType *ot);
123 void OBJECT_OT_data_instance_add(struct wmOperatorType *ot);
124
125 void OBJECT_OT_duplicates_make_real(struct wmOperatorType *ot);
126 void OBJECT_OT_duplicate(struct wmOperatorType *ot);
127 void OBJECT_OT_delete(struct wmOperatorType *ot);
128 void OBJECT_OT_join(struct wmOperatorType *ot);
129 void OBJECT_OT_join_shapes(struct wmOperatorType *ot);
130 void OBJECT_OT_convert(struct wmOperatorType *ot);
131
132 /* object_volume.c */
133 void OBJECT_OT_volume_add(struct wmOperatorType *ot);
134 void OBJECT_OT_volume_import(struct wmOperatorType *ot);
135
136 /* object_hook.c */
137 void OBJECT_OT_hook_add_selob(struct wmOperatorType *ot);
138 void OBJECT_OT_hook_add_newob(struct wmOperatorType *ot);
139 void OBJECT_OT_hook_remove(struct wmOperatorType *ot);
140 void OBJECT_OT_hook_select(struct wmOperatorType *ot);
141 void OBJECT_OT_hook_assign(struct wmOperatorType *ot);
142 void OBJECT_OT_hook_reset(struct wmOperatorType *ot);
143 void OBJECT_OT_hook_recenter(struct wmOperatorType *ot);
144
145 /* object_collection.c */
146 void COLLECTION_OT_create(struct wmOperatorType *ot);
147 void COLLECTION_OT_objects_remove_all(struct wmOperatorType *ot);
148 void COLLECTION_OT_objects_remove(struct wmOperatorType *ot);
149 void COLLECTION_OT_objects_add_active(struct wmOperatorType *ot);
150 void COLLECTION_OT_objects_remove_active(struct wmOperatorType *ot);
151
152 /* object_modifier.c */
153 bool edit_modifier_poll_generic(struct bContext *C,
154                                 struct StructRNA *rna_type,
155                                 int obtype_flag,
156                                 const bool is_editmode_allowed,
157                                 const bool is_liboverride_allowed);
158 void edit_modifier_properties(struct wmOperatorType *ot);
159 bool edit_modifier_invoke_properties(struct bContext *C,
160                                      struct wmOperator *op,
161                                      const struct wmEvent *event,
162                                      int *r_retval);
163 struct ModifierData *edit_modifier_property_get(struct wmOperator *op,
164                                                 struct Object *ob,
165                                                 int type);
166
167 void OBJECT_OT_modifier_add(struct wmOperatorType *ot);
168 void OBJECT_OT_modifier_remove(struct wmOperatorType *ot);
169 void OBJECT_OT_modifier_move_up(struct wmOperatorType *ot);
170 void OBJECT_OT_modifier_move_down(struct wmOperatorType *ot);
171 void OBJECT_OT_modifier_move_to_index(struct wmOperatorType *ot);
172 void OBJECT_OT_modifier_apply(struct wmOperatorType *ot);
173 void OBJECT_OT_modifier_apply_as_shapekey(wmOperatorType *ot);
174 void OBJECT_OT_modifier_convert(struct wmOperatorType *ot);
175 void OBJECT_OT_modifier_copy(struct wmOperatorType *ot);
176 void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot);
177 void OBJECT_OT_multires_reshape(struct wmOperatorType *ot);
178 void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot);
179 void OBJECT_OT_multires_base_apply(struct wmOperatorType *ot);
180 void OBJECT_OT_multires_unsubdivide(struct wmOperatorType *ot);
181 void OBJECT_OT_multires_rebuild_subdiv(struct wmOperatorType *ot);
182 void OBJECT_OT_multires_external_save(struct wmOperatorType *ot);
183 void OBJECT_OT_multires_external_pack(struct wmOperatorType *ot);
184 void OBJECT_OT_correctivesmooth_bind(struct wmOperatorType *ot);
185 void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot);
186 void OBJECT_OT_explode_refresh(struct wmOperatorType *ot);
187 void OBJECT_OT_ocean_bake(struct wmOperatorType *ot);
188 void OBJECT_OT_skin_root_mark(struct wmOperatorType *ot);
189 void OBJECT_OT_skin_loose_mark_clear(struct wmOperatorType *ot);
190 void OBJECT_OT_skin_radii_equalize(struct wmOperatorType *ot);
191 void OBJECT_OT_skin_armature_create(struct wmOperatorType *ot);
192 void OBJECT_OT_laplaciandeform_bind(struct wmOperatorType *ot);
193 void OBJECT_OT_surfacedeform_bind(struct wmOperatorType *ot);
194
195 /* object_gpencil_modifiers.c */
196 void OBJECT_OT_gpencil_modifier_add(struct wmOperatorType *ot);
197 void OBJECT_OT_gpencil_modifier_remove(struct wmOperatorType *ot);
198 void OBJECT_OT_gpencil_modifier_move_up(struct wmOperatorType *ot);
199 void OBJECT_OT_gpencil_modifier_move_down(struct wmOperatorType *ot);
200 void OBJECT_OT_gpencil_modifier_move_to_index(struct wmOperatorType *ot);
201 void OBJECT_OT_gpencil_modifier_apply(struct wmOperatorType *ot);
202 void OBJECT_OT_gpencil_modifier_copy(struct wmOperatorType *ot);
203
204 /* object_shader_fx.c */
205 void OBJECT_OT_shaderfx_add(struct wmOperatorType *ot);
206 void OBJECT_OT_shaderfx_remove(struct wmOperatorType *ot);
207 void OBJECT_OT_shaderfx_move_up(struct wmOperatorType *ot);
208 void OBJECT_OT_shaderfx_move_down(struct wmOperatorType *ot);
209 void OBJECT_OT_shaderfx_move_to_index(struct wmOperatorType *ot);
210
211 /* object_constraint.c */
212 void OBJECT_OT_constraint_add(struct wmOperatorType *ot);
213 void OBJECT_OT_constraint_add_with_targets(struct wmOperatorType *ot);
214 void POSE_OT_constraint_add(struct wmOperatorType *ot);
215 void POSE_OT_constraint_add_with_targets(struct wmOperatorType *ot);
216
217 void OBJECT_OT_constraints_copy(struct wmOperatorType *ot);
218 void POSE_OT_constraints_copy(struct wmOperatorType *ot);
219
220 void OBJECT_OT_constraints_clear(struct wmOperatorType *ot);
221 void POSE_OT_constraints_clear(struct wmOperatorType *ot);
222
223 void POSE_OT_ik_add(struct wmOperatorType *ot);
224 void POSE_OT_ik_clear(struct wmOperatorType *ot);
225
226 void CONSTRAINT_OT_delete(struct wmOperatorType *ot);
227
228 void CONSTRAINT_OT_move_up(struct wmOperatorType *ot);
229 void CONSTRAINT_OT_move_to_index(struct wmOperatorType *ot);
230 void CONSTRAINT_OT_move_down(struct wmOperatorType *ot);
231
232 void CONSTRAINT_OT_stretchto_reset(struct wmOperatorType *ot);
233 void CONSTRAINT_OT_limitdistance_reset(struct wmOperatorType *ot);
234 void CONSTRAINT_OT_childof_set_inverse(struct wmOperatorType *ot);
235 void CONSTRAINT_OT_childof_clear_inverse(struct wmOperatorType *ot);
236 void CONSTRAINT_OT_objectsolver_set_inverse(struct wmOperatorType *ot);
237 void CONSTRAINT_OT_objectsolver_clear_inverse(struct wmOperatorType *ot);
238 void CONSTRAINT_OT_followpath_path_animate(struct wmOperatorType *ot);
239
240 /* object_vgroup.c */
241 void OBJECT_OT_vertex_group_add(struct wmOperatorType *ot);
242 void OBJECT_OT_vertex_group_remove(struct wmOperatorType *ot);
243 void OBJECT_OT_vertex_group_assign(struct wmOperatorType *ot);
244 void OBJECT_OT_vertex_group_assign_new(struct wmOperatorType *ot);
245 void OBJECT_OT_vertex_group_remove_from(struct wmOperatorType *ot);
246 void OBJECT_OT_vertex_group_select(struct wmOperatorType *ot);
247 void OBJECT_OT_vertex_group_deselect(struct wmOperatorType *ot);
248 void OBJECT_OT_vertex_group_copy_to_linked(struct wmOperatorType *ot);
249 void OBJECT_OT_vertex_group_copy_to_selected(struct wmOperatorType *ot);
250 void OBJECT_OT_vertex_group_copy(struct wmOperatorType *ot);
251 void OBJECT_OT_vertex_group_normalize(struct wmOperatorType *ot);
252 void OBJECT_OT_vertex_group_normalize_all(struct wmOperatorType *ot);
253 void OBJECT_OT_vertex_group_levels(struct wmOperatorType *ot);
254 void OBJECT_OT_vertex_group_lock(struct wmOperatorType *ot);
255 void OBJECT_OT_vertex_group_fix(struct wmOperatorType *ot);
256 void OBJECT_OT_vertex_group_invert(struct wmOperatorType *ot);
257 void OBJECT_OT_vertex_group_smooth(struct wmOperatorType *ot);
258 void OBJECT_OT_vertex_group_clean(struct wmOperatorType *ot);
259 void OBJECT_OT_vertex_group_quantize(struct wmOperatorType *ot);
260 void OBJECT_OT_vertex_group_limit_total(struct wmOperatorType *ot);
261 void OBJECT_OT_vertex_group_mirror(struct wmOperatorType *ot);
262 void OBJECT_OT_vertex_group_set_active(struct wmOperatorType *ot);
263 void OBJECT_OT_vertex_group_sort(struct wmOperatorType *ot);
264 void OBJECT_OT_vertex_group_move(struct wmOperatorType *ot);
265 void OBJECT_OT_vertex_weight_paste(struct wmOperatorType *ot);
266 void OBJECT_OT_vertex_weight_delete(struct wmOperatorType *ot);
267 void OBJECT_OT_vertex_weight_set_active(struct wmOperatorType *ot);
268 void OBJECT_OT_vertex_weight_normalize_active_vertex(struct wmOperatorType *ot);
269 void OBJECT_OT_vertex_weight_copy(struct wmOperatorType *ot);
270
271 /* object_facemap_ops.c */
272 void OBJECT_OT_face_map_add(struct wmOperatorType *ot);
273 void OBJECT_OT_face_map_remove(struct wmOperatorType *ot);
274 void OBJECT_OT_face_map_assign(struct wmOperatorType *ot);
275 void OBJECT_OT_face_map_remove_from(struct wmOperatorType *ot);
276 void OBJECT_OT_face_map_select(struct wmOperatorType *ot);
277 void OBJECT_OT_face_map_deselect(struct wmOperatorType *ot);
278 void OBJECT_OT_face_map_move(struct wmOperatorType *ot);
279
280 /* object_warp.c */
281 void TRANSFORM_OT_vertex_warp(struct wmOperatorType *ot);
282
283 /* object_shapekey.c */
284 void OBJECT_OT_shape_key_add(struct wmOperatorType *ot);
285 void OBJECT_OT_shape_key_remove(struct wmOperatorType *ot);
286 void OBJECT_OT_shape_key_clear(struct wmOperatorType *ot);
287 void OBJECT_OT_shape_key_retime(struct wmOperatorType *ot);
288 void OBJECT_OT_shape_key_mirror(struct wmOperatorType *ot);
289 void OBJECT_OT_shape_key_move(struct wmOperatorType *ot);
290
291 /* object_collection.c */
292 void OBJECT_OT_collection_add(struct wmOperatorType *ot);
293 void OBJECT_OT_collection_link(struct wmOperatorType *ot);
294 void OBJECT_OT_collection_remove(struct wmOperatorType *ot);
295 void OBJECT_OT_collection_unlink(struct wmOperatorType *ot);
296 void OBJECT_OT_collection_objects_select(struct wmOperatorType *ot);
297
298 /* object_bake.c */
299 void OBJECT_OT_bake_image(wmOperatorType *ot);
300 void OBJECT_OT_bake(wmOperatorType *ot);
301
302 /* object_random.c */
303 void TRANSFORM_OT_vertex_random(struct wmOperatorType *ot);
304
305 /* object_remesh.c */
306 void OBJECT_OT_voxel_remesh(struct wmOperatorType *ot);
307 void OBJECT_OT_voxel_size_edit(struct wmOperatorType *ot);
308 void OBJECT_OT_quadriflow_remesh(struct wmOperatorType *ot);
309
310 /* object_transfer_data.c */
311 void OBJECT_OT_data_transfer(struct wmOperatorType *ot);
312 void OBJECT_OT_datalayout_transfer(struct wmOperatorType *ot);
313
314 #ifdef __cplusplus
315 }
316 #endif