From 2bdcf76745c5d4634a6c86e69ed20acc269a4de5 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Fri, 18 Dec 2009 15:50:21 +0000 Subject: [PATCH] no message --- packages/vtk/src/bbvtkPolyDataToActor.cxx | 127 ++++++++++++++++++++++ packages/vtk/src/bbvtkPolyDataToActor.h | 113 +++++++++++++++++++ 2 files changed, 240 insertions(+) create mode 100644 packages/vtk/src/bbvtkPolyDataToActor.cxx create mode 100644 packages/vtk/src/bbvtkPolyDataToActor.h diff --git a/packages/vtk/src/bbvtkPolyDataToActor.cxx b/packages/vtk/src/bbvtkPolyDataToActor.cxx new file mode 100644 index 0000000..1df669a --- /dev/null +++ b/packages/vtk/src/bbvtkPolyDataToActor.cxx @@ -0,0 +1,127 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile: bbvtkPolyDataToActor.cxx,v $ + Language: C++ + Date: $Date: 2009/05/28 08:55:44 $ + Version: $Revision: 1.15 $ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + +/** + * \file + * \brief + */ + + +#ifdef _USE_VTK_ + +#include "vtkProperty.h" +#include "vtkLinearTransform.h" + +#include "bbvtkPolyDataToActor.h" +#include "bbvtkPackage.h" + +namespace bbvtk +{ + BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,PolyDataToActor) + BBTK_BLACK_BOX_IMPLEMENTATION(PolyDataToActor,bbtk::AtomicBlackBox); + + void PolyDataToActor::bbUserSetDefaultValues() + { + firsttime=true; + std::vector colour; + colour.push_back(1.0); + colour.push_back(1.0); + colour.push_back(0.5); + bbSetInputColour(colour); + + bbSetInputIn(NULL); + bbSetInputRenderer(NULL); + bbSetInputTransform(NULL); + bbSetInputIsovalue(400); + bbSetInputOpacity(1); + + polydatamapper = NULL; + vtkactor = NULL; + } + + + //--------------------------------------------------------------------- + void PolyDataToActor::bbUserInitializeProcessing() + { + polydatamapper = vtkPolyDataMapper::New(); + vtkactor = vtkActor::New(); + +// polydatamapper->SetInput(marchingcubes->GetOutput()); + vtkactor->SetMapper(polydatamapper); + + polydatamapper->ScalarVisibilityOff(); + polydatamapper->ImmediateModeRenderingOn(); + } + + //--------------------------------------------------------------------- + void PolyDataToActor::bbUserFinalizeProcessing() + { + if (polydatamapper!=NULL) + { + polydatamapper->Delete(); + polydatamapper=NULL; + } + if (vtkactor!=NULL) + { + vtkactor->Delete(); + vtkactor=NULL; + } + } + + +//--------------------------------------------------------------------- + + void PolyDataToActor::DoProcess() + { + polydatamapper->SetInput( bbGetInputIn() ); + + vtkactor->GetProperty()->SetColor( bbGetInputColour()[0], + bbGetInputColour()[1], + bbGetInputColour()[2] ); + + vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); + + if ( bbGetInputTransform()!=NULL ) + { + vtkactor->SetUserTransform( bbGetInputTransform() ); + } + + bbSetOutputOut( vtkactor ); + + // Interface Update + if ((firsttime==true) && (bbGetInputRenderer()!=NULL )) + { + firsttime=false; + bbGetInputRenderer()->AddActor( vtkactor ); + } + } +} // EO namespace bbtk + +#endif //_USE_VTK_ \ No newline at end of file diff --git a/packages/vtk/src/bbvtkPolyDataToActor.h b/packages/vtk/src/bbvtkPolyDataToActor.h new file mode 100644 index 0000000..e17ec37 --- /dev/null +++ b/packages/vtk/src/bbvtkPolyDataToActor.h @@ -0,0 +1,113 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile: bbvtkPolyDataToActor.h,v $ + Language: C++ + Date: $Date: 2009/05/15 14:58:01 $ + Version: $Revision: 1.12 $ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + + +/** + * \brief Short description in one line + * + * Long description which + * can span multiple lines + */ +/** + * \file + * \brief Pattern for the definition of a new type of Node (header) + */ +/** + * \class bbtk::NodePatern + * \brief Pattern for the definition of a new type of Node + */ + + +#ifdef _USE_VTK_ + + +#ifndef __vtkPolyDataToActor_h__ +#define __vtkPolyDataToActor_h__ + +#include "vtkRenderer.h" +#include "vtkPolyData.h" +#include "vtkPolyDataMapper.h" +#include "vtkProp3D.h" +#include "vtkActor.h" +#include + +#include "bbtkAtomicBlackBox.h" + +namespace bbvtk +{ + + class /*BBTK_EXPORT*/ PolyDataToActor + : + public bbtk::AtomicBlackBox + { + bool firsttime; + vtkPolyDataMapper *polydatamapper; + vtkActor *vtkactor; + + + BBTK_BLACK_BOX_INTERFACE(PolyDataToActor,bbtk::AtomicBlackBox); + + BBTK_DECLARE_INPUT(In,vtkPolyData *); + 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,vtkProp3D *); + + BBTK_PROCESS(DoProcess); + void DoProcess(); + + protected: + }; + + BBTK_BEGIN_DESCRIBE_BLACK_BOX(PolyDataToActor,bbtk::AtomicBlackBox); + BBTK_NAME("PolyDataToActor"); + BBTK_AUTHOR("eduardo.davila at creatis.insa-lyon.fr"); + BBTK_DESCRIPTION("takes a vtkPolyData object to insert into a 3D scene (e.g. a Viewer3D)"); + typedef std::vector vectorcolour; + BBTK_CATEGORY("3D object creator"); + BBTK_INPUT(PolyDataToActor,In,"Input image",vtkPolyData*,""); + + BBTK_INPUT(PolyDataToActor,Isovalue,"Isovalue",double,""); + BBTK_INPUT(PolyDataToActor,Opacity,"Opacity",double,""); + BBTK_INPUT(PolyDataToActor,Colour,"r g b",vectorcolour,"colour"); + BBTK_INPUT(PolyDataToActor,Renderer,"3D scene in which to insert the surface",vtkRenderer*,""); + BBTK_INPUT(PolyDataToActor,Transform,"Linear Transform (4x4 homogeneous)",vtkLinearTransform*,""); + BBTK_OUTPUT(PolyDataToActor,Out,"Extracted iso-surface",vtkProp3D *,""); + + BBTK_END_DESCRIBE_BLACK_BOX(PolyDataToActor); + +}// EO namespace bbtk + + +#endif //__PolyDataToActor_h__ + +#endif //_USE_VTK_ -- 2.45.1