From: Juan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Date: Fri, 27 Nov 2009 19:49:59 +0000 (+0000)
Subject: *** empty log message ***
X-Git-Tag: CREATOOLS.2-0-3~96
X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=d1a1eeaccf513ecfd9ed594741a0aa76152eb8a5;p=creaMaracasVisu.git

*** empty log message ***
---

diff --git a/bbtk/bbs/appli/ExampleOpenDialog.bbs b/bbtk/bbs/appli/ExampleOpenDialog.bbs
new file mode 100644
index 0000000..1632a7c
--- /dev/null
+++ b/bbtk/bbs/appli/ExampleOpenDialog.bbs
@@ -0,0 +1,7 @@
+load std
+load wx
+load creaMaracasVisu
+
+new OpenImageDialog diag
+
+exec diag
\ No newline at end of file
diff --git a/bbtk/src/bbcreaMaracasVisuOpenImageDialog.cxx b/bbtk/src/bbcreaMaracasVisuOpenImageDialog.cxx
new file mode 100644
index 0000000..1099679
--- /dev/null
+++ b/bbtk/src/bbcreaMaracasVisuOpenImageDialog.cxx
@@ -0,0 +1,63 @@
+#include "bbcreaMaracasVisuOpenImageDialog.h"
+#include "bbcreaMaracasVisuPackage.h"
+
+namespace bbcreaMaracasVisu
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,OpenImageDialog)
+BBTK_BLACK_BOX_IMPLEMENTATION(OpenImageDialog,bbtk::AtomicBlackBox);
+void OpenImageDialog::Process()
+{
+ 
+// THE MAIN PROCESSING METHOD BODY 
+//   Here we simply set the input 'In' value to the output 'Out' 
+//   And print out the output value 
+// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : 
+//    void bbSet{Input|Output}NAME(const TYPE&) 
+//    const TYPE& bbGet{Input|Output}NAME() const  
+//    Where : 
+//    * NAME is the name of the input/output 
+//      (the one provided in the attribute 'name' of the tag 'input') 
+//    * TYPE is the C++ type of the input/output 
+//      (the one provided in the attribute 'type' of the tag 'input')
+
+
+	OpenLoadImageDialog diag = OpenLoadImageDialog();
+
+
+
+    bbSetOutputOut( diag.getImageData() ); 
+    std::cout << "Output value = " <<bbGetOutputOut() << std::endl; 
+  
+}
+void OpenImageDialog::bbUserSetDefaultValues()
+{
+ 
+//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX  
+//    Here we initialize the input 'In' to 0 
+  // bbSetInputIn(0); 
+  
+}
+void OpenImageDialog::bbUserInitializeProcessing()
+{
+ 
+//  THE INITIALIZATION METHOD BODY : 
+//    Here does nothing  
+//    but this is where you should allocate the internal/output pointers  
+//    if any  
+ 
+  
+}
+void OpenImageDialog::bbUserFinalizeProcessing()
+{
+ 
+//  THE FINALIZATION METHOD BODY : 
+//    Here does nothing  
+//    but this is where you should desallocate the internal/output pointers  
+//    if any 
+  
+}
+}
+// EO namespace bbcreaMaracasVisu
+
+
diff --git a/bbtk/src/bbcreaMaracasVisuOpenImageDialog.h b/bbtk/src/bbcreaMaracasVisuOpenImageDialog.h
new file mode 100644
index 0000000..e0e9681
--- /dev/null
+++ b/bbtk/src/bbcreaMaracasVisuOpenImageDialog.h
@@ -0,0 +1,34 @@
+#ifndef __bbcreaMaracasVisuOpenImageDialog_h_INCLUDED__
+#define __bbcreaMaracasVisuOpenImageDialog_h_INCLUDED__
+#include "bbcreaMaracasVisu_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+#include "OpenLoadImageDialog.h"
+
+namespace bbcreaMaracasVisu
+{
+
+class bbcreaMaracasVisu_EXPORT OpenImageDialog
+ : 
+   public bbtk::AtomicBlackBox
+{
+  BBTK_BLACK_BOX_INTERFACE(OpenImageDialog,bbtk::AtomicBlackBox);
+  //BBTK_DECLARE_INPUT(In,double);
+  BBTK_DECLARE_OUTPUT(Out,vtkImageData*);
+  BBTK_PROCESS(Process);
+  void Process();
+};
+
+BBTK_BEGIN_DESCRIBE_BLACK_BOX(OpenImageDialog,bbtk::AtomicBlackBox);
+BBTK_NAME("OpenImageDialog");
+BBTK_AUTHOR("juanprietob@gmail.com");
+BBTK_DESCRIPTION("If Gimmicks");
+BBTK_CATEGORY("__CATEGORY__");
+//BBTK_INPUT(OpenImageDialog,In,"First input",double,"");
+BBTK_OUTPUT(OpenImageDialog,Out,"First output",vtkImageData*,"");
+BBTK_END_DESCRIBE_BLACK_BOX(OpenImageDialog);
+}
+// EO namespace bbcreaMaracasVisu
+
+#endif // __bbcreaMaracasVisuOpenImageDialog_h_INCLUDED__
+
diff --git a/bbtk/src/bbcreaMaracasVisuVolumeRendering.cxx b/bbtk/src/bbcreaMaracasVisuVolumeRendering.cxx
index 5242857..dd5d70a 100644
--- a/bbtk/src/bbcreaMaracasVisuVolumeRendering.cxx
+++ b/bbtk/src/bbcreaMaracasVisuVolumeRendering.cxx
@@ -6,92 +6,93 @@
 namespace bbcreaMaracasVisu
 {
 
-BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,VolumeRendering)
-BBTK_BLACK_BOX_IMPLEMENTATION(VolumeRendering,bbtk::WxBlackBox);
-void VolumeRendering::Process()
-{
- 
-// THE MAIN PROCESSING METHOD BODY 
-//   Here we simply set the input 'In' value to the output 'Out' 
-//   And print out the output value 
-// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : 
-//    void bbSet{Input|Output}NAME(const TYPE&) 
-//    const TYPE& bbGet{Input|Output}NAME() const  
-//    Where : 
-//    * NAME is the name of the input/output 
-//      (the one provided in the attribute 'name' of the tag 'input') 
-//    * TYPE is the C++ type of the input/output 
-//      (the one provided in the attribute 'type' of the tag 'input') 
-    	wxMaracasMultipleVolumeRendererView* volview = (wxMaracasMultipleVolumeRendererView*)bbGetOutputWidget();
-	vtkImageData* _img1 = bbGetInputIn0();
-	vtkImageData* _img2 = bbGetInputIn1();
-	vtkImageData* _img3 = bbGetInputIn2();
-	vtkImageData* _img4 = bbGetInputIn3();
-	vtkRenderer* renderer = bbGetInputRenderer();
+	BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,VolumeRendering)
+	BBTK_BLACK_BOX_IMPLEMENTATION(VolumeRendering,bbtk::WxBlackBox);
+	void VolumeRendering::Process()
+	{
+	 
+	// THE MAIN PROCESSING METHOD BODY 
+	//   Here we simply set the input 'In' value to the output 'Out' 
+	//   And print out the output value 
+	// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : 
+	//    void bbSet{Input|Output}NAME(const TYPE&) 
+	//    const TYPE& bbGet{Input|Output}NAME() const  
+	//    Where : 
+	//    * NAME is the name of the input/output 
+	//      (the one provided in the attribute 'name' of the tag 'input') 
+	//    * TYPE is the C++ type of the input/output 
+	//      (the one provided in the attribute 'type' of the tag 'input') 
+    		wxMaracasMultipleVolumeRendererView* volview = (wxMaracasMultipleVolumeRendererView*)bbGetOutputWidget();
+		vtkImageData* _img1 = bbGetInputIn0();
+		vtkImageData* _img2 = bbGetInputIn1();
+		vtkImageData* _img3 = bbGetInputIn2();
+		vtkImageData* _img4 = bbGetInputIn3();
+		vtkRenderer* renderer = bbGetInputRenderer();
 
-	if(volview!=NULL){
-		if(renderer!=NULL&&_currentrenderer != renderer){
-			volview->setRenderer(renderer);			
-			_currentrenderer = renderer;
-		}
-		if(_currentrenderer!=NULL){
-			if(_img1 !=NULL){
-			volview->addVolume(_img1, "INPUT 1");
-			}
-			if(_img2 !=NULL){
-				volview->addVolume(_img2, "INPUT 2");
-			}
-			if(_img3 !=NULL){
-				volview->addVolume(_img3, "INPUT 3");
+		if(volview!=NULL){
+			if(renderer!=NULL&&_currentrenderer != renderer){
+				volview->setRenderer(renderer);			
+				_currentrenderer = renderer;
 			}
-			if(_img4 !=NULL){
-				volview->addVolume(_img4, "INPUT 4");
-			}
-		}	
+			if(_currentrenderer!=NULL){
+				if(_img1 !=NULL){
+				volview->addVolume(_img1, "INPUT 1");
+				}
+				if(_img2 !=NULL){
+					volview->addVolume(_img2, "INPUT 2");
+				}
+				if(_img3 !=NULL){
+					volview->addVolume(_img3, "INPUT 3");
+				}
+				if(_img4 !=NULL){
+					volview->addVolume(_img4, "INPUT 4");
+				}
+			}	
+		}
 
-		//vtkImageData* img1 = ;
+			//vtkImageData* img1 = ;
 
-		/*bbSetOutputOut0(volview->GetOutputImages()[0]);
-		bbSetOutputOut1(volview->GetOutputImages()[1]);
-		bbSetOutputOut2(volview->GetOutputImages()[2]);
-		bbSetOutputOut3(volview->GetOutputImages()[3]);*/
+			/*bbSetOutputOut0(volview->GetOutputImages()[0]);
+			bbSetOutputOut1(volview->GetOutputImages()[1]);
+			bbSetOutputOut2(volview->GetOutputImages()[2]);
+			bbSetOutputOut3(volview->GetOutputImages()[3]);*/
 
-}
-void VolumeRendering::CreateWidget(wxWindow* parent)
-{
-	wxMaracasMultipleVolumeRendererView* volview = wxMaracasMultipleVolumeRendererView::getInstance(parent);
-	bbSetOutputWidget(volview);
-}
-void VolumeRendering::bbUserSetDefaultValues()
-{
- 
-//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX  
-//  Here we initialize the input 'In' to 0 
-    bbSetInputIn0(0); 
-    bbSetInputIn1(0); 
-    bbSetInputIn2(0); 
-    bbSetInputIn3(0); 
-    bbSetInputRenderer(0);  
+	}
+	void VolumeRendering::CreateWidget(wxWindow* parent)
+	{
+		wxMaracasMultipleVolumeRendererView* volview = wxMaracasMultipleVolumeRendererView::getInstance(parent);
+		bbSetOutputWidget(volview);
+	}
+	void VolumeRendering::bbUserSetDefaultValues()
+	{
+	 
+	//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX  
+	//  Here we initialize the input 'In' to 0 
+		bbSetInputIn0(0); 
+		bbSetInputIn1(0); 
+		bbSetInputIn2(0); 
+		bbSetInputIn3(0); 
+		bbSetInputRenderer(0);  
 
-	bbSetOutputOut0(NULL);
-	bbSetOutputOut1(NULL);
-	bbSetOutputOut2(NULL);
-	bbSetOutputOut3(NULL);
-  
-}
-void VolumeRendering::bbUserInitializeProcessing()
-{ 
-	_currentrenderer = NULL;
-}
-void VolumeRendering::bbUserFinalizeProcessing()
-{
- 
-//  THE FINALIZATION METHOD BODY : 
-//    Here does nothing  
-//    but this is where you should desallocate the internal/output pointers  
-//    if any 
-  
-}
+		bbSetOutputOut0(NULL);
+		bbSetOutputOut1(NULL);
+		bbSetOutputOut2(NULL);
+		bbSetOutputOut3(NULL);
+	  
+	}
+	void VolumeRendering::bbUserInitializeProcessing()
+	{ 
+		_currentrenderer = NULL;
+	}
+	void VolumeRendering::bbUserFinalizeProcessing()
+	{
+	 
+	//  THE FINALIZATION METHOD BODY : 
+	//    Here does nothing  
+	//    but this is where you should desallocate the internal/output pointers  
+	//    if any 
+	  
+	}
 }
 // EO namespace bbcreaMaracasVisu
 
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.cxx
new file mode 100644
index 0000000..23d080f
--- /dev/null
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.cxx
@@ -0,0 +1,58 @@
+
+#include "OpenLoadImageDialog.h"
+
+typedef vtkImageData* (*GETIMAGEDATADIALOG)();
+
+OpenLoadImageDialog::OpenLoadImageDialog()
+{
+
+
+	img = NULL;
+	bool gimmicknotfound = true;
+	
+#ifdef WIN32
+	HINSTANCE gimmickhandle; 
+	gimmickhandle = LoadLibrary(TEXT("creaImageIO2.dll")); 	
+	if(gimmickhandle!=NULL){	
+
+		
+		GETIMAGEDATADIALOG getImageDataDialog;
+
+		getImageDataDialog = (GETIMAGEDATADIALOG)GetProcAddress(gimmickhandle, "getImageDataDialog");
+
+		std::cout<<"imagedatadialog "<<getImageDataDialog<<std::endl;
+
+		if(getImageDataDialog!=NULL){
+			img = getImageDataDialog();
+			gimmicknotfound = false;
+		}
+	}	
+#else
+	//GNU part
+#endif
+
+
+	if(gimmicknotfound){
+
+		wxFileDialog* FD = 
+		  new wxFileDialog( 0, _T("Read Image"),wxEmptyString,wxEmptyString, _T("*.mhd"));
+		
+		if (FD->ShowModal()==wxID_OK)
+		{
+			std::string  path= FD->GetPath();
+
+			vtkMetaImageReader *reader =  vtkMetaImageReader::New();	
+			reader->SetFileName(path.c_str());		
+			img = reader->GetOutput();		
+		}		
+	}	
+}
+
+//-------------------------------------------------------------------
+OpenLoadImageDialog::~OpenLoadImageDialog()
+{
+}
+
+vtkImageData* OpenLoadImageDialog::getImageData(){
+	return img;
+}
\ No newline at end of file
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.h
new file mode 100644
index 0000000..1cdcf89
--- /dev/null
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/OpenLoadImageDialog.h
@@ -0,0 +1,25 @@
+#ifndef OpenLoadImageDialog_H_
+#define OpenLoadImageDialog_H_
+
+#include "marTypes.h"
+#include "vtkImageData.h"
+#include "vtkMetaImageReader.h"
+#include "wx/wx.h"
+
+
+
+class creaMaracasVisu_EXPORT OpenLoadImageDialog {
+public:
+	OpenLoadImageDialog();
+	~OpenLoadImageDialog();
+	
+
+	vtkImageData* getImageData();
+protected:
+
+private:
+	vtkImageData* img;
+	
+};
+
+#endif /*OpenLoadImageDialog_H_*/