# HG changeset patch # User John Tsiombikas # Date 1334321025 -10800 # Node ID 53aca477551441f4d0ef7e820bf7f79b1ed463d9 # Parent 2d0dfb5751dc240ecd52156eeca7526d9c53f3b5 clip checkbox diff -r 2d0dfb5751dc -r 53aca4775514 src/volray.cc --- a/src/volray.cc Wed Apr 11 18:35:12 2012 +0300 +++ b/src/volray.cc Fri Apr 13 15:43:45 2012 +0300 @@ -48,6 +48,7 @@ static bool xfertex_needs_recalc = true; static float cur_z = 0.5; +static bool clip_z; static float ray_step = 0.01; static Volume *volume; @@ -64,7 +65,7 @@ set_uniform_int(vol_sdr, "ray_tex", 1); set_uniform_int(vol_sdr, "xfer_tex", 2); set_uniform_float(vol_sdr, "ray_step", ray_step); - set_uniform_float(vol_sdr, "zclip", cur_z); + set_uniform_float(vol_sdr, "zclip", 0.0); if(!(slice_sdr = create_program_load(0, "sdr/slice.p.glsl"))) { return false; @@ -92,11 +93,17 @@ switch(which) { case VOLRAY_ZCURSOR: cur_z = val; - set_uniform_float(vol_sdr, "zclip", cur_z); + if(clip_z) { + set_uniform_float(vol_sdr, "zclip", cur_z); + } post_redisplay(); break; case VOLRAY_ZCLIP: + clip_z = val > 0.5; + set_uniform_float(vol_sdr, "zclip", clip_z ? cur_z : 0.0); + post_redisplay(); + break; default: break; @@ -109,6 +116,10 @@ case VOLRAY_ZCURSOR: return cur_z; + case VOLRAY_ZCLIP: + return clip_z > 0.5 ? 1.0 : 0.0; + break; + default: break; } diff -r 2d0dfb5751dc -r 53aca4775514 src/volray.h --- a/src/volray.h Wed Apr 11 18:35:12 2012 +0300 +++ b/src/volray.h Fri Apr 13 15:43:45 2012 +0300 @@ -9,7 +9,8 @@ Volume *volray_getvolume(); enum { - VOLRAY_ZCURSOR + VOLRAY_ZCURSOR, + VOLRAY_ZCLIP }; void volray_setvalue(int which, float val);