X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=wt%2Fbbtk_wt_PKG%2Fsrc%2FbbwtViewerNVWeb.cxx;h=094ef1277eaf0d149445932f9b6e9555e1188918;hb=693adbbdf002a39858d73a741ff0477ecf7fa0da;hp=34c75e619eecc69d7a210fc5869fe87da7d3bdad;hpb=8f99923491ce775b4baccc44024235331ea6b954;p=creaWT.git diff --git a/wt/bbtk_wt_PKG/src/bbwtViewerNVWeb.cxx b/wt/bbtk_wt_PKG/src/bbwtViewerNVWeb.cxx index 34c75e6..094ef12 100644 --- a/wt/bbtk_wt_PKG/src/bbwtViewerNVWeb.cxx +++ b/wt/bbtk_wt_PKG/src/bbwtViewerNVWeb.cxx @@ -82,331 +82,142 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ViewerNVWeb,bbtk::WtBlackBox); //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== -/*void ViewerNVWeb::Process() -{ - - //------------- This part works perfectly, uncomment it for use it safe - - /*Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget(); - - cont++; - std::string jsCom; - - - - //jsCom = "\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +bbGetInputImagePath() + ".mObject);\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - std::cout<jsRef() + ".mRenderer.add(volume);\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - - jsCom = "\ - var volume = new X.volume();\ - volume.file = '" + bbGetInputImagePath() + "';\ - " + w->jsRef() +".mVolume = volume;\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - - if(nType.size() >1) - { - jsCom = jsCom + "\ - " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow2->jsRef() + ".mRenderer.render();"; - } - if(nType.size() >2 ) - { - jsCom = jsCom + "\ - " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow3->jsRef() + ".mRenderer.render();"; - } - if(nType.size() > 3) - { - jsCom = jsCom + "\ - " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow4->jsRef() + ".mRenderer.render();"; - } - - - std::cout<<"PROCESSSSS>>>>"<doJavaScript(jsCom); - */ - - /* Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget(); - - cont++; - std::string jsCom; - - std::cout<<"Process ----"<jsRef() +".mVolume = volume;\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - // jsCom = jsCom + "\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(volume, 'volumeRendering');\ - var opacityController = volumegui.add(volume, 'opacity', 0, 1).listen();\ - var lowerThresholdController = volumegui.add(volume, 'lowerThreshold',volume.min, volume.max);\ - var upperThresholdController = volumegui.add(volume, 'upperThreshold',volume.min, volume.max);\ - volumegui.open();"; - - //jsCom = jsCom + "\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ - var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1).listen();\ - var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', " + w->jsRef() +".mVolume.min," + w->jsRef() +".mVolume.max);\ - var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', " + w->jsRef() +".mVolume.min," + w->jsRef() +".mVolume.max);\ - volumegui.open();"; - - - - - - - - - if(nType.size() >1) - { - jsCom = jsCom + "\ - setTimeout(function(){\ - " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow2->jsRef() + ".mRenderer.render();"; - } - - if(nType.size() >2 ) - { - jsCom = jsCom + "\ - " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow3->jsRef() + ".mRenderer.render();"; - } - - if(nType.size() > 3) - { - jsCom = jsCom + "\ - " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow4->jsRef() + ".mRenderer.render();\ - " + w->jsRef() +".mVolume.upperTheshold =0;\ - " + w->jsRef() +".mVolume.windowLow =0;\ - " + w->jsRef() +".mVolume.windowHigh =1900;"; - - - jsCom = jsCom + "\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ - var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1).listen();\ - var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ - var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ - volumegui.open();\ - var lowerThresholdController = volumegui.add(" + w->jsRef() +".mVolume, 'lowerThreshold'," + w->jsRef() +".mVolume.min, " + w->jsRef() +".mVolume.max);\ - var upperThresholdController = volumegui.add(" + w->jsRef() +".mVolume, 'upperThreshold'," + w->jsRef() +".mVolume.min, " + w->jsRef() +".mVolume.max);"; - } - - - if(nType.size() >1) - { - jsCom = jsCom + "\ - },2000);"; - } - - - - - std::cout<<"PROCESSSSS>>>>"<doJavaScript(jsCom); - - Wt::WApplication::instance()->refresh(); - - -}*/ +//-------------------------------------------------------------------------------------------------------- void ViewerNVWeb::Process() { + Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget(); + std::string jsCom; +printf("EED ViewerNVWeb::Process %s\n", bbGetInputImagePath().c_str() ); + bool ok; + FILE *ff=fopen( bbGetInputImagePath().c_str() , "r" ); + if (ff) + { + ok=true; + fclose(ff); + } else { + ok=false; + } + if (ok==true) + { + if (firstTime==false) + { - Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget(); - - cont++; - std::string jsCom; - - std::cout<<"Process ----"<jsRef() +".mVolume = volume;\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow1->jsRef() + ".onShowTime = function(){"; - - - if(nType.size() >1) - { - jsCom = jsCom + "\ - " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow2->jsRef() + ".mRenderer.render();"; - } - - if(nType.size() >2 ) - { - jsCom = jsCom + "\ - " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow3->jsRef() + ".mRenderer.render();"; - } - - if(nType.size() > 3) - { - jsCom = jsCom + "\ - " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow4->jsRef() + ".mRenderer.render();\ - " + w->jsRef() +".mVolume.upperTheshold =0;\ - " + w->jsRef() +".mVolume.windowLow =0;\ - " + w->jsRef() +".mVolume.windowHigh =1900;"; - - - jsCom = jsCom + "\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ - var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1).listen();\ - var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ - var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ - volumegui.open();\ - var lowerThresholdController = volumegui.add(" + w->jsRef() +".mVolume, 'lowerThreshold'," + w->jsRef() +".mVolume.min, " + w->jsRef() +".mVolume.max);\ - var upperThresholdController = volumegui.add(" + w->jsRef() +".mVolume, 'upperThreshold'," + w->jsRef() +".mVolume.min, " + w->jsRef() +".mVolume.max);"; - } - - - jsCom = jsCom + "\ - };\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - - - std::cout<<"PROCESSSSS>>>>"<doJavaScript(jsCom); - - Wt::WApplication::instance()->refresh(); - - - -} - - -//-------------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------------- - +/* + jsCom = "\ + try{\ + var volume = new X.volume();\ + volume.spacing = [0.7,0.7,0.7 ];\ + volume.file = '" + bbGetInputImagePath() + "';\ + " +w->jsRef() + ".mVolume = volume;\ + var center = [0,0,0];\ + " +w->jsRef() + ".mVolume.center = center;\ + volume.center = [0,0,0];\ + setTimeout(function(){\ + " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow1->jsRef() + ".mRenderer.render();\ + },300);\ + } catch (err) {\ + } \ + "; +*/ +/* + jsCom = "\ + try{\ + " +w->jsRef() + ".mVolume.file = '" + bbGetInputImagePath() + "';\ + setTimeout(function(){\ + " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow1->jsRef() + ".mRenderer.render();\ + },300);\ + } catch (err) {\ + } \ + "; + + w->doJavaScript(jsCom); +*/ -void ViewerNVWeb::loadImage() -{ + } - - Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget(); - std::string jsCom; - - std::cout<<"Process ----"<jsRef() + ".mVolume = volume;\ - var center = [0,0,0\ - ];\ - " +w->jsRef() + ".mVolume.center = center;\ - volume.center = [0,0,0];\ - setTimeout(function(){\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow1->jsRef() + ".mRenderer.render();\ - },300);\ - setTimeout(function(){\ - " + w->jsRef() +".mVolume.upperThreshold =20000;\ - " + w->jsRef() +".mVolume.windowHigh =1670;\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ - var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1);\ - var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ - var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ - var sliceXController = volumegui.add(" + w->jsRef() +".mVolume, 'indexX', 0,volume.range[0] - 1);\ - var sliceYController = volumegui.add(" + w->jsRef() +".mVolume, 'indexY', 0,volume.range[1] - 1);\ - var sliceZController = volumegui.add(" + w->jsRef() +".mVolume, 'indexZ', 0,volume.range[2] - 1);\ - " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow2->jsRef() + ".mRenderer.render();\ - " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow3->jsRef() + ".mRenderer.render();\ - " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow4->jsRef() + ".mRenderer.render();\ - },1500);"; - - //jsCom = "\ - var volume = new X.volume();\ - volume.spacing = [0.7,0.7,0.7 ];\ - volume.file = '" + bbGetInputImagePath() + "';\ - " +w->jsRef() + ".mVolume = volume;\ - var center = [0,0,0\ - ];\ - " +w->jsRef() + ".mVolume.center = center;\ - volume.center = [0,0,0];\ - setTimeout(function(){\ - " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - },300);\ - " + wtWindow1->jsRef() + ".mRenderer.onShowTime = function(){\ - " + w->jsRef() +".mVolume.upperThreshold =20000;\ - " + w->jsRef() +".mVolume.windowHigh =1670;\ - var gui = new dat.GUI();\ - var volumegui = gui.addFolder('Volume');\ - var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ - var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1);\ - var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ - var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ - var sliceXController = volumegui.add(" + w->jsRef() +".mVolume, 'indexX', 0,volume.range[0] - 1);\ - var sliceYController = volumegui.add(" + w->jsRef() +".mVolume, 'indexY', 0,volume.range[1] - 1);\ - var sliceZController = volumegui.add(" + w->jsRef() +".mVolume, 'indexZ', 0,volume.range[2] - 1);\ - " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow2->jsRef() + ".mRenderer.render();\ - " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow3->jsRef() + ".mRenderer.render();\ - " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ - " + wtWindow4->jsRef() + ".mRenderer.render();\ - };\ - " + wtWindow1->jsRef() + ".mRenderer.render();"; - - - - - - std::cout<<"LOADzzzzzzzzzzzzzzzzzzzzzzzzzzzz"<doJavaScript(jsCom); - + if (firstTime==true) + { + firstTime=false; + jsCom = "\ + try{\ + var volume = new X.volume();\ + volume.spacing = [0.7,0.7,0.7 ];\ + volume.file = '" + bbGetInputImagePath() + "';\ + " +w->jsRef() + ".mVolume = volume;\ + var center = [0,0,0];\ + " +w->jsRef() + ".mVolume.center = center;\ + volume.center = [0,0,0];\ + setTimeout(function(){\ + " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow1->jsRef() + ".mRenderer.render();\ + },300);\ + setTimeout(function(){\ + " + w->jsRef() +".mVolume.upperThreshold =20000;\ + " + w->jsRef() +".mVolume.windowHigh =1670;\ + var gui = new dat.GUI();\ + var volumegui = gui.addFolder('Volume');\ + var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ + var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1);\ + var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ + var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ + var sliceXController = volumegui.add(" + w->jsRef() +".mVolume, 'indexX', 0,volume.range[0] - 1);\ + var sliceYController = volumegui.add(" + w->jsRef() +".mVolume, 'indexY', 0,volume.range[1] - 1);\ + var sliceZController = volumegui.add(" + w->jsRef() +".mVolume, 'indexZ', 0,volume.range[2] - 1);\ + " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow2->jsRef() + ".mRenderer.render();\ + " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow3->jsRef() + ".mRenderer.render();\ + " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow4->jsRef() + ".mRenderer.render();\ + },3000);\ + } catch(err) { \ + } \ + "; + + // jsCom = "\ + var volume = new X.volume();\ + volume.spacing = [0.7,0.7,0.7 ];\ + volume.file = '" + bbGetInputImagePath() + "';\ + " +w->jsRef() + ".mVolume = volume;\ + var center = [0,0,0\ + ];\ + " +w->jsRef() + ".mVolume.center = center;\ + volume.center = [0,0,0];\ + setTimeout(function(){\ + " + wtWindow1->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + },300);\ + " + wtWindow1->jsRef() + ".mRenderer.onShowTime = function(){\ + " + w->jsRef() +".mVolume.upperThreshold =20000;\ + " + w->jsRef() +".mVolume.windowHigh =1670;\ + var gui = new dat.GUI();\ + var volumegui = gui.addFolder('Volume');\ + var vrController = volumegui.add(" + w->jsRef() +".mVolume, 'volumeRendering');\ + var opacityController = volumegui.add(" + w->jsRef() +".mVolume, 'opacity', 0, 1);\ + var lowerWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowLow', 0,2000);\ + var upperWindowController = volumegui.add(" + w->jsRef() +".mVolume, 'windowHigh', 0,2000);\ + var sliceXController = volumegui.add(" + w->jsRef() +".mVolume, 'indexX', 0,volume.range[0] - 1);\ + var sliceYController = volumegui.add(" + w->jsRef() +".mVolume, 'indexY', 0,volume.range[1] - 1);\ + var sliceZController = volumegui.add(" + w->jsRef() +".mVolume, 'indexZ', 0,volume.range[2] - 1);\ + " + wtWindow2->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow2->jsRef() + ".mRenderer.render();\ + " + wtWindow3->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow3->jsRef() + ".mRenderer.render();\ + " + wtWindow4->jsRef() + ".mRenderer.add(" +w->jsRef() + ".mVolume);\ + " + wtWindow4->jsRef() + ".mRenderer.render();\ + };\ + " + wtWindow1->jsRef() + ".mRenderer.render();"; + + w->doJavaScript(jsCom); + } //if firsttime == true + } // ok //Wt::WApplication::instance()->refresh(); // wtWindow2->resize(Wt::WLength::Auto, 200); @@ -416,8 +227,6 @@ void ViewerNVWeb::loadImage() Wt::WApplication::instance()->refresh(); - - } @@ -429,10 +238,11 @@ void ViewerNVWeb::bbUserSetDefaultValues() // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 - bbSetInputImagePath(""); - int n[] = {3,2,1,0}; - std::vector nn (n,n+sizeof(n)/sizeof(int)); - bbSetInputnTypeView(nn); + firstTime=true; + bbSetInputImagePath(""); + int n[] = {3,2,1,0}; + std::vector nn (n,n+sizeof(n)/sizeof(int)); + bbSetInputnTypeView(nn); bbSetOutputviewer1(""); bbSetOutputviewer2(""); bbSetOutputviewer3(""); @@ -480,7 +290,7 @@ void ViewerNVWeb::CreateWidget(Wt::WContainerWidget* parent) l->addWidget(wtWindow1); l->addWidget(wtWindow2); - + l->setResizable(0,true,400); w->setLayout(l); wtWindow1->configureWt(); @@ -507,7 +317,7 @@ void ViewerNVWeb::CreateWidget(Wt::WContainerWidget* parent) wtWindow3 = new Viewer_NV(0,nType[2]); /* - l->addWidget(wtWindow2); + l->addWidget(wtWindow2);http://www.creatis.insa-lyon.fr/~davila/links/links_EED.html l->addWidget(wtWindow3); @@ -520,11 +330,12 @@ void ViewerNVWeb::CreateWidget(Wt::WContainerWidget* parent) l->addWidget(wtWindow2); l->addWidget(wtWindow3); + l->setResizable(0,true,400); aux1->setLayout(l); l2->addWidget(wtWindow1); l2->addWidget(aux1); - + l2->setResizable(0,true,400); w->setLayout(l2); wtWindow1->configureWt(); @@ -570,11 +381,14 @@ void ViewerNVWeb::CreateWidget(Wt::WContainerWidget* parent) l->addWidget(wtWindow2,0,1); l->addWidget(wtWindow3,0,2); l->addWidget(wtWindow4,0,3); + l->setColumnResizable(0,true,400); + l->setColumnResizable(1,true,400); + l->setColumnResizable(2,true,400); aux1->setLayout(l); l2->addWidget(wtWindow1); l2->addWidget(aux1); - + l2->setResizable(0,true,600); w->setLayout(l2); @@ -593,13 +407,18 @@ void ViewerNVWeb::CreateWidget(Wt::WContainerWidget* parent) bbSetOutputviewer3(wtWindow3->jsRef()); bbSetOutputviewer4(wtWindow4->jsRef()); + bbSetOutputViewer1(wtWindow1); + bbSetOutputViewer2(wtWindow2); + bbSetOutputViewer3(wtWindow3); + bbSetOutputViewer4(wtWindow4); + + } bbSetOutputWidget(w); - loadImage(); - //Process(); +//EED loadImage(); }