]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbcreaMaracasVisuPlaneDirection.cxx
install, doxy and direction
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuPlaneDirection.cxx
diff --git a/bbtk/src/bbcreaMaracasVisuPlaneDirection.cxx b/bbtk/src/bbcreaMaracasVisuPlaneDirection.cxx
new file mode 100644 (file)
index 0000000..4c5a9a8
--- /dev/null
@@ -0,0 +1,84 @@
+#include "bbcreaMaracasVisuPlaneDirection.h"
+#include "bbcreaMaracasVisuPackage.h"
+namespace bbcreaMaracasVisu
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,PlaneDirection)
+BBTK_BLACK_BOX_IMPLEMENTATION(PlaneDirection,bbtk::WxBlackBox);
+void PlaneDirection::Process()
+{
+
+
+       int radio = bbGetInputArrowSize();
+       std::vector<int> lstPointsx = bbGetInputlstPointsX();
+       std::vector<int> lstPointsy = bbGetInputlstPointsY();
+       std::vector<int> lstPointsz = bbGetInputlstPointsZ();
+       std::vector<double> _lstPointsx;
+       std::vector<double> _lstPointsy;
+       std::vector<double> _lstPointsz;
+       vtkRenderer* render = bbGetInputRenderer();
+       vtkImageData* img = bbGetInputIn();     
+       std::string filename = bbGetInputFilename();
+
+       _planedir->SetArrowSize(radio);
+       if(render!=NULL){
+               _planedir->SetRenderer(render);
+       }
+
+       if(lstPointsx.size()>0&&lstPointsy.size()>0&&lstPointsz.size()>0){
+               double* spc;
+               if(img != NULL){
+                       spc = img->GetSpacing();
+               }else{
+                       spc = new double[3];
+            spc[0]=1;
+                       spc[1]=1;
+                       spc[2]=1;
+               }
+               
+               for(int i = 0; i < lstPointsx.size();i++){                      
+                       _lstPointsx.push_back(lstPointsx[i]*spc[0]);
+                       _lstPointsy.push_back(lstPointsy[i]*spc[1]);
+                       _lstPointsz.push_back(lstPointsz[i]*spc[2]);
+               }               
+               
+               _planedir->SetVectors(_lstPointsx, _lstPointsy, _lstPointsz);
+               _planedir->UpdateDirections();
+               if(filename.compare("")!=0){
+                       _planedir->WriteInformation(filename,spc);
+               }
+       }
+
+}
+void PlaneDirection::CreateWidget(wxWindow* parent)
+{
+       _planedir = PlaneDirectionViewer::getInstance(parent, radio, colour, opacity);
+   bbSetOutputWidget( _planedir );      
+}
+void PlaneDirection::bbUserSetDefaultValues()
+{
+       radio = 5;
+       colour[0] = 1;
+       colour[1] = 0;
+       colour[2] = 0;
+       opacity = 100;
+}
+void PlaneDirection::bbUserInitializeProcessing()
+{
+       std::vector<int> temp;
+       bbSetInputFilename("");
+       bbSetInputRenderer(0);
+       bbSetInputIn(0);
+       bbSetInputlstPointsX(temp);
+       bbSetInputlstPointsY(temp);
+       bbSetInputlstPointsZ(temp);
+
+}
+void PlaneDirection::bbUserFinalizeProcessing()
+{
+
+}
+}
+// EO namespace bbcreaMaracasVisu
+
+