Blender  V3.3
ED_gizmo_library.h File Reference
#include "DNA_scene_types.h"

Go to the source code of this file.

Generic Gizmos.

This is exposes predefined gizmos for re-use.

enum  { ED_GIZMO_ARROW_STYLE_NORMAL = 0 , ED_GIZMO_ARROW_STYLE_CROSS = 1 , ED_GIZMO_ARROW_STYLE_BOX = 2 , ED_GIZMO_ARROW_STYLE_CONE = 3 }
 
enum  { ED_GIZMO_ARROW_XFORM_FLAG_INVERTED = (1 << 3) , ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED = (1 << 4) }
 
enum  { ED_GIZMO_ARROW_DRAW_FLAG_STEM = (1 << 0) }
 
enum  {
  ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE = (1 << 0) , ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE = (1 << 1) , ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE = (1 << 2) , ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM = (1 << 3) ,
  ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED = (1 << 4)
}
 
enum  { ED_GIZMO_CAGE2D_STYLE_BOX = 0 , ED_GIZMO_CAGE2D_STYLE_CIRCLE = 1 }
 
enum  { ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE = (1 << 0) }
 
enum  {
  ED_GIZMO_CAGE2D_PART_TRANSLATE = 0 , ED_GIZMO_CAGE2D_PART_SCALE_MIN_X = 1 , ED_GIZMO_CAGE2D_PART_SCALE_MAX_X = 2 , ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y = 3 ,
  ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y = 4 , ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y = 5 , ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y = 6 , ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y = 7 ,
  ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y = 8 , ED_GIZMO_CAGE2D_PART_ROTATE = 9
}
 
enum  {
  ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z = 0 , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MIN_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MID_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MAX_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MIN_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MID_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MAX_Z ,
  ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MIN_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MID_Z , ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z , ED_GIZMO_CAGE3D_PART_TRANSLATE ,
  ED_GIZMO_CAGE3D_PART_ROTATE
}
 
enum  {
  ED_GIZMO_DIAL_DRAW_FLAG_NOP = 0 , ED_GIZMO_DIAL_DRAW_FLAG_CLIP = (1 << 0) , ED_GIZMO_DIAL_DRAW_FLAG_FILL = (1 << 1) , ED_GIZMO_DIAL_DRAW_FLAG_FILL_SELECT = (1 << 2) ,
  ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR = (1 << 3) , ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y = (1 << 4) , ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE = (1 << 5)
}
 
enum  { ED_GIZMO_MOVE_DRAW_FLAG_NOP = 0 , ED_GIZMO_MOVE_DRAW_FLAG_FILL = (1 << 0) , ED_GIZMO_MOVE_DRAW_FLAG_FILL_SELECT = (1 << 1) , ED_GIZMO_MOVE_DRAW_FLAG_ALIGN_VIEW = (1 << 2) }
 
enum  { ED_GIZMO_MOVE_STYLE_RING_2D = 0 , ED_GIZMO_MOVE_STYLE_CROSS_2D = 1 }
 
enum  { ED_GIZMO_BUTTON_SHOW_OUTLINE = (1 << 0) , ED_GIZMO_BUTTON_SHOW_BACKDROP = (1 << 1) , ED_GIZMO_BUTTON_SHOW_HELPLINE = (1 << 2) }
 
enum  { ED_GIZMO_PRIMITIVE_STYLE_PLANE = 0 }
 
void ED_gizmotypes_arrow_3d (void)
 
void ED_gizmotypes_button_2d (void)
 
void ED_gizmotypes_cage_2d (void)
 
void ED_gizmotypes_cage_3d (void)
 
void ED_gizmotypes_dial_3d (void)
 
void ED_gizmotypes_move_3d (void)
 
void ED_gizmotypes_facemap_3d (void)
 
void ED_gizmotypes_preselect_3d (void)
 
void ED_gizmotypes_primitive_3d (void)
 
void ED_gizmotypes_blank_3d (void)
 
void ED_gizmotypes_snap_3d (void)
 
void ED_gizmo_draw_preset_box (const struct wmGizmo *gz, float mat[4][4], int select_id)
 
void ED_gizmo_draw_preset_arrow (const struct wmGizmo *gz, float mat[4][4], int axis, int select_id)
 
void ED_gizmo_draw_preset_circle (const struct wmGizmo *gz, float mat[4][4], int axis, int select_id)
 
