qvolray

changeset 23:53aca4775514

clip checkbox
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 13 Apr 2012 15:43:45 +0300
parents 2d0dfb5751dc
children c27ce79632db
files src/volray.cc src/volray.h
diffstat 2 files changed, 15 insertions(+), 3 deletions(-) [+]
line diff
     1.1 --- a/src/volray.cc	Wed Apr 11 18:35:12 2012 +0300
     1.2 +++ b/src/volray.cc	Fri Apr 13 15:43:45 2012 +0300
     1.3 @@ -48,6 +48,7 @@
     1.4  static bool xfertex_needs_recalc = true;
     1.5  
     1.6  static float cur_z = 0.5;
     1.7 +static bool clip_z;
     1.8  static float ray_step = 0.01;
     1.9  
    1.10  static Volume *volume;
    1.11 @@ -64,7 +65,7 @@
    1.12  	set_uniform_int(vol_sdr, "ray_tex", 1);
    1.13  	set_uniform_int(vol_sdr, "xfer_tex", 2);
    1.14  	set_uniform_float(vol_sdr, "ray_step", ray_step);
    1.15 -	set_uniform_float(vol_sdr, "zclip", cur_z);
    1.16 +	set_uniform_float(vol_sdr, "zclip", 0.0);
    1.17  
    1.18  	if(!(slice_sdr = create_program_load(0, "sdr/slice.p.glsl"))) {
    1.19  		return false;
    1.20 @@ -92,11 +93,17 @@
    1.21  	switch(which) {
    1.22  	case VOLRAY_ZCURSOR:
    1.23  		cur_z = val;
    1.24 -		set_uniform_float(vol_sdr, "zclip", cur_z);
    1.25 +		if(clip_z) {
    1.26 +			set_uniform_float(vol_sdr, "zclip", cur_z);
    1.27 +		}
    1.28  		post_redisplay();
    1.29  		break;
    1.30  
    1.31  	case VOLRAY_ZCLIP:
    1.32 +		clip_z = val > 0.5;
    1.33 +		set_uniform_float(vol_sdr, "zclip", clip_z ? cur_z : 0.0);
    1.34 +		post_redisplay();
    1.35 +		break;
    1.36  
    1.37  	default:
    1.38  		break;
    1.39 @@ -109,6 +116,10 @@
    1.40  	case VOLRAY_ZCURSOR:
    1.41  		return cur_z;
    1.42  
    1.43 +	case VOLRAY_ZCLIP:
    1.44 +		return clip_z > 0.5 ? 1.0 : 0.0;
    1.45 +		break;
    1.46 +
    1.47  	default:
    1.48  		break;
    1.49  	}
     2.1 --- a/src/volray.h	Wed Apr 11 18:35:12 2012 +0300
     2.2 +++ b/src/volray.h	Fri Apr 13 15:43:45 2012 +0300
     2.3 @@ -9,7 +9,8 @@
     2.4  Volume *volray_getvolume();
     2.5  
     2.6  enum {
     2.7 -	VOLRAY_ZCURSOR
     2.8 +	VOLRAY_ZCURSOR,
     2.9 +	VOLRAY_ZCLIP
    2.10  };
    2.11  
    2.12  void volray_setvalue(int which, float val);