diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-22 15:12:47 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-22 15:55:50 +0300 |
commit | dfe088c5d9c819e7266e8e88fb31e92ac2ee8592 (patch) | |
tree | 893d823c1957624257c3ef128422c3fa132e9049 /source/blender/editors/space_view3d/view3d_header.c | |
parent | ff19b527e85ec5144efbd663bf9b4c338e179358 (diff) |
Workbench: SeeThrough draw option
Option to see through all meshes (transparency)
Works for OB_SOLID and OB_TEXTURED. Does not work for
V3D_SHADING_SHADOW.
TODO: Fresnel effect
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_header.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_header.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index e7f6cf36476..0ee9adfc396 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -221,6 +221,45 @@ void VIEW3D_OT_layers(wmOperatorType *ot) RNA_def_boolean(ot->srna, "toggle", 1, "Toggle", "Toggle the layer"); } +/* -------------------------------------------------------------------- */ +/** \name Toggle Bone selection Overlay Operator + * \{ */ + +static int toggle_show_see_through(bContext *C, wmOperator *UNUSED(op)) +{ + View3D *v3d = CTX_wm_view3d(C); + v3d->shading.flag ^= V3D_SHADING_SEE_THROUGH; + ED_view3d_shade_update(CTX_data_main(C), v3d, CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); + return OPERATOR_FINISHED; +} + +static int toggle_show_see_through_poll(bContext *C) +{ + bool result = (ED_operator_view3d_active(C) && !ED_operator_posemode(C)); + if (result) { + // Additional test for SOLID or TEXTURE mode + View3D *v3d = CTX_wm_view3d(C); + result = (v3d->drawtype & (OB_SOLID | OB_TEXTURE)) > 0; + } + return result; +} + +void VIEW3D_OT_toggle_see_through_draw_option(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Toggle Show See Though"; + ot->description = "Toggle show see through"; + ot->idname = "VIEW3D_OT_toggle_see_through_draw_option"; + + /* api callbacks */ + ot->exec = toggle_show_see_through; + ot->poll = toggle_show_see_through_poll; +} + +/** \} */ + + static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event) { wmWindow *win = CTX_wm_window(C); |