void ED_gizmo_draw_preset_facemap (const struct bContext *C, const struct wmGizmo *gz, struct Object *ob, int facemap, int select_id)
 
void ED_gizmo_arrow3d_set_ui_range (struct wmGizmo *gz, float min, float max)
 
void ED_gizmo_arrow3d_set_range_fac (struct wmGizmo *gz, float range_fac)
 
struct SnapObjectContextED_gizmotypes_snap_3d_context_ensure (struct Scene *scene, struct wmGizmo *gz)
 
void ED_gizmotypes_snap_3d_flag_set (struct wmGizmo *gz, int flag)
 
void ED_gizmotypes_snap_3d_flag_clear (struct wmGizmo *gz, int flag)
 
bool ED_gizmotypes_snap_3d_flag_test (struct wmGizmo *gz, int flag)
 
bool ED_gizmotypes_snap_3d_invert_snap_get (struct wmGizmo *gz)
 
bool ED_gizmotypes_snap_3d_is_enabled (const struct wmGizmo *gz)
 
void ED_gizmotypes_snap_3d_data_get (const struct bContext *C, struct wmGizmo *gz, float r_loc[3], float r_nor[3], int r_elem_index[3], eSnapMode *r_snap_elem)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_ARROW_STYLE_NORMAL 
ED_GIZMO_ARROW_STYLE_CROSS 
ED_GIZMO_ARROW_STYLE_BOX 
ED_GIZMO_ARROW_STYLE_CONE 

Definition at line 63 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_ARROW_XFORM_FLAG_INVERTED 
ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED 

Definition at line 71 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_ARROW_DRAW_FLAG_STEM 

Definition at line 79 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE 
ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE 
ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE 
ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM 
ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED 

Definition at line 100 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_CAGE2D_STYLE_BOX 
ED_GIZMO_CAGE2D_STYLE_CIRCLE 

Definition at line 109 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE 

Draw a central handle (instead of having the entire area selectable) Needed for large rectangles that we don't want to swallow all events.

Definition at line 115 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum

wmGizmo.highlight_part

Enumerator
ED_GIZMO_CAGE2D_PART_TRANSLATE 
ED_GIZMO_CAGE2D_PART_SCALE_MIN_X 
ED_GIZMO_CAGE2D_PART_SCALE_MAX_X 
ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y 
ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y 
ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y 
ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y 
ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y 
ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y 
ED_GIZMO_CAGE2D_PART_ROTATE 

Definition at line 122 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum

wmGizmo.highlight_part

Enumerator
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MIN_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MID_Z 
ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z 
ED_GIZMO_CAGE3D_PART_TRANSLATE 
ED_GIZMO_CAGE3D_PART_ROTATE 

Definition at line 138 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_DIAL_DRAW_FLAG_NOP 
ED_GIZMO_DIAL_DRAW_FLAG_CLIP 
ED_GIZMO_DIAL_DRAW_FLAG_FILL 
ED_GIZMO_DIAL_DRAW_FLAG_FILL_SELECT 
ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR 
ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y 
ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE 

Definition at line 177 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_MOVE_DRAW_FLAG_NOP 
ED_GIZMO_MOVE_DRAW_FLAG_FILL 
ED_GIZMO_MOVE_DRAW_FLAG_FILL_SELECT 
ED_GIZMO_MOVE_DRAW_FLAG_ALIGN_VIEW 

Definition at line 192 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_MOVE_STYLE_RING_2D 
ED_GIZMO_MOVE_STYLE_CROSS_2D 

Definition at line 200 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_BUTTON_SHOW_OUTLINE 
ED_GIZMO_BUTTON_SHOW_BACKDROP 
ED_GIZMO_BUTTON_SHOW_HELPLINE 

Draw a line from the origin to the offset (similar to an arrow) sometimes needed to show what the button edits.

Definition at line 208 of file ED_gizmo_library.h.

◆ anonymous enum

anonymous enum
Enumerator
ED_GIZMO_PRIMITIVE_STYLE_PLANE 

Definition at line 221 of file ED_gizmo_library.h.

Function Documentation

◆ ED_gizmo_arrow3d_set_range_fac()

void ED_gizmo_arrow3d_set_range_fac ( struct wmGizmo gz,
float  range_fac 
)

◆ ED_gizmo_arrow3d_set_ui_range()

