36#define GIZMO_SIZE U.gizmo_size_navigate_v3d
39#define GIZMO_OFFSET 10.0f
42#define GIZMO_MINI_SIZE 28.0f
45#define GIZMO_MINI_OFFSET 2.0f
87 "VIEW3D_GT_navigate_rotate",
98 "VIEW3D_OT_view_persportho",
100 ICON_VIEW_PERSPECTIVE,
104 "VIEW3D_OT_view_persportho",
105 "GIZMO_GT_button_2d",
110 "VIEW3D_OT_view_camera",
111 "GIZMO_GT_button_2d",
112 ICON_VIEW_CAMERA_UNSELECTED,
116 "VIEW3D_OT_view_camera",
117 "GIZMO_GT_button_2d",
122 "WM_OT_context_toggle",
123 "GIZMO_GT_button_2d",
128 "WM_OT_context_toggle",
129 "GIZMO_GT_button_2d",
183 int color_tint, color_tint_hi;
184 if (icon_color[0] > 128) {
202 if (info->
icon != ICON_NONE) {
233 for (
int i = 0; i <
ARRAY_SIZE(gz_ids); i++) {
242 for (
int i = 0; i <
ARRAY_SIZE(gz_ids); i++) {
252 const char mapping[6] = {
261 for (
int part_index = 0; part_index < 6; part_index += 1) {
282 for (
int i = 0; i < 3; i++) {
311 const float co_rotate[2] = {
312 rect_visible->
xmax - icon_offset,
313 rect_visible->
ymax - icon_offset,
316 float icon_offset_from_axis = 0.0f;
319 icon_offset_from_axis = icon_offset * 2.1f;
322 icon_offset_from_axis = (
UI_UNIT_X * 2.5) + (
U.rvisize *
U.pixelsize * 2.0f);
325 icon_offset_from_axis = icon_offset_mini * 0.75f;
329 const float co[2] = {
330 roundf(rect_visible->
xmax - icon_offset_mini * 0.75f),
331 roundf(rect_visible->
ymax - icon_offset_from_axis),
341 if (show_rotate_gizmo) {
349 int icon_mini_slot = 0;
353 gz->
matrix_basis[3][1] = roundf(co[1] - (icon_offset_mini * icon_mini_slot++));
360 gz->
matrix_basis[3][1] = roundf(co[1] - (icon_offset_mini * icon_mini_slot++));
368 gz->
matrix_basis[3][1] = roundf(co[1] - (icon_offset_mini * icon_mini_slot++));
374 gz->
matrix_basis[3][1] = roundf(co[1] - (icon_offset_mini * icon_mini_slot++));
383 gz->
matrix_basis[3][1] = roundf(co[1] - (icon_offset_mini * icon_mini_slot++));
391 gzgt->
name =
"View3D Navigate";
392 gzgt->
idname =
"VIEW3D_GGT_navigate";
ARegion * CTX_wm_region(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
View3D * CTX_wm_view3d(const bContext *C)
#define CHECK_TYPE_PAIR(var_a, var_b)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl(float r[3], float f)
Object is a sort of wrapper for general info.
@ USER_SHOW_GIZMO_NAVIGATE
@ USER_MINI_AXIS_TYPE_GIZMO
@ USER_MINI_AXIS_TYPE_MINIMAL
@ USER_MINI_AXIS_TYPE_NONE
#define RV3D_LOCK_FLAGS(rv3d)
@ V3D_GIZMO_HIDE_NAVIGATE
@ RV3D_LOCK_ZOOM_AND_DOLLY
@ ED_GIZMO_BUTTON_SHOW_BACKDROP
@ ED_GIZMO_BUTTON_SHOW_OUTLINE
const rcti * ED_region_visible_rect(ARegion *region)
Read Guarded memory(de)allocation.
void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
@ WM_GIZMOGROUPTYPE_SCALE
@ WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL
@ WM_GIZMOGROUPTYPE_PERSISTENT
void *(* MEM_callocN)(size_t len, const char *str)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void(* op_prop_fn)(PointerRNA *ptr)
eWM_GizmoFlagGroupTypeFlag flag
wmGizmoGroupFnDrawPrepare draw_prepare
float matrix_offset[4][4]
static NavigateGizmoInfo g_navigate_params[GZ_INDEX_TOTAL]
static void WIDGETGROUP_navigate_setup(const bContext *C, wmGizmoGroup *gzgroup)
#define GIZMO_MINI_OFFSET
void VIEW3D_GGT_navigate(wmGizmoGroupType *gzgt)
static bool WIDGETGROUP_navigate_poll(const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmGizmoGroup *gzgroup)
static void navigate_context_toggle_camera_lock_init(PointerRNA *ptr)
wmGizmoOpElem * WM_gizmo_operator_get(wmGizmo *gz, int part_index)
wmGizmo * WM_gizmo_new(const char *idname, wmGizmoGroup *gzgroup, PointerRNA *properties)
void WM_gizmo_set_flag(wmGizmo *gz, const int flag, const bool enable)
PointerRNA * WM_gizmo_operator_set(wmGizmo *gz, int part_index, wmOperatorType *ot, IDProperty *properties)
wmKeyMap * WM_gizmo_keymap_generic_click_drag(wmWindowManager *wm)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)