Blender V4.3
wm_gizmo_intern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11struct BLI_Buffer;
12struct wmGizmoMap;
13struct wmKeyConfig;
14
15#include "wm_gizmo_fn.hh"
16
17/* -------------------------------------------------------------------- */
18/* #wmGizmo. */
19
27 wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback);
29
30void wm_gizmo_calculate_scale(wmGizmo *gz, const bContext *C);
31void wm_gizmo_update(wmGizmo *gz, const bContext *C, bool refresh_map);
32
34enum {
37};
38
39/* -------------------------------------------------------------------- */
40/* #wmGizmoGroup. */
41
42enum {
49};
50
62 const wmGizmoGroup *gzgroup,
63 bContext *C,
64 int event_modifier,
65 const int mval[2],
66 int *r_part);
72 const wmGizmoGroup *gzgroup,
73 int event_modifier,
74 BLI_Buffer *visible_gizmos);
77
79
81
82/* -------------------------------------------------------------------- */
83/* #wmGizmoMap. */
84
89
90struct wmGizmoMap {
92 ListBase groups; /* #wmGizmoGroup. */
93
94 /* Private, update tagging (enum defined in C source). */
96
98 bool is_init;
99
102
109 struct {
117 int event_xy[2];
122};
123
133 /* Types of gizmo-groups for this gizmo-map type. */
135
136 /* #eGizmoMapTypeUpdateFlags. */
138};
139
146void wm_gizmomap_select_array_shrink(wmGizmoMap *gzmap, int len_subtract);
eWM_GizmoFlagMapDrawStep
eWM_GizmoFlagMapTypeUpdateFlag
#define WM_GIZMOMAP_DRAWSTEP_MAX
ccl_device_inline float4 select(const int4 mask, const float4 a, const float4 b)
struct wmGizmo ** items
eWM_GizmoFlagMapTypeUpdateFlag type_update_flag
wmGizmoMapType * next
wmGizmoMapType * prev
wmGizmoMapSelectState select
struct wmGizmoMap::@1370 gzmap_context
Gizmo map runtime context.
char update_flag[WM_GIZMOMAP_DRAWSTEP_MAX]
wmGizmo * modal
ListBase groups
wmGizmoMapType * type
wmGizmo * highlight
wmGizmo * wm_gizmogroup_find_intersected_gizmo(wmWindowManager *wm, const wmGizmoGroup *gzgroup, bContext *C, int event_modifier, const int mval[2], int *r_part)
bool wm_gizmo_select_set_ex(wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback)
Definition wm_gizmo.cc:356
void wm_gizmogroup_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz)
void wm_gizmogrouptype_setup_keymap(wmGizmoGroupType *gzgt, wmKeyConfig *keyconf)
wmKeyMap * wm_gizmogroup_tweak_modal_keymap(wmKeyConfig *keyconf)
@ WM_GIZMO_IS_VISIBLE_DRAW
@ WM_GIZMO_IS_VISIBLE_UPDATE
wmGizmoGroup * wm_gizmogroup_new_from_type(wmGizmoMap *gzmap, wmGizmoGroupType *gzgt)
void wm_gizmomap_select_array_remove(wmGizmoMap *gzmap, wmGizmo *gz)
bool wm_gizmo_select_and_highlight(bContext *C, wmGizmoMap *gzmap, wmGizmo *gz)
Definition wm_gizmo.cc:406
void wm_gizmogroup_intersectable_gizmos_to_list(wmWindowManager *wm, const wmGizmoGroup *gzgroup, int event_modifier, BLI_Buffer *visible_gizmos)
wmGizmoGroup * wm_gizmogroup_find_by_type(const wmGizmoMap *gzmap, const wmGizmoGroupType *gzgt)
void wm_gizmomap_select_array_clear(wmGizmoMap *gzmap)
bool wm_gizmogroup_is_visible_in_drawstep(const wmGizmoGroup *gzgroup, eWM_GizmoFlagMapDrawStep drawstep)
void wm_gizmomap_select_array_push_back(wmGizmoMap *gzmap, wmGizmo *gz)
void wm_gizmomap_select_array_shrink(wmGizmoMap *gzmap, int len_subtract)
bool wm_gizmomap_deselect_all(wmGizmoMap *gzmap)
@ TWEAK_MODAL_PRECISION_ON
@ TWEAK_MODAL_SNAP_ON
@ TWEAK_MODAL_PRECISION_OFF
@ TWEAK_MODAL_CONFIRM
@ TWEAK_MODAL_SNAP_OFF
@ TWEAK_MODAL_CANCEL
void wm_gizmo_update(wmGizmo *gz, const bContext *C, bool refresh_map)
Definition wm_gizmo.cc:490
void wm_gizmo_calculate_scale(wmGizmo *gz, const bContext *C)
Definition wm_gizmo.cc:449
int wm_gizmo_is_visible(wmGizmo *gz)
Definition wm_gizmo.cc:498
void wm_gizmogroup_free(bContext *C, wmGizmoGroup *gzgroup)