--- /dev/null
+#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
+
+
--- /dev/null
+#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__
+
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
--- /dev/null
+
+#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