From 076686675e6ef7994bf843e31d5b17341a657325 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Wed, 11 Apr 2012 14:11:13 +0000 Subject: [PATCH] no message --- packages/vtk/src/bbvtkSphereList.cxx | 137 +++++++++++++++++++++++++++ packages/vtk/src/bbvtkSphereList.h | 64 +++++++++++++ 2 files changed, 201 insertions(+) create mode 100644 packages/vtk/src/bbvtkSphereList.cxx create mode 100644 packages/vtk/src/bbvtkSphereList.h diff --git a/packages/vtk/src/bbvtkSphereList.cxx b/packages/vtk/src/bbvtkSphereList.cxx new file mode 100644 index 0000000..8e552d7 --- /dev/null +++ b/packages/vtk/src/bbvtkSphereList.cxx @@ -0,0 +1,137 @@ +#include "bbvtkSphereList.h" +#include "bbvtkPackage.h" + +#include +#include +#include + +namespace bbvtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,SphereList) +BBTK_BLACK_BOX_IMPLEMENTATION(SphereList,bbtk::AtomicBlackBox); + +void SphereList::Process() +{ + + int iMin, iMax; + double px = 0.0; + double py = 0.0; + double pz = 0.0; + double radio; + double spc[3]; + + + if (bbGetInputRenderer()!=NULL) + { + spc[0]=spc[1]=spc[2]=1; + + iMin=0; + iMax=bbGetInputlstPointX().size(); + printf("EED SphereList::Process iMax=%d \n", iMax); + // If the vector Y or respectively the vector Z has a different size from the vector X, the position value py or respectively pz is set to 0. + for ( int i=iMin ; i=1){ + radio = bbGetInputlstRadio()[ bbGetInputlstRadio().size() - 1 ]; + } else { + radio = 1.0; + } + } + + // Sphere + vtkSphereSource * newSphere = vtkSphereSource::New(); + vtkSphere.push_back(newSphere); + + newSphere -> SetThetaResolution(20); + newSphere -> SetPhiResolution(20); + newSphere -> SetRadius(radio); + + vtkPolyDataMapper * newMapper = vtkPolyDataMapper::New(); + sphereMapper.push_back(newMapper); + newMapper -> SetInput( newSphere -> GetOutput() ); + + vtkActor * newActor = vtkActor::New(); + sphereActor.push_back(newActor); + newActor -> SetMapper(newMapper); + newActor -> SetOrigin(0, 0, 0); + newActor -> GetProperty() -> SetColor( bbGetInputColour()[0] , bbGetInputColour()[1] , bbGetInputColour()[2] ); + newActor -> GetProperty() -> SetOpacity( bbGetInputOpacity() ); + newActor -> SetPosition( px,py,pz ); + + if ( bbGetInputTransform()!=NULL ) + { + newActor->SetUserTransform( bbGetInputTransform() ); + } + + + if (bbGetInputRenderer()!=NULL) + { + bbGetInputRenderer() -> AddActor( newActor ); + } + + } // for + + if (sphereActor.size() != 0) + { + // Sets the output. + bbSetOutputActorList(sphereActor); + } + + } // if (bbGetInputRenderer()!=NULL) + + +} + +void SphereList::bbUserSetDefaultValues() +{ + + bbSetInputRenderer(NULL); + bbSetInputTransform(NULL); + + // Sets default radio to 1. + std::vector radio; + radio.push_back(1.0); + bbSetInputlstRadio(radio); + + // Sets default colour to red. + std::vector colour; + colour.push_back(1.0); + colour.push_back(0.0); + colour.push_back(0.0); + bbSetInputColour(colour); + + bbSetInputOpacity(1.0); + +} + +void SphereList::bbUserInitializeProcessing() +{ + +} + +void SphereList::bbUserFinalizeProcessing() +{ + +} +} +// EO namespace bbvtk + + diff --git a/packages/vtk/src/bbvtkSphereList.h b/packages/vtk/src/bbvtkSphereList.h new file mode 100644 index 0000000..ec632f3 --- /dev/null +++ b/packages/vtk/src/bbvtkSphereList.h @@ -0,0 +1,64 @@ +#ifndef __bbvtkSphereList_h_INCLUDED__ +#define __bbvtkSphereList_h_INCLUDED__ +#include "bbvtk_EXPORT.h" +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include +#include +#include +#include + + +namespace bbvtk +{ + +class bbvtk_EXPORT SphereList + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(SphereList,bbtk::AtomicBlackBox); + + BBTK_DECLARE_INPUT(Renderer ,vtkRenderer*); + BBTK_DECLARE_INPUT(lstPointX,std::vector); + BBTK_DECLARE_INPUT(lstPointY,std::vector); + BBTK_DECLARE_INPUT(lstPointZ,std::vector); + BBTK_DECLARE_INPUT(lstRadio ,std::vector); + BBTK_DECLARE_INPUT(Colour ,std::vector); + BBTK_DECLARE_INPUT(Transform ,vtkLinearTransform*); + + BBTK_DECLARE_INPUT(Opacity ,double); + + BBTK_DECLARE_OUTPUT(ActorList,std::vector); + + BBTK_PROCESS(Process); + void Process(); + + std::vector sphereActor; + std::vector sphereMapper; + std::vector vtkSphere; + +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(SphereList,bbtk::AtomicBlackBox); +BBTK_NAME("SphereList"); +BBTK_AUTHOR("InfoTeam CREATIS"); +BBTK_DESCRIPTION("Builds a sphere list actor given four vectors (X, Y, Z, radius)."); +BBTK_CATEGORY(""); +BBTK_INPUT(SphereList,Renderer,"Renderer",vtkRenderer*,""); +BBTK_INPUT(SphereList,lstPointX,"List of X coordinates. Requirement: same size as vector Y and vector Z.",std::vector,""); +BBTK_INPUT(SphereList,lstPointY,"List of Y coordinates. Requirement: same size as vector X and vector Z.",std::vector,""); +BBTK_INPUT(SphereList,lstPointZ,"List of Z coordinates. Requirement: same size as vector X and vector Y.",std::vector,""); +BBTK_INPUT(SphereList,lstRadio,"List of Radio values",std::vector,""); +BBTK_INPUT(SphereList,Colour,"Colour RGB values for the spheres",std::vector,""); +BBTK_INPUT(SphereList,Opacity,"Opacity of the spheres",double,""); +BBTK_INPUT(SphereList,Transform,"vtkTransform",vtkLinearTransform*,""); + + BBTK_OUTPUT(SphereList,ActorList,"List of the sphere actors",std::vector,""); + +BBTK_END_DESCRIBE_BLACK_BOX(SphereList); +} +// EO namespace bbvtk + +#endif // __bbvtkSphereList_h_INCLUDED__ + -- 2.45.1