From 00119d2074a1d423927404a1759b9a9616a087ba Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Thu, 20 Nov 2008 17:41:34 +0000 Subject: [PATCH] *** empty log message *** --- kernel/appli/bbi/CMakeLists.txt | 1 - kernel/appli/bbi/bbi.cxx | 4 +- kernel/src/bbtkSystem.h | 16 +- packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx | 12 +- packages/vtk/src/bbvtkIsoSurfaceExtractor.h | 6 +- .../vtk/src/bbvtkVecImageGaussianSmooth.cxx | 68 ++++++++ .../vtk/src/bbvtkVecImageGaussianSmooth.h | 60 +++++++ .../vtk/src/bbvtkVecIsoSurfaceExtractor.cxx | 162 ++++++++++++++++++ .../vtk/src/bbvtkVecIsoSurfaceExtractor.h | 71 ++++++++ 9 files changed, 390 insertions(+), 10 deletions(-) create mode 100644 packages/vtk/src/bbvtkVecImageGaussianSmooth.cxx create mode 100644 packages/vtk/src/bbvtkVecImageGaussianSmooth.h create mode 100644 packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx create mode 100644 packages/vtk/src/bbvtkVecIsoSurfaceExtractor.h diff --git a/kernel/appli/bbi/CMakeLists.txt b/kernel/appli/bbi/CMakeLists.txt index 87046b9..989e492 100644 --- a/kernel/appli/bbi/CMakeLists.txt +++ b/kernel/appli/bbi/CMakeLists.txt @@ -10,7 +10,6 @@ SET(SOURCES ) - IF(BBTK_USE_WXWIDGETS AND WIN32) ADD_EXECUTABLE(bbi WIN32 ${SOURCES}) SET_TARGET_PROPERTIES(bbi PROPERTIES LINK_FLAGS /subsystem:console ) diff --git a/kernel/appli/bbi/bbi.cxx b/kernel/appli/bbi/bbi.cxx index c4ef2fd..bb06f68 100644 --- a/kernel/appli/bbi/bbi.cxx +++ b/kernel/appli/bbi/bbi.cxx @@ -225,6 +225,7 @@ bool wxBBIApp::OnInit( ) // WINDOWS //========================================================================== IMPLEMENT_APP(wxBBIApp); + // How to have a Console and wxWidgets // http://www.wxwidgets.org/wiki/index.php/MSVC_Setup_Guide // In Visual C++ 6 (7 should be similar), to create an application that is both a console application @@ -232,7 +233,7 @@ IMPLEMENT_APP(wxBBIApp); // you need to use the linker option "/subsystem:console" and the following code: int main(int argc, char* argv[]) { - return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL); + return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL); } #else @@ -316,7 +317,6 @@ int main(int argc, char* argv[]) int main(int argc, char* argv[]) { - if (argc>2) { std::cout << "usage : "< //for access, unlink +#else +#include //for _access on Win32 +#endif + +#ifdef _MSC_VER +# define access _access +#endif diff --git a/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx b/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx index ab9c92b..3c311e9 100644 --- a/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx +++ b/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkIsoSurfaceExtractor.cxx,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:30 $ - Version: $Revision: 1.7 $ + Date: $Date: 2008/11/20 17:41:48 $ + Version: $Revision: 1.8 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -54,7 +54,7 @@ namespace bbvtk colour.push_back(1.0); colour.push_back(0.5); bbSetInputColour(colour); - + bbSetInputTransform(NULL); } void IsoSurfaceExtractor::bbUserCopyConstructor() { @@ -105,6 +105,12 @@ namespace bbvtk vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); + + if ( bbGetInputTransform()!=NULL ) + { + vtkactor->SetUserTransform( bbGetInputTransform() ); + } + bbSetOutputOut( vtkactor ); // Interface Update diff --git a/packages/vtk/src/bbvtkIsoSurfaceExtractor.h b/packages/vtk/src/bbvtkIsoSurfaceExtractor.h index 4f12b9c..8052927 100644 --- a/packages/vtk/src/bbvtkIsoSurfaceExtractor.h +++ b/packages/vtk/src/bbvtkIsoSurfaceExtractor.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkIsoSurfaceExtractor.h,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:30 $ - Version: $Revision: 1.9 $ + Date: $Date: 2008/11/20 17:41:48 $ + Version: $Revision: 1.10 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -82,6 +82,7 @@ namespace bbvtk BBTK_DECLARE_INPUT(Opacity,double); BBTK_DECLARE_INPUT(Colour,std::vector); BBTK_DECLARE_INPUT(Renderer,vtkRenderer *); + BBTK_DECLARE_INPUT(Transform, vtkLinearTransform *); BBTK_DECLARE_OUTPUT(Out,vtkProp3D *); BBTK_PROCESS(DoProcess); @@ -107,6 +108,7 @@ namespace bbvtk BBTK_INPUT(IsoSurfaceExtractor,Opacity,"Opacity",double,""); BBTK_INPUT(IsoSurfaceExtractor,Colour,"r g b",vectorcolour,"colour"); BBTK_INPUT(IsoSurfaceExtractor,Renderer,"3D scene in which to insert the surface",vtkRenderer*,""); + BBTK_INPUT(IsoSurfaceExtractor,Transform,"Linear Transform (4x4 homogeneous)",vtkLinearTransform*,""); BBTK_OUTPUT(IsoSurfaceExtractor,Out,"Extracted iso-surface",vtkProp3D *,""); BBTK_END_DESCRIBE_BLACK_BOX(IsoSurfaceExtractor); diff --git a/packages/vtk/src/bbvtkVecImageGaussianSmooth.cxx b/packages/vtk/src/bbvtkVecImageGaussianSmooth.cxx new file mode 100644 index 0000000..3a634eb --- /dev/null +++ b/packages/vtk/src/bbvtkVecImageGaussianSmooth.cxx @@ -0,0 +1,68 @@ +#include "bbvtkVecImageGaussianSmooth.h" +#include "bbvtkPackage.h" + +#include "vtkImageGaussianSmooth.h" + + +namespace bbvtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,VecImageGaussianSmooth) +BBTK_BLACK_BOX_IMPLEMENTATION(VecImageGaussianSmooth,bbtk::AtomicBlackBox); +void VecImageGaussianSmooth::Process() +{ + + vtkImageGaussianSmooth *vtkimagegaussiansmooth; + int i,size = VecVtkimagegaussiansmooth.size(); + for (i=0 ; iDelete(); + } + VecVtkimagegaussiansmooth.clear(); + VecResult.clear(); + + double stdvX=bbGetInputStdDevX(); + double stdvY=bbGetInputStdDevY(); + double stdvZ=bbGetInputStdDevZ(); + + size=bbGetInputIn().size(); + for (i=0 ; iSetInput( bbGetInputIn()[i] ); + vtkimagegaussiansmooth->SetStandardDeviation( stdvX,stdvY, stdvZ ); + vtkimagegaussiansmooth->Update(); + VecResult.push_back( vtkimagegaussiansmooth->GetOutput() ); + VecVtkimagegaussiansmooth.push_back(vtkimagegaussiansmooth); + } //for i + bbSetOutputOut(VecResult); + if (bbGetInputiImage() < VecResult.size()) + { + bbSetOutputOutImage(VecResult[bbGetInputiImage()]); + } //if + +} + +void VecImageGaussianSmooth::bbUserConstructor() +{ + + bbSetInputStdDevX(2); + bbSetInputStdDevY(2); + bbSetInputStdDevZ(2); + + bbSetInputiImage(0); + +} + +void VecImageGaussianSmooth::bbUserCopyConstructor() +{ +} + +void VecImageGaussianSmooth::bbUserDestructor() +{ +} + +} +// EO namespace bbvtk + + diff --git a/packages/vtk/src/bbvtkVecImageGaussianSmooth.h b/packages/vtk/src/bbvtkVecImageGaussianSmooth.h new file mode 100644 index 0000000..1acb573 --- /dev/null +++ b/packages/vtk/src/bbvtkVecImageGaussianSmooth.h @@ -0,0 +1,60 @@ +#ifndef __bbvtkVecImageGaussianSmooth_h_INCLUDED__ +#define __bbvtkVecImageGaussianSmooth_h_INCLUDED__ +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include "vtkImageGaussianSmooth.h" +#include "vtkImageData.h" +#include + +namespace bbvtk +{ + +class /*BBTK_EXPORT*/ VecImageGaussianSmooth + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(VecImageGaussianSmooth,bbtk::AtomicBlackBox); +//================================================================== +/// User callback called in the box contructor +virtual void bbUserConstructor(); +/// User callback called in the box copy constructor +virtual void bbUserCopyConstructor(); +/// User callback called in the box destructor +virtual void bbUserDestructor(); +//================================================================== + BBTK_DECLARE_INPUT(In,std::vector); + BBTK_DECLARE_INPUT(StdDevX,double); + BBTK_DECLARE_INPUT(StdDevY,double); + BBTK_DECLARE_INPUT(StdDevZ,double); + BBTK_DECLARE_INPUT(iImage,int); + BBTK_DECLARE_OUTPUT(Out,std::vector); + BBTK_DECLARE_OUTPUT(OutImage,vtkImageData*); + BBTK_PROCESS(Process); + void Process(); + + std::vector VecVtkimagegaussiansmooth; + std::vector VecResult; +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(VecImageGaussianSmooth,bbtk::AtomicBlackBox); +BBTK_NAME("VecImageGaussianSmooth"); +BBTK_AUTHOR("InfoTeam CREATIS-LRMN"); +BBTK_DESCRIPTION("Vector of ImageGaussianSmooth"); +BBTK_CATEGORY("filter"); + + +BBTK_INPUT(VecImageGaussianSmooth,In,"Vector of input images",std::vector,""); +BBTK_INPUT(VecImageGaussianSmooth,StdDevX,"Standard deviation in direction X",double,""); +BBTK_INPUT(VecImageGaussianSmooth,StdDevY,"Standard deviation in direction Y",double,""); +BBTK_INPUT(VecImageGaussianSmooth,StdDevZ,"Standard deviation in direction Z",double,""); +BBTK_INPUT(VecImageGaussianSmooth,iImage,"iImage ",int,""); +BBTK_OUTPUT(VecImageGaussianSmooth,Out,"Vector of output images",std::vector,""); +BBTK_OUTPUT(VecImageGaussianSmooth,OutImage,"Image[iImage]",vtkImageData*,""); + +BBTK_END_DESCRIBE_BLACK_BOX(VecImageGaussianSmooth); +} +// EO namespace bbvtk + +#endif // __bbvtkVecImageGaussianSmooth_h_INCLUDED__ + diff --git a/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx new file mode 100644 index 0000000..5c3b7c6 --- /dev/null +++ b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx @@ -0,0 +1,162 @@ +#include "bbvtkVecIsoSurfaceExtractor.h" +#include "bbvtkPackage.h" + +#include "vtkProperty.h" + +namespace bbvtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,VecIsoSurfaceExtractor) +BBTK_BLACK_BOX_IMPLEMENTATION(VecIsoSurfaceExtractor,bbtk::AtomicBlackBox); +void VecIsoSurfaceExtractor::Process() +{ + double r,g,b; + vtkMarchingCubes *marchingcubes; + vtkPolyDataMapper *polydatamapper; + vtkActor *vtkactor; + + int i,size; + + + size = VecVtkactor.size(); + for( i=0 ; iRemoveActor( VecVtkactor[i] ); + VecMarchingcubes[i]->Delete(); + VecPolydatamapper[i]->Delete(); + VecVtkactor[i]->Delete(); + } + } + VecMarchingcubes.clear(); + VecPolydatamapper.clear(); + VecVtkactor.clear(); + + + size = bbGetInputIn().size(); + for( i=0 ; iSetInput(marchingcubes->GetOutput()); + vtkactor->SetMapper(polydatamapper); + + polydatamapper->ScalarVisibilityOff(); + polydatamapper->ImmediateModeRenderingOn(); + + VecMarchingcubes.push_back(marchingcubes); + VecPolydatamapper.push_back(polydatamapper); + VecVtkactor.push_back(vtkactor); + } // for i + + + for( i=0 ; iSetInput( bbGetInputIn()[i] ); + marchingcubes->SetValue(0, bbGetInputIsovalue() ); + marchingcubes->Update(); + + if ( (i*3+1)GetProperty()->SetColor( r,g,b ); + + vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); + + if ( bbGetInputTransform()!=NULL ) + { + vtkactor->SetUserTransform( bbGetInputTransform() ); + } + + // Interface Update + if (bbGetInputRenderer()!=NULL ) + { + bbGetInputRenderer()->AddActor( vtkactor ); + } + } // for i + + + bbSetOutputOut( VecVtkactor ); +} + +void VecIsoSurfaceExtractor::bbUserConstructor() +{ + Init(); + std::vector colour; + // 1- red + colour.push_back(1.0); + colour.push_back(0.0); + colour.push_back(0.0); + // 2- blue + colour.push_back(0.0); + colour.push_back(0.0); + colour.push_back(1.0); + // 3- yellow + colour.push_back(1.0); + colour.push_back(1.0); + colour.push_back(0.0); + // 4- green + colour.push_back(0.0); + colour.push_back(1.0); + colour.push_back(0.0); + // 5- + colour.push_back(0.0); + colour.push_back(1.0); + colour.push_back(1.0); + + // 6- + colour.push_back(0.5); + colour.push_back(0.5); + colour.push_back(0.5); + + + bbSetInputColour(colour); + bbSetInputTransform(NULL); +} + +void VecIsoSurfaceExtractor::bbUserCopyConstructor() +{ + Init(); +} + +void VecIsoSurfaceExtractor::bbUserDestructor() +{ + int i,size = VecMarchingcubes.size(); + for (i=0;iDelete(); + VecPolydatamapper[i]->Delete(); + VecVtkactor[i]->Delete(); + } + VecMarchingcubes.clear(); + VecPolydatamapper.clear(); + VecVtkactor.clear(); +} + + +void VecIsoSurfaceExtractor::Init() +{ +// bbSetInputIn(NULL); + // bbSetInputInVtkObject(NULL); + bbSetInputRenderer(NULL); + bbSetInputIsovalue(128); + bbSetInputOpacity(1); + +} + + +} +// EO namespace bbvtk + + diff --git a/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.h b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.h new file mode 100644 index 0000000..e0e4b84 --- /dev/null +++ b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.h @@ -0,0 +1,71 @@ +#ifndef __bbvtkVecIsoSurfaceExtractor_h_INCLUDED__ +#define __bbvtkVecIsoSurfaceExtractor_h_INCLUDED__ +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include "vtkImageData.h" +#include "vtkRenderer.h" +#include "vtkMarchingCubes.h" +#include "vtkPolyDataMapper.h" +#include "vtkProp3D.h" +#include "vtkActor.h" +#include + + +namespace bbvtk +{ + +class /*BBTK_EXPORT*/ VecIsoSurfaceExtractor + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(VecIsoSurfaceExtractor,bbtk::AtomicBlackBox); +//================================================================== +/// User callback called in the box contructor +virtual void bbUserConstructor(); +/// User callback called in the box copy constructor +virtual void bbUserCopyConstructor(); +/// User callback called in the box destructor +virtual void bbUserDestructor(); +//================================================================== + BBTK_DECLARE_INPUT(In,std::vector); + // BBTK_DECLARE_INPUT(InVtkObject,vtkObject *); + BBTK_DECLARE_INPUT(Isovalue,double); + BBTK_DECLARE_INPUT(Opacity,double); + BBTK_DECLARE_INPUT(Colour,std::vector); + BBTK_DECLARE_INPUT(Renderer,vtkRenderer *); + BBTK_DECLARE_INPUT(Transform, vtkLinearTransform *); + BBTK_DECLARE_OUTPUT(Out,std::vector); + BBTK_PROCESS(Process); + void Process(); + +// virtual void bbUserConstructor(); +// virtual void bbUserCopyConstructor(); +// virtual void bbUserDestructor(); + void Init(); + + std::vector VecMarchingcubes; + std::vector VecPolydatamapper; + std::vector VecVtkactor; + +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(VecIsoSurfaceExtractor,bbtk::AtomicBlackBox); +BBTK_NAME("VecIsoSurfaceExtractor"); +BBTK_AUTHOR("InfoTeam CREATIS-LRMN"); +BBTK_DESCRIPTION("Vector of IsoSurfaceExtractor"); + BBTK_CATEGORY("3D object creator"); + BBTK_INPUT(VecIsoSurfaceExtractor,In,"Input image",std::vector,""); + // BBTK_INPUT(IsoSurfaceExtractor,InVtkObject,"Image vtkObject",vtkObject*); + BBTK_INPUT(VecIsoSurfaceExtractor,Isovalue,"Isovalue",double,""); + BBTK_INPUT(VecIsoSurfaceExtractor,Opacity,"Opacity",double,""); + BBTK_INPUT(VecIsoSurfaceExtractor,Colour,"r g b",std::vector,"colour"); + BBTK_INPUT(VecIsoSurfaceExtractor,Renderer,"3D scene in which to insert the surface",vtkRenderer*,""); + BBTK_INPUT(VecIsoSurfaceExtractor,Transform,"Linear Transform (4x4 homogeneous)",vtkLinearTransform*,""); + BBTK_OUTPUT(VecIsoSurfaceExtractor,Out,"Extracted iso-surface",std::vector,""); +BBTK_END_DESCRIBE_BLACK_BOX(VecIsoSurfaceExtractor); +} +// EO namespace bbvtk + +#endif // __bbvtkVecIsoSurfaceExtractor_h_INCLUDED__ + -- 2.45.0