Blender  V2.93
WM_gizmo_api.h
Go to the documentation of this file.
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) 2016 Blender Foundation.
17  * All rights reserved.
18  */
19 
29 #pragma once
30 
31 struct ARegion;
32 struct GHashIterator;
33 struct IDProperty;
34 struct Main;
35 struct PropertyRNA;
36 struct ScrArea;
37 struct bToolRef;
38 struct wmGizmo;
39 struct wmGizmoGroup;
40 struct wmGizmoGroupType;
41 struct wmGizmoMap;
42 struct wmGizmoMapType;
44 struct wmGizmoProperty;
45 struct wmGizmoPropertyType;
46 struct wmGizmoType;
47 struct wmKeyConfig;
48 struct wmMsgSubscribeKey;
49 struct wmMsgSubscribeValue;
50 struct wmWindowManager;
51 
52 #include "wm_gizmo_fn.h"
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 /* -------------------------------------------------------------------- */
59 /* wmGizmo */
60 
61 struct wmGizmo *WM_gizmo_new_ptr(const struct wmGizmoType *gzt,
62  struct wmGizmoGroup *gzgroup,
63  struct PointerRNA *properties);
64 struct wmGizmo *WM_gizmo_new(const char *idname,
65  struct wmGizmoGroup *gzgroup,
66  struct PointerRNA *properties);
67 void WM_gizmo_free(struct wmGizmo *gz);
68 void WM_gizmo_unlink(ListBase *gizmolist,
69  struct wmGizmoMap *gzmap,
70  struct wmGizmo *gz,
71  struct bContext *C);
72 
73 bool WM_gizmo_select_unlink(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
74 bool WM_gizmo_select_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz, bool select);
75 bool WM_gizmo_highlight_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
76 
78  struct bContext *C,
79  struct wmGizmo *gz,
80  int part_index,
81  const struct wmEvent *event);
82 
83 struct wmGizmoOpElem *WM_gizmo_operator_get(struct wmGizmo *gz, int part_index);
84 struct PointerRNA *WM_gizmo_operator_set(struct wmGizmo *gz,
85  int part_index,
86  struct wmOperatorType *ot,
87  struct IDProperty *properties);
88 int WM_gizmo_operator_invoke(struct bContext *C, struct wmGizmo *gz, struct wmGizmoOpElem *gzop);
89 
90 /* callbacks */
92 
93 void WM_gizmo_set_matrix_location(struct wmGizmo *gz, const float origin[3]);
94 void WM_gizmo_set_matrix_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
96  const float y_axis[3],
97  const float z_axis[3]);
98 
99 void WM_gizmo_set_matrix_offset_location(struct wmGizmo *gz, const float offset[3]);
100 void WM_gizmo_set_matrix_offset_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
102  const float y_axis[3],
103  const float z_axis[3]);
104 
105 void WM_gizmo_set_flag(struct wmGizmo *gz, const int flag, const bool enable);
106 void WM_gizmo_set_scale(struct wmGizmo *gz, const float scale);
107 void WM_gizmo_set_line_width(struct wmGizmo *gz, const float line_width);
108 
109 void WM_gizmo_get_color(const struct wmGizmo *gz, float color[4]);
110 void WM_gizmo_set_color(struct wmGizmo *gz, const float color[4]);
111 void WM_gizmo_get_color_highlight(const struct wmGizmo *gz, float color_hi[4]);
112 void WM_gizmo_set_color_highlight(struct wmGizmo *gz, const float color[4]);
113 
118  const float (*matrix_space)[4];
119  const float (*matrix_basis)[4];
120  const float (*matrix_offset)[4];
121  const float *scale_final;
122 };
123 
125  const struct WM_GizmoMatrixParams *params,
126  float r_mat[4][4]);
127 void WM_gizmo_calc_matrix_final_no_offset(const struct wmGizmo *gz, float r_mat[4][4]);
128 
129 void WM_gizmo_calc_matrix_final(const struct wmGizmo *gz, float r_mat[4][4]);
130 
131 /* properties */
132 void WM_gizmo_properties_create_ptr(struct PointerRNA *ptr, struct wmGizmoType *gzt);
133 void WM_gizmo_properties_create(struct PointerRNA *ptr, const char *gtstring);
135  struct IDProperty **properties,
136  const char *gtstring);
137 void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, const bool no_context);
138 bool WM_gizmo_properties_default(struct PointerRNA *ptr, const bool do_update);
139 void WM_gizmo_properties_reset(struct wmGizmo *gz);
142 
143 /* wm_gizmo_type.c */
144 const struct wmGizmoType *WM_gizmotype_find(const char *idname, bool quiet);
145 void WM_gizmotype_append(void (*gtfunc)(struct wmGizmoType *));
146 void WM_gizmotype_append_ptr(void (*gtfunc)(struct wmGizmoType *, void *), void *userdata);
147 bool WM_gizmotype_remove(struct bContext *C, struct Main *bmain, const char *idname);
148 void WM_gizmotype_remove_ptr(struct bContext *C, struct Main *bmain, struct wmGizmoType *gzt);
149 void WM_gizmotype_free_ptr(struct wmGizmoType *gzt);
150 void WM_gizmotype_iter(struct GHashIterator *ghi);
151 
152 /* wm_gizmo_group_type.c */
153 struct wmGizmoGroupType *WM_gizmogrouptype_find(const char *idname, bool quiet);
154 struct wmGizmoGroupType *WM_gizmogrouptype_append(void (*wtfunc)(struct wmGizmoGroupType *));
155 struct wmGizmoGroupType *WM_gizmogrouptype_append_ptr(void (*wtfunc)(struct wmGizmoGroupType *,
156  void *),
157  void *userdata);
158 void WM_gizmogrouptype_iter(struct GHashIterator *ghi);
159 
161  struct wmGizmoMapType *gzmap_type, void (*wtfunc)(struct wmGizmoGroupType *));
162 
163 /* wm_gizmo_map.c */
164 
165 /* Dynamic Updates (for RNA runtime registration) */
167  struct wmGizmoGroupType *gzgt);
169  struct wmGizmoGroupType *gzgt);
170 void WM_gizmoconfig_update(struct Main *bmain);
171 
173 
174 /* wm_maniulator_target_props.c */
177 struct wmGizmoProperty *WM_gizmo_target_property_find(struct wmGizmo *gz, const char *idname);
178 
180  const struct wmGizmoPropertyType *gz_prop_type,
181  struct PointerRNA *ptr,
182  struct PropertyRNA *prop,
183  int index);
185  const char *idname,
186  struct PointerRNA *ptr,
187  const char *propname,
188  int index);
189 
191  const struct wmGizmoPropertyType *gz_prop_type,
192  const struct wmGizmoPropertyFnParams *params);
194  const char *idname,
195  const struct wmGizmoPropertyFnParams *params);
196 
198  const struct wmGizmoPropertyType *gz_prop_type);
199 void WM_gizmo_target_property_clear_rna(struct wmGizmo *gz, const char *idname);
200 
204  struct wmGizmoProperty *gz_prop);
206  const struct wmGizmo *gz,
207  struct wmGizmoProperty *gz_prop,
208  const float value);
209 
211  struct wmGizmoProperty *gz_prop,
212  float *value);
214  const struct wmGizmo *gz,
215  struct wmGizmoProperty *gz_prop,
216  const float *value);
217 
219  struct wmGizmoProperty *gz_prop,
220  float range[2]);
221 
223  struct wmGizmoProperty *gz_prop);
224 
225 /* definitions */
227  const char *idname);
229  const char *idname,
230  int data_type,
231  int array_length);
232 
233 /* utilities */
235  struct wmMsgSubscribeKey *msg_key,
236  struct wmMsgSubscribeValue *msg_val);
238  struct wmMsgBus *mbus,
239  struct ARegion *region);
240 
242  const struct wmGizmo *gz,
243  struct wmGizmoProperty *gz_prop);
244 
245 /* -------------------------------------------------------------------- */
246 /* wmGizmoGroup */
247 
248 /* Callbacks for 'wmGizmoGroupType.setup_keymap' */
250  struct wmKeyConfig *kc);
252  struct wmKeyConfig *kc);
254  struct wmKeyConfig *kc);
256  struct wmKeyConfig *kc);
257 
258 /* Utility functions (not callbacks). */
261 
264 
267 
270 
273 
274 void WM_gizmogroup_ensure_init(const struct bContext *C, struct wmGizmoGroup *gzgroup);
275 
276 /* Sort utilities for use with 'BLI_listbase_sort'. */
277 int WM_gizmo_cmp_temp_fl(const void *gz_a_ptr, const void *gz_b_ptr);
278 int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr);
279 
280 /* -------------------------------------------------------------------- */
281 /* wmGizmoMap */
282 
283 struct wmGizmoMap *WM_gizmomap_new_from_type(const struct wmGizmoMapType_Params *gzmap_params);
284 void WM_gizmomap_reinit(struct wmGizmoMap *gzmap);
285 const struct ListBase *WM_gizmomap_group_list(struct wmGizmoMap *gzmap);
286 struct wmGizmoGroup *WM_gizmomap_group_find(struct wmGizmoMap *gzmap, const char *idname);
288  const struct wmGizmoGroupType *gzgt);
289 
292  const eWM_GizmoFlagMapDrawStep drawstep);
293 void WM_gizmomap_tag_refresh(struct wmGizmoMap *gzmap);
294 
296 
297 void WM_gizmomap_draw(struct wmGizmoMap *gzmap,
298  const struct bContext *C,
299  const eWM_GizmoFlagMapDrawStep drawstep);
300 void WM_gizmomap_add_handlers(struct ARegion *region, struct wmGizmoMap *gzmap);
301 bool WM_gizmomap_select_all(struct bContext *C, struct wmGizmoMap *gzmap, const int action);
302 bool WM_gizmomap_cursor_set(const struct wmGizmoMap *gzmap, struct wmWindow *win);
304  struct wmGizmoMap *gzmap,
305  struct ARegion *region,
306  struct wmMsgBus *mbus);
307 bool WM_gizmomap_is_any_selected(const struct wmGizmoMap *gzmap);
308 bool WM_gizmomap_minmax(const struct wmGizmoMap *gzmap,
309  bool use_hidden,
310  bool use_select,
311  float r_min[3],
312  float r_max[3]);
313 
315  struct ARegion *region,
316  int *pass,
317  double *pass_delay,
318  bool *r_exit_on_event);
319 
320 /* -------------------------------------------------------------------- */
321 /* wmGizmoMapType */
322 
323 struct wmGizmoMapType *WM_gizmomaptype_find(const struct wmGizmoMapType_Params *gzmap_params);
324 struct wmGizmoMapType *WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params);
325 
327  const char *idname);
329  const struct wmGizmoGroupType *gzgt);
331  const char *idname);
333  struct wmGizmoGroupType *gzgt);
334 
336  struct wmGizmoGroupType *gzgt);
337 void WM_gizmomaptype_group_init_runtime(const struct Main *bmain,
338  struct wmGizmoMapType *gzmap_type,
339  struct wmGizmoGroupType *gzgt);
341  struct wmGizmoGroupType *gzgt,
342  struct ARegion *region);
344  struct Main *bmain,
345  struct wmGizmoMapType *gzmap_type,
346  const struct wmGizmoGroupType *gzgt);
347 
349 
350 /* -------------------------------------------------------------------- */
351 /* GizmoGroup */
352 
353 /* Add/Ensure/Remove (High level API) */
354 
356  struct wmGizmoMapType *gzmap_type);
358 void WM_gizmo_group_type_add(const char *idname);
359 
361  struct wmGizmoMapType *gzmap_type);
363 bool WM_gizmo_group_type_ensure(const char *idname);
364 
365 void WM_gizmo_group_type_remove_ptr_ex(struct Main *bmain,
366  struct wmGizmoGroupType *gzgt,
367  struct wmGizmoMapType *gzmap_type);
368 void WM_gizmo_group_type_remove_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
369 void WM_gizmo_group_type_remove(struct Main *bmain, const char *idname);
370 
372  struct wmGizmoMapType *gzmap_type);
374 void WM_gizmo_group_type_unlink_delayed(const char *idname);
375 
377  struct wmGizmoMapType *gzmap_type,
378  struct ScrArea *area);
379 
381 bool WM_gizmo_group_type_free(const char *idname);
382 
383 /* Has the result of unlinking and linking (re-initializes gizmo's). */
384 void WM_gizmo_group_type_reinit_ptr_ex(struct Main *bmain,
385  struct wmGizmoGroupType *gzgt,
386  struct wmGizmoMapType *gzmap_type);
387 void WM_gizmo_group_type_reinit_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
388 void WM_gizmo_group_type_reinit(struct Main *bmain, const char *idname);
389 
390 /* Utilities */
392 
394  struct Main *bmain,
395  const struct wmGizmoGroupType *gzgt,
396  const struct bToolRef *tref);
397 
398 void WM_gizmo_group_tag_remove(struct wmGizmoGroup *gzgroup);
399 
400 /* Wrap Group Type Callbacks. */
401 bool WM_gizmo_group_type_poll(const struct bContext *C, const struct wmGizmoGroupType *gzgt);
402 void WM_gizmo_group_refresh(const struct bContext *C, struct wmGizmoGroup *gzgroup);
403 
404 #ifdef __cplusplus
405 }
406 #endif
typedef float(TangentPoint)[2]
#define C
Definition: RandGen.cpp:39
void WM_gizmo_properties_clear(struct PointerRNA *ptr)
Definition: wm_gizmo.c:737
void WM_gizmo_calc_matrix_final_no_offset(const struct wmGizmo *gz, float r_mat[4][4])
struct wmKeyMap * WM_gizmo_keymap_generic_click_drag(struct wmWindowManager *wm)
bool WM_gizmomap_minmax(const struct wmGizmoMap *gzmap, bool use_hidden, bool use_select, float r_min[3], float r_max[3])
void WM_gizmo_target_property_anim_autokey(struct bContext *C, const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop)
struct wmGizmoGroupType * WM_gizmogrouptype_append(void(*wtfunc)(struct wmGizmoGroupType *))
struct PointerRNA * WM_gizmo_operator_set(struct wmGizmo *gz, int part_index, struct wmOperatorType *ot, struct IDProperty *properties)
Definition: wm_gizmo.c:232
bool WM_gizmotype_remove(struct bContext *C, struct Main *bmain, const char *idname)
int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr)
struct wmGizmoProperty * WM_gizmo_target_property_array(struct wmGizmo *gz)
void WM_gizmo_set_line_width(struct wmGizmo *gz, const float line_width)
Definition: wm_gizmo.c:354
void WM_gizmo_group_type_remove_ptr_ex(struct Main *bmain, struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
void WM_gizmo_set_scale(struct wmGizmo *gz, const float scale)
Definition: wm_gizmo.c:349
void WM_gizmotype_target_property_def(struct wmGizmoType *gzt, const char *idname, int data_type, int array_length)
void WM_gizmo_set_flag(struct wmGizmo *gz, const int flag, const bool enable)
Definition: wm_gizmo.c:339
bool WM_gizmo_context_check_drawstep(const struct bContext *C, eWM_GizmoFlagMapDrawStep step)
Definition: wm_gizmo.c:762
bool WM_gizmomap_select_all(struct bContext *C, struct wmGizmoMap *gzmap, const int action)
Definition: wm_gizmo_map.c:923
struct wmGizmoProperty * WM_gizmo_target_property_at_index(struct wmGizmo *gz, int index)
struct wmGizmoGroupTypeRef * WM_gizmogrouptype_append_and_link(struct wmGizmoMapType *gzmap_type, void(*wtfunc)(struct wmGizmoGroupType *))
void WM_gizmomaptype_group_init_runtime(const struct Main *bmain, struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt)
void WM_gizmotype_append_ptr(void(*gtfunc)(struct wmGizmoType *, void *), void *userdata)
void WM_gizmomap_reinit(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:211
struct wmGizmoGroupType * WM_gizmogrouptype_append_ptr(void(*wtfunc)(struct wmGizmoGroupType *, void *), void *userdata)
void WM_gizmo_set_fn_custom_modal(struct wmGizmo *gz, wmGizmoFnModal fn)
Definition: wm_gizmo.c:383
void WM_gizmo_get_color(const struct wmGizmo *gz, float color[4])
void WM_gizmo_modal_set_from_setup(struct wmGizmoMap *gzmap, struct bContext *C, struct wmGizmo *gz, int part_index, const struct wmEvent *event)
void WM_gizmo_group_unlink_delayed_ptr_from_space(struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type, struct ScrArea *area)
void WM_gizmo_group_type_add_ptr_ex(struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
void WM_gizmo_calc_matrix_final(const struct wmGizmo *gz, float r_mat[4][4])
struct wmKeyMap * WM_gizmo_keymap_generic_select(struct wmWindowManager *wm)
struct wmGizmoGroupTypeRef * WM_gizmomaptype_group_find_ptr(struct wmGizmoMapType *gzmap_type, const struct wmGizmoGroupType *gzgt)
void WM_gizmo_group_type_add_ptr(struct wmGizmoGroupType *gzgt)
struct wmKeyMap * WM_gizmo_keymap_generic_drag(struct wmWindowManager *wm)
void WM_gizmo_get_color_highlight(const struct wmGizmo *gz, float color_hi[4])
void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, const bool no_context)
Definition: wm_gizmo.c:654
void WM_gizmo_properties_alloc(struct PointerRNA **ptr, struct IDProperty **properties, const char *gtstring)
Definition: wm_gizmo.c:639
bool WM_gizmo_properties_default(struct PointerRNA *ptr, const bool do_update)
Definition: wm_gizmo.c:691
void WM_gizmomap_tag_refresh(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:323
void WM_gizmo_set_matrix_offset_location(struct wmGizmo *gz, const float offset[3])
Definition: wm_gizmo.c:334
void WM_gizmo_target_property_subscribe_all(struct wmGizmo *gz, struct wmMsgBus *mbus, struct ARegion *region)
struct wmKeyMap * WM_gizmogroup_setup_keymap_generic_drag(const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *kc)
int WM_gizmo_operator_invoke(struct bContext *C, struct wmGizmo *gz, struct wmGizmoOpElem *gzop)
Definition: wm_gizmo.c:258
void WM_gizmomaptype_group_unlink(struct bContext *C, struct Main *bmain, struct wmGizmoMapType *gzmap_type, const struct wmGizmoGroupType *gzgt)
struct wmKeyMap * WM_gizmo_keymap_generic_maybe_drag_with_keyconfig(struct wmKeyConfig *kc)
void WM_gizmo_set_matrix_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3])
Definition: wm_gizmo.c:306
struct wmGizmoGroupTypeRef * WM_gizmomaptype_group_link_ptr(struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt)
void WM_gizmomaptype_group_free(struct wmGizmoGroupTypeRef *gzgt)
void WM_gizmo_group_type_unlink_delayed_ptr(struct wmGizmoGroupType *gzgt)
void WM_gizmo_target_property_float_set_array(struct bContext *C, const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop, const float *value)
struct wmKeyMap * WM_gizmogroup_setup_keymap_generic(const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *kc)
struct wmKeyMap * WM_gizmo_keymap_generic_maybe_drag(struct wmWindowManager *wm)
void WM_gizmo_set_color_highlight(struct wmGizmo *gz, const float color[4])
Definition: wm_gizmo.c:372
void WM_gizmoconfig_update_tag_group_type_remove(struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt)
bool WM_gizmo_highlight_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz)
Definition: wm_gizmo.c:443
void WM_gizmo_target_property_def_rna(struct wmGizmo *gz, const char *idname, struct PointerRNA *ptr, const char *propname, int index)
void WM_gizmo_set_matrix_rotation_from_yz_axis(struct wmGizmo *gz, const float y_axis[3], const float z_axis[3])
Definition: wm_gizmo.c:310
struct wmKeyMap * WM_gizmogroup_setup_keymap_generic_select(const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *kc)
struct wmGizmoGroup * WM_gizmomap_group_find(struct wmGizmoMap *gzmap, const char *idname)
Definition: wm_gizmo_map.c:219
void WM_gizmo_group_type_reinit_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt)
void WM_gizmo_group_type_remove(struct Main *bmain, const char *idname)
void WM_gizmo_target_property_def_func(struct wmGizmo *gz, const char *idname, const struct wmGizmoPropertyFnParams *params)
void WM_gizmotype_remove_ptr(struct bContext *C, struct Main *bmain, struct wmGizmoType *gzt)
struct wmGizmo * WM_gizmo_new_ptr(const struct wmGizmoType *gzt, struct wmGizmoGroup *gzgroup, struct PointerRNA *properties)
void WM_gizmo_set_color(struct wmGizmo *gz, const float color[4])
Definition: wm_gizmo.c:363
float WM_gizmo_target_property_float_get(const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop)
void WM_gizmogrouptype_iter(struct GHashIterator *ghi)
struct wmGizmoGroup * WM_gizmomap_group_find_ptr(struct wmGizmoMap *gzmap, const struct wmGizmoGroupType *gzgt)
Definition: wm_gizmo_map.c:228
void WM_gizmo_properties_free(struct PointerRNA *ptr)
Definition: wm_gizmo.c:746
const struct ListBase * WM_gizmomap_group_list(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:239
bool WM_gizmo_group_type_ensure_ptr_ex(struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
bool WM_gizmo_target_property_float_range_get(const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop, float range[2])
struct wmGizmoGroupTypeRef * WM_gizmomaptype_group_link(struct wmGizmoMapType *gzmap_type, const char *idname)
bool WM_gizmo_target_property_is_valid_any(struct wmGizmo *gz)
void WM_gizmo_group_type_add(const char *idname)
void WM_gizmo_target_property_clear_rna(struct wmGizmo *gz, const char *idname)
void WM_gizmo_group_type_reinit(struct Main *bmain, const char *idname)
struct wmKeyMap * WM_gizmo_keymap_generic_drag_with_keyconfig(struct wmKeyConfig *kc)
bool WM_gizmo_group_type_poll(const struct bContext *C, const struct wmGizmoGroupType *gzgt)
void WM_gizmo_group_type_free_ptr(wmGizmoGroupType *gzgt)
void WM_gizmo_properties_reset(struct wmGizmo *gz)
Definition: wm_gizmo.c:719
int WM_gizmo_target_property_array_length(const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop)
struct wmKeyMap * WM_gizmo_keymap_generic_select_with_keyconfig(struct wmKeyConfig *kc)
void WM_gizmo_group_type_unlink_delayed_ptr_ex(struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
void WM_gizmotype_free_ptr(struct wmGizmoType *gzt)
void WM_gizmo_calc_matrix_final_params(const struct wmGizmo *gz, const struct WM_GizmoMatrixParams *params, float r_mat[4][4])
struct wmGizmoMap * WM_gizmomap_new_from_type(const struct wmGizmoMapType_Params *gzmap_params)
Definition: wm_gizmo_map.c:182
void WM_gizmo_properties_create(struct PointerRNA *ptr, const char *gtstring)
Definition: wm_gizmo.c:625
bool WM_gizmo_group_type_ensure(const char *idname)
void WM_gizmomap_add_handlers(struct ARegion *region, struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:792
struct wmKeyMap * WM_gizmo_keymap_generic_with_keyconfig(struct wmKeyConfig *kc)
bool WM_gizmo_group_type_free(const char *idname)
void WM_gizmomap_draw(struct wmGizmoMap *gzmap, const struct bContext *C, const eWM_GizmoFlagMapDrawStep drawstep)
struct wmGizmoGroupTypeRef * WM_gizmomaptype_group_find(struct wmGizmoMapType *gzmap_type, const char *idname)
struct wmGizmoMapType * WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params)
bool WM_gizmo_select_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz, bool select)
Definition: wm_gizmo.c:438
bool WM_gizmo_target_property_is_valid(const struct wmGizmoProperty *gz_prop)
void WM_gizmo_group_refresh(const struct bContext *C, struct wmGizmoGroup *gzgroup)
struct wmGizmoProperty * WM_gizmo_target_property_find(struct wmGizmo *gz, const char *idname)
struct wmKeyMap * WM_gizmogroup_setup_keymap_generic_maybe_drag(const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *kc)
struct wmGizmoOpElem * WM_gizmo_operator_get(struct wmGizmo *gz, int part_index)
Definition: wm_gizmo.c:224
void WM_gizmo_group_type_unlink_delayed(const char *idname)
wmGizmoGroup * WM_gizmomaptype_group_init_runtime_with_region(struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt, struct ARegion *region)
void WM_gizmo_unlink(ListBase *gizmolist, struct wmGizmoMap *gzmap, struct wmGizmo *gz, struct bContext *C)
Definition: wm_gizmo.c:194
void WM_gizmo_target_property_float_get_array(const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop, float *value)
void WM_gizmo_group_tag_remove(struct wmGizmoGroup *gzgroup)
void WM_gizmo_target_property_def_rna_ptr(struct wmGizmo *gz, const struct wmGizmoPropertyType *gz_prop_type, struct PointerRNA *ptr, struct PropertyRNA *prop, int index)
void WM_gizmoconfig_update(struct Main *bmain)
void WM_gizmo_do_msg_notify_tag_refresh(struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
void WM_gizmo_free(struct wmGizmo *gz)
Definition: wm_gizmo.c:151
int WM_gizmo_cmp_temp_fl(const void *gz_a_ptr, const void *gz_b_ptr)
bool WM_gizmomap_tag_delay_refresh_for_tweak_check(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:332
void WM_gizmoconfig_update_tag_group_type_init(struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt)
void WM_gizmomap_tag_refresh_drawstep(struct wmGizmoMap *gzmap, const eWM_GizmoFlagMapDrawStep drawstep)
Definition: wm_gizmo_map.c:315
bool WM_gizmo_group_type_ensure_ptr(struct wmGizmoGroupType *gzgt)
void WM_gizmoconfig_update_tag_group_remove(struct wmGizmoMap *gzmap)
void WM_gizmo_properties_create_ptr(struct PointerRNA *ptr, struct wmGizmoType *gzt)
Definition: wm_gizmo.c:620
const struct wmGizmoPropertyType * WM_gizmotype_target_property_find(const struct wmGizmoType *gzt, const char *idname)
struct wmGizmoGroupType * WM_gizmogrouptype_find(const char *idname, bool quiet)
bool WM_gizmomap_cursor_set(const struct wmGizmoMap *gzmap, struct wmWindow *win)
void WM_gizmo_group_remove_by_tool(struct bContext *C, struct Main *bmain, const struct wmGizmoGroupType *gzgt, const struct bToolRef *tref)
struct ARegion * WM_gizmomap_tooltip_init(struct bContext *C, struct ARegion *region, int *pass, double *pass_delay, bool *r_exit_on_event)
void WM_gizmo_target_property_float_set(struct bContext *C, const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop, const float value)
void WM_gizmo_group_type_remove_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt)
void WM_gizmotype_append(void(*gtfunc)(struct wmGizmoType *))
void WM_gizmo_set_matrix_offset_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3])
Definition: wm_gizmo.c:324
eWM_GizmoFlagMapDrawStep WM_gizmomap_drawstep_from_gizmo_group(const struct wmGizmoGroup *gzgroup)
struct wmKeyMap * WM_gizmo_keymap_generic_click_drag_with_keyconfig(struct wmKeyConfig *kc)
struct wmGizmo * WM_gizmo_new(const char *idname, struct wmGizmoGroup *gzgroup, struct PointerRNA *properties)
Definition: wm_gizmo.c:114
const struct wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
Definition: wm_gizmo_type.c:58
bool WM_gizmomap_is_any_selected(const struct wmGizmoMap *gzmap)
void WM_gizmomaptype_group_init_runtime_keymap(const struct Main *bmain, struct wmGizmoGroupType *gzgt)
bool WM_gizmo_select_unlink(struct wmGizmoMap *gzmap, struct wmGizmo *gz)
Definition: wm_gizmo.c:433
void WM_gizmo_target_property_clear_rna_ptr(struct wmGizmo *gz, const struct wmGizmoPropertyType *gz_prop_type)
void WM_gizmotype_iter(struct GHashIterator *ghi)
Definition: wm_gizmo_type.c:82
void WM_gizmogroup_ensure_init(const struct bContext *C, struct wmGizmoGroup *gzgroup)
struct wmKeyMap * WM_gizmo_keymap_generic(struct wmWindowManager *wm)
struct wmGizmoMapType * WM_gizmomaptype_find(const struct wmGizmoMapType_Params *gzmap_params)
void WM_gizmo_group_type_reinit_ptr_ex(struct Main *bmain, struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
void WM_gizmo_set_matrix_location(struct wmGizmo *gz, const float origin[3])
Definition: wm_gizmo.c:316
void WM_gizmomap_message_subscribe(const struct bContext *C, struct wmGizmoMap *gzmap, struct ARegion *region, struct wmMsgBus *mbus)
void WM_gizmo_target_property_def_func_ptr(struct wmGizmo *gz, const struct wmGizmoPropertyType *gz_prop_type, const struct wmGizmoPropertyFnParams *params)
void WM_gizmo_set_matrix_offset_rotation_from_yz_axis(struct wmGizmo *gz, const float y_axis[3], const float z_axis[3])
Definition: wm_gizmo.c:328
eWM_GizmoFlagMapDrawStep
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition: BKE_main.h:116
const float * scale_final
Definition: WM_gizmo_api.h:121
const float(* matrix_basis)[4]
Definition: WM_gizmo_api.h:119
const float(* matrix_offset)[4]
Definition: WM_gizmo_api.h:120
const float(* matrix_space)[4]
Definition: WM_gizmo_api.h:118
const char * idname
PropertyRNA * prop
const char * idname
struct IDProperty * properties
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
Definition: util_avxb.h:167
PointerRNA * ptr
Definition: wm_files.c:3157
wmOperatorType * ot
Definition: wm_files.c:3156
int(* wmGizmoFnModal)(struct bContext *, struct wmGizmo *, const struct wmEvent *, eWM_GizmoFlagTweak)
Definition: wm_gizmo_fn.h:56