2 // 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)
4 #include "bbwtRender3D.h"
5 #include "bbwtPackage.h"
6 #include "bbtkUtilities.h"
11 BBTK_ADD_BLACK_BOX_TO_PACKAGE(wt,Render3D)
12 BBTK_BLACK_BOX_IMPLEMENTATION(Render3D,bbtk::WtBlackBox);
14 // 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)
16 void Render3D::Process()
19 // THE MAIN PROCESSING METHOD BODY
20 // Here we simply set the input 'In' value to the output 'Out'
21 // And print out the output value
22 // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
23 // void bbSet{Input|Output}NAME(const TYPE&)
24 // const TYPE& bbGet{Input|Output}NAME() const
26 // * NAME is the name of the input/output
27 // (the one provided in the attribute 'name' of the tag 'input')
28 // * TYPE is the C++ type of the input/output
29 // (the one provided in the attribute 'type' of the tag 'input')
33 std::cout<<"DEBUG ----------------------------------------------- 3 -----------------"<<std::endl;
35 std::cout<<"DEBUG XTK --------------- PROCESS RENDER 3D ---- "<<std::endl;
37 Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget();
38 std::cout<<"DEBUG -------------------------------------------- 4 -----------------"<<std::endl;
39 Wt::WContainerWidget* aux;
40 // std::string cadena = "var nue = new X.mesh();nue.file = 'http://x.babymri.org/?skull.vtk';"+w->jsRef()+".mRender.add(nue); ";
41 std::string cadena = "";
42 if((aux=bbCreateWidgetOfInput("Image1",w))!=0)
44 std::cout<<"DEBUG -------------------------------------------- 9 -----------------"<<std::endl;
45 cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";
46 std::cout<<"EXISTE +++++++++++++++++++++ " + aux->jsRef()<<std::endl;
48 /* if((aux=bbCreateWidgetOfInput("Image2",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
49 if((aux=bbCreateWidgetOfInput("Image3",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
50 if((aux=bbCreateWidgetOfInput("Image4",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
51 if((aux=bbCreateWidgetOfInput("Image5",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
52 if((aux=bbCreateWidgetOfInput("Image6",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
53 if((aux=bbCreateWidgetOfInput("Image7",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
54 if((aux=bbCreateWidgetOfInput("Image8",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
55 if((aux=bbCreateWidgetOfInput("Image9",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
58 cadena = cadena + "" + w->jsRef() + ".mRender.render();";
59 std::cout<<" DEBUG XTK -----PROCESS RENDER STRING ---"<<cadena<<std::endl;
60 std::cout<<"DEBUG -------------------------------------------- 10 -----------------"<<std::endl;
61 /* if(initDone == false)
63 std::cout<<"DEBUG -------------------------------------------- 11 -----------------"<<std::endl;
64 std::string cadena1 =" \
65 var mRender = new X.renderer3D(); \
66 mRender.container = '" +w->id()+ "'; \
68 " + w->jsRef() + ".mRender = mRender; ";
69 // w->doJavaScript(cadena1);
74 // w->doJavaScript(cadena);
77 Wt::WContainerWidget* w = (Wt::WContainerWidget*)bbGetOutputWidget();
79 std::string cadena = "";
80 /*int count = w->count();
82 /*for(int i =0;i<count;i++)
85 cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";
86 w->doJavaScript("alert('EXISTE ---' + " + aux->jsRef() + ".mObject.classname + ' -----' + "+aux->jsRef()+".mObject.file);");
88 /* if((aux=bbCreateWidgetOfInput("Image1",w))!=0)
90 cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";
92 w->doJavaScript("alert('EXISTE ---' + " + aux->jsRef() + ".mObject.classname + ' -----' + "+aux->jsRef()+".mObject.file);");
93 std::cout<<" --------- Object consultado con ref : "<<aux->jsRef()<<std::endl;
94 //w->doJavaScript("alert("+aux->jsRef() + ".mObject.file);");
99 if(bbGetInputImage1() != "")
101 cadena = cadena + "" + w->jsRef() + ".mRender.add(" + bbGetInputImage1() + ".mObject);";
102 w->doJavaScript("alert('EXISTE ---' + " +bbGetInputImage1() + ".mObject.classname + ' -----' + "+bbGetInputImage1()+".mObject.file);");
105 cadena = cadena + "" + w->jsRef() + ".mRender.render();";
106 //std::cout<<"---------------------------------------------------------------CA:"<<cadena<<std::endl;
107 w->doJavaScript(cadena);
113 void Render3D::CreateWidget(Wt::WContainerWidget* parent)
116 std::cout<<"DEBUG ------------------------------------------ 1 -----------------"<<std::endl;
118 std::cout<<"DEBUG XTK CREANDO RENDERER --------"<<std::endl;
119 Wt::WContainerWidget *w = new Wt::WContainerWidget(parent);
121 std::string cadena1 =" \
122 var mRender = new X.renderer3D(); \
123 mRender.container = '" +w->id()+ "'; \
125 " + w->jsRef() + ".mRender = mRender; ";
126 w->doJavaScript(cadena1);
130 bbSetOutputWidget(w);
131 std::cout<<"DEBUG -------------------------------------------- 2 -----------------"<<std::endl;
133 //this->bbSignalOutputModification();
137 Wt::WContainerWidget *w = new Wt::WContainerWidget(parent);
139 std::string cadena1 =" \
140 var mRender = new X.renderer3D(); \
141 mRender.container = '" +w->id()+ "'; \
143 " + w->jsRef() + ".mRender = mRender; ";
144 w->doJavaScript(cadena1);
146 Wt::WContainerWidget* aux;
148 /* if((aux=bbCreateWidgetOfInput("Image1",w))!=0)
152 /* if((aux=bbCreateWidgetOfInput("Image2",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
153 if((aux=bbCreateWidgetOfInput("Image3",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
154 if((aux=bbCreateWidgetOfInput("Image4",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
155 if((aux=bbCreateWidgetOfInput("Image5",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
156 if((aux=bbCreateWidgetOfInput("Image6",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
157 if((aux=bbCreateWidgetOfInput("Image7",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
158 if((aux=bbCreateWidgetOfInput("Image8",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
159 if((aux=bbCreateWidgetOfInput("Image9",w))!=0){cadena = cadena + "" + w->jsRef() + ".mRender.add(" + aux->jsRef() + ".mObject);";}
162 bbSetOutputWidget(w);
169 // 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)
171 void Render3D::bbUserSetDefaultValues()
174 // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
175 // Here we initialize the input 'In' to 0
176 bbSetInputImage1("");
177 /* bbSetInputImage2(0);
189 // 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)
191 void Render3D::bbUserInitializeProcessing()
194 // THE INITIALIZATION METHOD BODY :
196 // but this is where you should allocate the internal/output pointers
202 // 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)
204 void Render3D::bbUserFinalizeProcessing()
207 // THE FINALIZATION METHOD BODY :
209 // but this is where you should desallocate the internal/output pointers