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_*/