Blender V4.3
view3d_gizmo_preselect.cc
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#include "MEM_guardedalloc.h"
10
11#include "BLI_utildefines.h"
12
13#include "ED_gizmo_utils.hh"
14#include "ED_screen.hh"
15
16#include "UI_resources.hh"
17
18#include "WM_types.hh"
19
20#include "view3d_intern.hh" /* own include */
21
22/* -------------------------------------------------------------------- */
29
31{
32 const wmGizmoType *gzt_presel = WM_gizmotype_find("GIZMO_GT_mesh_preselect_elem_3d", true);
33 GizmoGroupPreSelElem *ggd = static_cast<GizmoGroupPreSelElem *>(
34 MEM_callocN(sizeof(GizmoGroupPreSelElem), __func__));
35 gzgroup->customdata = ggd;
36
37 wmGizmo *gz = ggd->gizmo = WM_gizmo_new_ptr(gzt_presel, gzgroup, nullptr);
40}
41
43{
44 gzgt->name = "Mesh Preselect Element";
45 gzgt->idname = "VIEW3D_GGT_mesh_preselect_elem";
46
48
51
54}
55
58/* -------------------------------------------------------------------- */
65
67 wmGizmoGroup *gzgroup)
68{
69 const wmGizmoType *gzt_presel = WM_gizmotype_find("GIZMO_GT_mesh_preselect_edgering_3d", true);
71 MEM_callocN(sizeof(GizmoGroupPreSelEdgeRing), __func__));
72 gzgroup->customdata = ggd;
73
74 wmGizmo *gz = ggd->gizmo = WM_gizmo_new_ptr(gzt_presel, gzgroup, nullptr);
77}
78
80{
81 gzgt->name = "Mesh Preselect Edge Ring";
82 gzgt->idname = "VIEW3D_GGT_mesh_preselect_edgering";
83
85
88
91}
92
@ RGN_TYPE_WINDOW
@ SPACE_VIEW3D
bool ED_gizmo_poll_or_unlink_delayed_from_tool(const bContext *C, wmGizmoGroupType *gzgt)
Read Guarded memory(de)allocation.
void UI_GetThemeColor3fv(int colorid, float col[3])
@ TH_GIZMO_HI
@ TH_GIZMO_PRIMARY
@ WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP
@ WM_GIZMOGROUPTYPE_3D
void *(* MEM_callocN)(size_t len, const char *str)
Definition mallocn.cc:42
wmGizmoGroupFnInit setup
const char * idname
wmGizmoMapType_Params gzmap_params
eWM_GizmoFlagGroupTypeFlag flag
wmGizmoGroupFnPoll poll
float color_hi[4]
float color[4]
void VIEW3D_GGT_mesh_preselect_edgering(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_mesh_preselect_elem(wmGizmoGroupType *gzgt)
static void WIDGETGROUP_mesh_preselect_elem_setup(const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_mesh_preselect_edgering_setup(const bContext *, wmGizmoGroup *gzgroup)
wmGizmo * WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties)
Definition wm_gizmo.cc:81
const wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)