Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform_gizmo_3d.c
| Show First 20 Lines • Show All 1,244 Lines • ▼ Show 20 Lines | |||||
| * \{ */ | * \{ */ | ||||
| static GizmoGroup *gizmogroup_init(wmGizmoGroup *gzgroup) | static GizmoGroup *gizmogroup_init(wmGizmoGroup *gzgroup) | ||||
| { | { | ||||
| GizmoGroup *ggd; | GizmoGroup *ggd; | ||||
| ggd = MEM_callocN(sizeof(GizmoGroup), "gizmo_data"); | ggd = MEM_callocN(sizeof(GizmoGroup), "gizmo_data"); | ||||
| const wmGizmoType *gzt_arrow = WM_gizmotype_find("GIZMO_GT_arrow_3d", true); | const wmGizmoType *gzt_arrow = WM_gizmotype_find("GIZMO_GT_arrow_3d", true); | ||||
campbellbarton: Should be const. | |||||
| const wmGizmoType *gzt_dial = WM_gizmotype_find("GIZMO_GT_dial_3d", true); | const wmGizmoType *gzt_dial = WM_gizmotype_find("GIZMO_GT_dial_3d", true); | ||||
| const wmGizmoType *gzt_prim = WM_gizmotype_find("GIZMO_GT_primitive_3d", true); | const wmGizmoType *gzt_prim = WM_gizmotype_find("GIZMO_GT_primitive_3d", true); | ||||
| /* Fallback action. */ | /* Fallback action. */ | ||||
| { | { | ||||
| const wmGizmoType *gzt_mask = WM_gizmotype_find("GIZMO_GT_blank_3d", true); | const wmGizmoType *gzt_mask = WM_gizmotype_find("GIZMO_GT_blank_3d", true); | ||||
| ggd->gizmos[MAN_AXIS_APRON_C] = WM_gizmo_new_ptr(gzt_mask, gzgroup, NULL); | ggd->gizmos[MAN_AXIS_APRON_C] = WM_gizmo_new_ptr(gzt_mask, gzgroup, NULL); | ||||
| } | } | ||||
| #define GIZMO_NEW_ARROW(v, draw_style) { \ | #define GIZMO_NEW_ARROW(v, draw_style) { \ | ||||
| ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_arrow, gzgroup, NULL); \ | ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_arrow, gzgroup, NULL); \ | ||||
| RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \ | RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \ | ||||
| } ((void)0) | } ((void)0) | ||||
| #define GIZMO_NEW_DIAL(v, draw_options) { \ | #define GIZMO_NEW_DIAL(v, draw_options) { \ | ||||
| ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_dial, gzgroup, NULL); \ | ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_dial, gzgroup, NULL); \ | ||||
| RNA_enum_set(ggd->gizmos[v]->ptr, "draw_options", draw_options); \ | RNA_enum_set(ggd->gizmos[v]->ptr, "draw_options", draw_options); \ | ||||
| } ((void)0) | } ((void)0) | ||||
| #define GIZMO_NEW_PRIM(v, draw_style) { \ | #define GIZMO_NEW_PRIM(v, draw_style) { \ | ||||
| ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_prim, gzgroup, NULL); \ | ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_prim, gzgroup, NULL); \ | ||||
| RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \ | RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \ | ||||
| } ((void)0) | } ((void)0) | ||||
| /* add/init widgets - order matters! */ | /* add/init widgets - order matters! */ | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_ROT_T, ED_GIZMO_DIAL_DRAW_FLAG_FILL); | GIZMO_NEW_DIAL(MAN_AXIS_ROT_T, ED_GIZMO_DIAL_DRAW_FLAG_FILL | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_SCALE_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); | GIZMO_NEW_DIAL(MAN_AXIS_SCALE_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_ARROW(MAN_AXIS_SCALE_X, ED_GIZMO_ARROW_STYLE_BOX); | GIZMO_NEW_ARROW(MAN_AXIS_SCALE_X, ED_GIZMO_ARROW_STYLE_BOX); | ||||
| GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Y, ED_GIZMO_ARROW_STYLE_BOX); | GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Y, ED_GIZMO_ARROW_STYLE_BOX); | ||||
Done Inline ActionsLooks like the lines aren't linking up with the actual snapping, ideally snapping and marks should match up. campbellbarton: Looks like the lines aren't linking up with the actual snapping, ideally snapping and marks… | |||||
| GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Z, ED_GIZMO_ARROW_STYLE_BOX); | GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Z, ED_GIZMO_ARROW_STYLE_BOX); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_SCALE_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_SCALE_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_SCALE_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_SCALE_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_SCALE_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_SCALE_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_ROT_X, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); | GIZMO_NEW_DIAL(MAN_AXIS_ROT_X, ED_GIZMO_DIAL_DRAW_FLAG_CLIP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_ROT_Y, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); | GIZMO_NEW_DIAL(MAN_AXIS_ROT_Y, ED_GIZMO_DIAL_DRAW_FLAG_CLIP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_ROT_Z, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); | GIZMO_NEW_DIAL(MAN_AXIS_ROT_Z, ED_GIZMO_DIAL_DRAW_FLAG_CLIP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| /* init screen aligned widget last here, looks better, behaves better */ | /* init screen aligned widget last here, looks better, behaves better */ | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_ROT_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); | GIZMO_NEW_DIAL(MAN_AXIS_ROT_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_DIAL(MAN_AXIS_TRANS_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); | GIZMO_NEW_DIAL(MAN_AXIS_TRANS_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP | ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE); | ||||
| GIZMO_NEW_ARROW(MAN_AXIS_TRANS_X, ED_GIZMO_ARROW_STYLE_NORMAL); | GIZMO_NEW_ARROW(MAN_AXIS_TRANS_X, ED_GIZMO_ARROW_STYLE_NORMAL); | ||||
| GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Y, ED_GIZMO_ARROW_STYLE_NORMAL); | GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Y, ED_GIZMO_ARROW_STYLE_NORMAL); | ||||
| GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Z, ED_GIZMO_ARROW_STYLE_NORMAL); | GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Z, ED_GIZMO_ARROW_STYLE_NORMAL); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_TRANS_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_TRANS_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_TRANS_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_TRANS_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| GIZMO_NEW_PRIM(MAN_AXIS_TRANS_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | GIZMO_NEW_PRIM(MAN_AXIS_TRANS_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); | ||||
| ▲ Show 20 Lines • Show All 589 Lines • Show Last 20 Lines | |||||
Should be const.