- double* scalarrange = imgrange->GetScalarRange();
- double scalarr;
- if (scalarrange[1] == scalarrange[0])
- {
- scalarr=scalarrange[1];
- if (scalarrange[1]==0) {scalarr=100;}
- } else {
- scalarr = scalarrange[1] - scalarrange[0];
- }
- //std::cout<<"scalar r="<<scalarr<<std::endl;
- int w, h;
- ((wxWindow*)wxVTKiren)->GetSize(&w, &h);
- double dw=w,dh=h;
- double dx = (scalarr*( _backPx - tmpPx ))/dw;
- double dy = (scalarr*( _backPy - tmpPy ))/dh;
- //colorWin=_backWindow - (scalarr)*( _backPx - tmpPx );
- colorWin=_backWindow - dx;
- colorLev=_backLevel + dy;
+ double* scalarrange = imgrange->GetScalarRange();
+ if (ctrlkey==0) {
+ double scalarr;
+ if (scalarrange[1] == scalarrange[0])
+ {
+ scalarr=scalarrange[1];
+ if (scalarrange[1]==0) {scalarr=100;}
+ } else {
+ scalarr = scalarrange[1] - scalarrange[0];
+ }
+ //std::cout<<"scalar r="<<scalarr<<std::endl;
+ int w, h;
+ ((wxWindow*)wxVTKiren)->GetSize(&w, &h);
+ double dw=w,dh=h;
+ double dx = (scalarr*( _backPx - tmpPx ))/dw;
+ double dy = (scalarr*( _backPy - tmpPy ))/dh;
+ //colorWin=_backWindow - (scalarr)*( _backPx - tmpPx );
+ colorWin=_backWindow - dx;
+ colorLev=_backLevel + dy;
+ } else { // ctrlkey == 1
+ colorWin = scalarrange[1] - scalarrange[0];
+ colorLev = (scalarrange[1] + scalarrange[0])/2;
+ _backWindow = colorWin;
+ _backLevel = colorLev;
+ }