Blender  V3.3
WM_gizmo_api.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2016 Blender Foundation. All rights reserved. */
3 
13 #pragma once
14 
15 struct ARegion;
16 struct GHashIterator;
17 struct IDProperty;
18 struct Main;
19 struct PropertyRNA;
20 struct ScrArea;
21 struct bToolRef;
22 struct wmGizmo;
23 struct wmGizmoGroup;
24 struct wmGizmoGroupType;
25 struct wmGizmoMap;
26 struct wmGizmoMapType;
28 struct wmGizmoProperty;
29 struct wmGizmoPropertyType;
30 struct wmGizmoType;
31 struct wmKeyConfig;
32 struct wmMsgSubscribeKey;
33 struct wmMsgSubscribeValue;
34 struct wmWindowManager;
35 
36 #include "wm_gizmo_fn.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 /* -------------------------------------------------------------------- */
43 /* wmGizmo */
44 
45 struct wmGizmo *WM_gizmo_new_ptr(const struct wmGizmoType *gzt,
46  struct wmGizmoGroup *gzgroup,
47  struct PointerRNA *properties);
53 struct wmGizmo *WM_gizmo_new(const char *idname,
54  struct wmGizmoGroup *gzgroup,
55  struct PointerRNA *properties);
61 void WM_gizmo_free(struct wmGizmo *gz);
66 void WM_gizmo_unlink(ListBase *gizmolist,
67  struct wmGizmoMap *gzmap,
68  struct wmGizmo *gz,
69  struct bContext *C);
70 
74 bool WM_gizmo_select_unlink(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
75 bool WM_gizmo_select_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz, bool select);
76 bool WM_gizmo_highlight_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
77 
85  struct bContext *C,
86  struct wmGizmo *gz,
87  int part_index,
88  const struct wmEvent *event);
89 
90 struct wmGizmoOpElem *WM_gizmo_operator_get(struct wmGizmo *gz, int part_index);
91 struct PointerRNA *WM_gizmo_operator_set(struct wmGizmo *gz,
92  int part_index,
93  struct wmOperatorType *ot,
94  struct IDProperty *properties);
96  struct wmGizmo *gz,
97  struct wmGizmoOpElem *gzop,
98  const struct wmEvent *event);
99 
100 /* Callbacks. */
101 
103 
104 void WM_gizmo_set_matrix_location(struct wmGizmo *gz, const float origin[3]);
108 void WM_gizmo_set_matrix_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
113  const float y_axis[3],
114  const float z_axis[3]);
115 
116 void WM_gizmo_set_matrix_offset_location(struct wmGizmo *gz, const float offset[3]);
120 void WM_gizmo_set_matrix_offset_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
125  const float y_axis[3],
126  const float z_axis[3]);
127 
128 void WM_gizmo_set_flag(struct wmGizmo *gz, int flag, bool enable);
129 void WM_gizmo_set_scale(struct wmGizmo *gz, float scale);
130 void WM_gizmo_set_line_width(struct wmGizmo *gz, float line_width);
131 
132 void WM_gizmo_get_color(const struct wmGizmo *gz, float color[4]);
133 void WM_gizmo_set_color(struct wmGizmo *gz, const float color[4]);
134 void WM_gizmo_get_color_highlight(const struct wmGizmo *gz, float color_hi[4]);
135 void WM_gizmo_set_color_highlight(struct wmGizmo *gz, const float color[4]);
136 
141  const float (*matrix_space)[4];
142  const float (*matrix_basis)[4];
143  const float (*matrix_offset)[4];
144  const float *scale_final;
145 };
146 
148  const struct WM_GizmoMatrixParams *params,
149  float r_mat[4][4]);
150 void WM_gizmo_calc_matrix_final_no_offset(const struct wmGizmo *gz, float r_mat[4][4]);
151 
152 void WM_gizmo_calc_matrix_final(const struct wmGizmo *gz, float r_mat[4][4]);
153 
154 /* Properties. */
155 
156 void WM_gizmo_properties_create_ptr(struct PointerRNA *ptr, struct wmGizmoType *gzt);
157 void WM_gizmo_properties_create(struct PointerRNA *ptr, const char *gtstring);
163  struct IDProperty **properties,
164  const char *gtstring);
165 void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, bool no_context);
174 bool WM_gizmo_properties_default(struct PointerRNA *ptr, bool do_update);
178 void WM_gizmo_properties_reset(struct wmGizmo *gz);
181 
182 /* wm_gizmo_type.c */
183 
184 const struct wmGizmoType *WM_gizmotype_find(const char *idname, bool quiet);
185 void WM_gizmotype_append(void (*gtfunc)(struct wmGizmoType *));
186 void WM_gizmotype_append_ptr(void (*gtfunc)(struct wmGizmoType *, void *), void *userdata);
187 bool WM_gizmotype_remove(struct bContext *C, struct Main *bmain, const char *idname);
188 void WM_gizmotype_remove_ptr(struct bContext *C, struct Main *bmain, struct wmGizmoType *gzt);
192 void WM_gizmotype_free_ptr(struct wmGizmoType *gzt);
196 void WM_gizmotype_iter(struct GHashIterator *ghi);
197 
198 /* wm_gizmo_group_type.c */
199 
200 struct wmGizmoGroupType *WM_gizmogrouptype_find(const char *idname, bool quiet);
201 struct wmGizmoGroupType *WM_gizmogrouptype_append(void (*wtfunc)(struct wmGizmoGroupType *));
202 struct wmGizmoGroupType *WM_gizmogrouptype_append_ptr(void (*wtfunc)(struct wmGizmoGroupType *,
203  void *),
204  void *userdata);
208 void WM_gizmogrouptype_iter(struct GHashIterator *ghi);
209 
215  struct wmGizmoMapType *gzmap_type, void (*wtfunc)(struct wmGizmoGroupType *));
216 
217 /* wm_gizmo_map.c */
218 
219 /* Dynamic Updates (for RNA runtime registration) */
221  struct wmGizmoGroupType *gzgt);
223  struct wmGizmoGroupType *gzgt);
228 void WM_gizmoconfig_update(struct Main *bmain);
229 
231 
232 /* wm_maniulator_target_props.c */
233 
236 struct wmGizmoProperty *WM_gizmo_target_property_find(struct wmGizmo *gz, const char *idname);
237 
239  const struct wmGizmoPropertyType *gz_prop_type,
240  struct PointerRNA *ptr,
241  struct PropertyRNA *prop,
242  int index);
244  const char *idname,
245  struct PointerRNA *ptr,
246  const char *propname,
247  int index);
248 
250  const struct wmGizmoPropertyType *gz_prop_type,
251  const struct wmGizmoPropertyFnParams *params);
253  const char *idname,
254  const struct wmGizmoPropertyFnParams *params);
255 
257  const struct wmGizmoPropertyType *gz_prop_type);
258 void WM_gizmo_target_property_clear_rna(struct wmGizmo *gz, const char *idname);
259 
263  struct wmGizmoProperty *gz_prop);
265  const struct wmGizmo *gz,
266  struct wmGizmoProperty *gz_prop,
267  float value);
268 
270  struct wmGizmoProperty *gz_prop,
271  float *value);
273  const struct wmGizmo *gz,
274  struct wmGizmoProperty *gz_prop,
275  const float *value);
276 
278  struct wmGizmoProperty *gz_prop,
279  float range[2]);
280 
282  struct wmGizmoProperty *gz_prop);
283 
284 /* Definitions. */
285 
287  const char *idname);
289  const char *idname,
290  int data_type,
291  int array_length);
292 
293 /* Utilities. */
294 
296  struct wmMsgSubscribeKey *msg_key,
297  struct wmMsgSubscribeValue *msg_val);
302  struct wmMsgBus *mbus,
303  struct ARegion *region);
304 
309  const struct wmGizmo *gz,
310  struct wmGizmoProperty *gz_prop);
311 
312 /* -------------------------------------------------------------------- */
313 /* wmGizmoGroup */
314 
315 /* Callbacks for 'wmGizmoGroupType.setup_keymap' */
317  struct wmKeyConfig *kc);
319  struct wmKeyConfig *kc);
321  struct wmKeyConfig *kc);
323  struct wmKeyConfig *kc);
324 
325 /* Utility functions (not callbacks). */
326 
329 
332 
335 
338 
344 
345 void WM_gizmogroup_ensure_init(const struct bContext *C, struct wmGizmoGroup *gzgroup);
346 
347 /* Sort utilities for use with 'BLI_listbase_sort'. */
348 
349 int WM_gizmo_cmp_temp_fl(const void *gz_a_ptr, const void *gz_b_ptr);
350 int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr);
351 
352 /* -------------------------------------------------------------------- */
353 /* wmGizmoMap */
354 
358 struct wmGizmoMap *WM_gizmomap_new_from_type(const struct wmGizmoMapType_Params *gzmap_params);
362 void WM_gizmomap_reinit(struct wmGizmoMap *gzmap);
363 const struct ListBase *WM_gizmomap_group_list(struct wmGizmoMap *gzmap);
364 struct wmGizmoGroup *WM_gizmomap_group_find(struct wmGizmoMap *gzmap, const char *idname);
366  const struct wmGizmoGroupType *gzgt);
367 
370 void WM_gizmomap_tag_refresh(struct wmGizmoMap *gzmap);
371 
373 
374 void WM_gizmomap_draw(struct wmGizmoMap *gzmap,
375  const struct bContext *C,
376  eWM_GizmoFlagMapDrawStep drawstep);
377 void WM_gizmomap_add_handlers(struct ARegion *region, struct wmGizmoMap *gzmap);
384 bool WM_gizmomap_select_all(struct bContext *C, struct wmGizmoMap *gzmap, int action);
385 bool WM_gizmomap_cursor_set(const struct wmGizmoMap *gzmap, struct wmWindow *win);
387  struct wmGizmoMap *gzmap,
388  struct ARegion *region,
389  struct wmMsgBus *mbus);
390 bool WM_gizmomap_is_any_selected(const struct wmGizmoMap *gzmap);
391 struct wmGizmo *WM_gizmomap_get_modal(const struct wmGizmoMap *gzmap);
392 
396 bool WM_gizmomap_minmax(const struct wmGizmoMap *gzmap,
397  bool use_hidden,
398  bool use_select,
399  float r_min[3],
400  float r_max[3]);
401 
403  struct ARegion *region,
404  int *pass,
405  double *pass_delay,
406  bool *r_exit_on_event);
407 
408 /* -------------------------------------------------------------------- */
409 /* wmGizmoMapType */
410 
411 struct wmGizmoMapType *WM_gizmomaptype_find(const struct wmGizmoMapType_Params *gzmap_params);
412 struct wmGizmoMapType *WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params);
413 
415  const char *idname);
417  const struct wmGizmoGroupType *gzgt);
423  const char *idname);
425  struct wmGizmoGroupType *gzgt);
426 
428  struct wmGizmoGroupType *gzgt);
429 void WM_gizmomaptype_group_init_runtime(const struct Main *bmain,
430  struct wmGizmoMapType *gzmap_type,
431  struct wmGizmoGroupType *gzgt);
433  struct wmGizmoGroupType *gzgt,
434  struct ARegion *region);
436  struct Main *bmain,
437  struct wmGizmoMapType *gzmap_type,
438  const struct wmGizmoGroupType *gzgt);
439 
444 
445 /* -------------------------------------------------------------------- */
446 /* GizmoGroup */
447 
448 /* Add/Ensure/Remove (High level API) */
449 
451  struct wmGizmoMapType *gzmap_type);
453 void WM_gizmo_group_type_add(const char *idname);
454 
456  struct wmGizmoMapType *gzmap_type);
458 bool WM_gizmo_group_type_ensure(const char *idname);
459 
463 void WM_gizmo_group_type_remove_ptr_ex(struct Main *bmain,
464  struct wmGizmoGroupType *gzgt,
465  struct wmGizmoMapType *gzmap_type);
466 void WM_gizmo_group_type_remove_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
467 void WM_gizmo_group_type_remove(struct Main *bmain, const char *idname);
468 
470  struct wmGizmoMapType *gzmap_type);
472 void WM_gizmo_group_type_unlink_delayed(const char *idname);
473 
475  struct wmGizmoMapType *gzmap_type,
476  struct ScrArea *area);
477 
479 bool WM_gizmo_group_type_free(const char *idname);
480 
484 void WM_gizmo_group_type_reinit_ptr_ex(struct Main *bmain,
485  struct wmGizmoGroupType *gzgt,
486  struct wmGizmoMapType *gzmap_type);
487 void WM_gizmo_group_type_reinit_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
488 void WM_gizmo_group_type_reinit(struct Main *bmain, const char *idname);
489 
490 /* Utilities */
491 
493 
495  struct Main *bmain,
496  const struct wmGizmoGroupType *gzgt,
497  const struct bToolRef *tref);
498 
499 void WM_gizmo_group_tag_remove(struct wmGizmoGroup *gzgroup);
500 
501 /* Wrap Group Type Callbacks. */
502 
503 bool WM_gizmo_group_type_poll(const struct bContext *C, const struct wmGizmoGroupType *gzgt);
504 void WM_gizmo_group_refresh(const struct bContext *C, struct wmGizmoGroup *gzgroup);
505 
506 #ifdef __cplusplus
507 }
508 #endif
typedef float(TangentPoint)[2]
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
#define C
Definition: RandGen.cpp:25
void WM_gizmo_properties_clear(struct PointerRNA *ptr)
Definition: wm_gizmo.c:679
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:203
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_group_type_remove_ptr_ex(struct Main *bmain, struct wmGizmoGroupType *gzgt, struct wmGizmoMapType *gzmap_type)
void WM_gizmotype_target_property_def(struct wmGizmoType *gzt, const char *idname, int data_type, int array_length)
bool WM_gizmo_context_check_drawstep(const struct bContext *C, eWM_GizmoFlagMapDrawStep step)
Definition: wm_gizmo.c:704
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:194
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:348
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_alloc(struct PointerRNA **ptr, struct IDProperty **properties, const char *gtstring)
Definition: wm_gizmo.c:590
void WM_gizmomap_tag_refresh(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:308
void WM_gizmo_set_matrix_offset_location(struct wmGizmo *gz, const float offset[3])
Definition: wm_gizmo.c:299
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)
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:274
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)
bool WM_gizmo_properties_default(struct PointerRNA *ptr, bool do_update)
Definition: wm_gizmo.c:634
void WM_gizmo_set_color_highlight(struct wmGizmo *gz, const float color[4])
Definition: wm_gizmo.c:337
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:402
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:278
struct wmKeyMap * WM_gizmogroup_setup_keymap_generic_select(const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *kc)
void WM_gizmomap_tag_refresh_drawstep(struct wmGizmoMap *gzmap, eWM_GizmoFlagMapDrawStep drawstep)
Definition: wm_gizmo_map.c:300
struct wmGizmoGroup * WM_gizmomap_group_find(struct wmGizmoMap *gzmap, const char *idname)
Definition: wm_gizmo_map.c:202
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)
void WM_gizmo_set_flag(struct wmGizmo *gz, int flag, bool enable)
Definition: wm_gizmo.c:304
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:328
void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, bool no_context)
Definition: wm_gizmo.c:605
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:211
void WM_gizmo_properties_free(struct PointerRNA *ptr)
Definition: wm_gizmo.c:688
const struct ListBase * WM_gizmomap_group_list(struct wmGizmoMap *gzmap)
Definition: wm_gizmo_map.c:222
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)
struct wmGizmo * WM_gizmomap_get_modal(const struct wmGizmoMap *gzmap)
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_set_scale(struct wmGizmo *gz, float scale)
Definition: wm_gizmo.c:314
void WM_gizmo_properties_reset(struct wmGizmo *gz)
Definition: wm_gizmo.c:661
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:166
void WM_gizmo_properties_create(struct PointerRNA *ptr, const char *gtstring)
Definition: wm_gizmo.c:578
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:790
struct wmKeyMap * WM_gizmo_keymap_generic_with_keyconfig(struct wmKeyConfig *kc)
bool WM_gizmo_group_type_free(const char *idname)
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:397
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:195
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:165
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:126
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:317
void WM_gizmoconfig_update_tag_group_type_init(struct wmGizmoMapType *gzmap_type, struct wmGizmoGroupType *gzgt)
bool WM_gizmomap_select_all(struct bContext *C, struct wmGizmoMap *gzmap, int action)
Definition: wm_gizmo_map.c:911
bool WM_gizmo_group_type_ensure_ptr(struct wmGizmoGroupType *gzgt)
void WM_gizmomap_draw(struct wmGizmoMap *gzmap, const struct bContext *C, eWM_GizmoFlagMapDrawStep drawstep)
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:573
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_group_type_remove_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt)
void WM_gizmotype_append(void(*gtfunc)(struct wmGizmoType *))
Definition: wm_gizmo_type.c:93
void WM_gizmo_set_matrix_offset_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3])
Definition: wm_gizmo.c:289
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)
int WM_gizmo_operator_invoke(struct bContext *C, struct wmGizmo *gz, struct wmGizmoOpElem *gzop, const struct wmEvent *event)
struct wmGizmo * WM_gizmo_new(const char *idname, struct wmGizmoGroup *gzgroup, struct PointerRNA *properties)
Definition: wm_gizmo.c:94
void WM_gizmo_set_line_width(struct wmGizmo *gz, float line_width)
Definition: wm_gizmo.c:319
const struct wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
Definition: wm_gizmo_type.c:45
bool WM_gizmomap_is_any_selected(const struct wmGizmoMap *gzmap)
void WM_gizmomaptype_group_init_runtime_keymap(const struct Main *bmain, struct wmGizmoGroupType *gzgt)
void WM_gizmo_target_property_float_set(struct bContext *C, const struct wmGizmo *gz, struct wmGizmoProperty *gz_prop, float value)
bool WM_gizmo_select_unlink(struct wmGizmoMap *gzmap, struct wmGizmo *gz)
Definition: wm_gizmo.c:392
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:68
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:284
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:293
eWM_GizmoFlagMapDrawStep
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
Definition: avxb.h:154
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition: BKE_main.h:121
const float * scale_final
Definition: WM_gizmo_api.h:144
const float(* matrix_basis)[4]
Definition: WM_gizmo_api.h:142
const float(* matrix_offset)[4]
Definition: WM_gizmo_api.h:143
const float(* matrix_space)[4]
Definition: WM_gizmo_api.h:141
const char * idname
PropertyRNA * prop
const char * idname
struct IDProperty * properties
PointerRNA * ptr
Definition: wm_files.c:3480
wmOperatorType * ot
Definition: wm_files.c:3479
int(* wmGizmoFnModal)(struct bContext *, struct wmGizmo *, const struct wmEvent *, eWM_GizmoFlagTweak)
Definition: wm_gizmo_fn.h:42