void ED_gizmo_arrow3d_set_ui_range ( struct wmGizmo gz,
float  min,
float  max 
)

◆ ED_gizmo_draw_preset_arrow()

void ED_gizmo_draw_preset_arrow ( const struct wmGizmo gz,
float  mat[4][4],
int  axis,
int  select_id 
)

◆ ED_gizmo_draw_preset_box()

void ED_gizmo_draw_preset_box ( const struct wmGizmo gz,
float  mat[4][4],
int  select_id 
)

◆ ED_gizmo_draw_preset_circle()

void ED_gizmo_draw_preset_circle ( const struct wmGizmo gz,
float  mat[4][4],
int  axis,
int  select_id 
)

◆ ED_gizmo_draw_preset_facemap()

void ED_gizmo_draw_preset_facemap ( const struct bContext C,
const struct wmGizmo gz,
struct Object ob,
int  facemap,
int  select_id 
)

◆ ED_gizmotypes_arrow_3d()

void ED_gizmotypes_arrow_3d ( void  )

Definition at line 541 of file arrow3d_gizmo.c.

References GIZMO_GT_arrow_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_blank_3d()

void ED_gizmotypes_blank_3d ( void  )

Definition at line 57 of file blank3d_gizmo.c.

References GIZMO_GT_blank_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_button_2d()

void ED_gizmotypes_button_2d ( void  )

Definition at line 429 of file button2d_gizmo.c.

References GIZMO_GT_button_2d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_cage_2d()

void ED_gizmotypes_cage_2d ( void  )

Definition at line 1230 of file cage2d_gizmo.c.

References GIZMO_GT_cage_2d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_cage_3d()

void ED_gizmotypes_cage_3d ( void  )

Definition at line 688 of file cage3d_gizmo.c.

References GIZMO_GT_cage_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_dial_3d()

void ED_gizmotypes_dial_3d ( void  )

Definition at line 722 of file dial3d_gizmo.c.

References GIZMO_GT_dial_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_facemap_3d()

void ED_gizmotypes_facemap_3d ( void  )

◆ ED_gizmotypes_move_3d()

void ED_gizmotypes_move_3d ( void  )

Definition at line 467 of file move3d_gizmo.c.

References GIZMO_GT_move_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_preselect_3d()

void ED_gizmotypes_preselect_3d ( void  )

◆ ED_gizmotypes_primitive_3d()

void ED_gizmotypes_primitive_3d ( void  )

Definition at line 165 of file primitive3d_gizmo.c.

References GIZMO_GT_primitive_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_snap_3d()

void ED_gizmotypes_snap_3d ( void  )

Definition at line 412 of file snap3d_gizmo.c.

References GIZMO_GT_snap_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ ED_gizmotypes_snap_3d_context_ensure()

struct SnapObjectContext* ED_gizmotypes_snap_3d_context_ensure ( struct Scene scene,
struct wmGizmo gz 
)

◆ ED_gizmotypes_snap_3d_data_get()

void ED_gizmotypes_snap_3d_data_get ( const struct bContext C,
struct wmGizmo gz,
float  r_loc[3],
float  r_nor[3],
int  r_elem_index[3],
eSnapMode r_snap_elem 
)

◆ ED_gizmotypes_snap_3d_flag_clear()

void ED_gizmotypes_snap_3d_flag_clear ( struct wmGizmo gz,
int  flag 
)

Definition at line 70 of file snap3d_gizmo.c.

References V3DSnapCursorState::flag.

◆ ED_gizmotypes_snap_3d_flag_set()

void ED_gizmotypes_snap_3d_flag_set ( struct wmGizmo gz,
int  flag 
)

Definition at line 64 of file snap3d_gizmo.c.

References V3DSnapCursorState::flag.

Referenced by WIDGETGROUP_ruler_setup().

◆ ED_gizmotypes_snap_3d_flag_test()

bool ED_gizmotypes_snap_3d_flag_test ( struct wmGizmo gz,
int  flag 
)

Definition at line 76 of file snap3d_gizmo.c.

References V3DSnapCursorState::flag.

◆ ED_gizmotypes_snap_3d_invert_snap_get()

bool ED_gizmotypes_snap_3d_invert_snap_get ( struct wmGizmo gz)

◆ ED_gizmotypes_snap_3d_is_enabled()

bool ED_gizmotypes_snap_3d_is_enabled ( const struct wmGizmo gz)