From 7673025235c97a2fded5c1a8190028f21bd9930a Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Thu, 28 Apr 2011 09:27:36 +0000 Subject: [PATCH 1/1] no message --- bbtk/src/bbcreaMaracasVisuTubeFilter.cxx | 205 +++++++++++++++++++++++ bbtk/src/bbcreaMaracasVisuTubeFilter.h | 84 ++++++++++ bbtk/src/bbmaracasvisuDrawAxe3D.cxx | 5 + bbtk/src/bbmaracasvisuDrawAxisTree3D.h | 20 +-- 4 files changed, 304 insertions(+), 10 deletions(-) create mode 100644 bbtk/src/bbcreaMaracasVisuTubeFilter.cxx create mode 100644 bbtk/src/bbcreaMaracasVisuTubeFilter.h diff --git a/bbtk/src/bbcreaMaracasVisuTubeFilter.cxx b/bbtk/src/bbcreaMaracasVisuTubeFilter.cxx new file mode 100644 index 0000000..2c191be --- /dev/null +++ b/bbtk/src/bbcreaMaracasVisuTubeFilter.cxx @@ -0,0 +1,205 @@ +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +#include "bbcreaMaracasVisuTubeFilter.h" +#include "bbcreaMaracasVisuPackage.h" + + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + + +namespace bbcreaMaracasVisu +{ + + MaracasTubeFilter::MaracasTubeFilter() + { + } + + void MaracasTubeFilter::SetvtkRenderer(vtkRenderer *render) + { + this->renderer = render; + } + + void MaracasTubeFilter::SetlstPoints( std::vector lstPointX , std::vector lstPointY , std::vector lstPointZ ) + { + this->lstPointX=lstPointX; + this->lstPointY=lstPointY; + this->lstPointZ=lstPointZ; + } + + void MaracasTubeFilter::SetlstRadius( std::vector lstRadius ) + { + this->lstRadius=lstRadius; + } + + + void MaracasTubeFilter::Run() + { + // Spiral tube +// double vX, vY, vZ; +// unsigned int nV = 256; // No. of vertices +// unsigned int nCyc = 5; // No. of spiral cycles +// double rT1 = 0.1, rT2 = 0.5;// Start/end tube radii +// double rS = 2; // Spiral radius +// double h = 10; // Height + unsigned int nTv = 8; // No. of surface elements for each tube vertex + + unsigned int i; + + // Create points and cells + vtkSmartPointer points = vtkSmartPointer::New(); + for(i = 0; i < lstPointX.size(); i++) + { + points->InsertPoint(i, lstPointX[i], lstPointY[i], lstPointZ[i]); + } + + vtkSmartPointer lines = + vtkSmartPointer::New(); + lines->InsertNextCell( lstPointX.size() ); + for (i = 0; i < lstPointX.size(); i++) + { + lines->InsertCellPoint(i); + } + + vtkSmartPointer polyData = + vtkSmartPointer::New(); + polyData->SetPoints(points); + polyData->SetLines(lines); + + + // Varying tube radius using sine-function + vtkSmartPointer tubeRadius = + vtkSmartPointer::New(); + tubeRadius->SetName("TubeRadius"); + tubeRadius->SetNumberOfTuples( lstRadius.size() ); + for (i=0 ;iSetTuple1(i, lstRadius[i] ); + } + polyData->GetPointData()->AddArray(tubeRadius); + polyData->GetPointData()->SetActiveScalars("TubeRadius"); + + // RBG array (could add Alpha channel too I guess...) + // Varying from blue to red + vtkSmartPointer colors = + vtkSmartPointer::New(); + colors->SetName("Colors"); + colors->SetNumberOfComponents(3); + colors->SetNumberOfTuples( lstPointX.size() ); + for (i = 0; i < lstPointX.size() ;i++) + { + colors->InsertTuple3(i, 255 , 0.0 , 0.0 ); + } + polyData->GetPointData()->AddArray(colors); + + vtkSmartPointer tube + = vtkSmartPointer::New(); + tube->SetInput(polyData); + tube->SetNumberOfSides(nTv); + tube->SetVaryRadiusToVaryRadiusByAbsoluteScalar(); + + vtkSmartPointer mapper = + vtkSmartPointer::New(); + mapper->SetInputConnection(tube->GetOutputPort()); + mapper->ScalarVisibilityOn(); + mapper->SetScalarModeToUsePointFieldData(); + mapper->SelectColorArray("Colors"); + + vtkSmartPointer actor = + vtkSmartPointer::New(); + actor->SetMapper(mapper); + + renderer->AddActor(actor); + } + + + + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,TubeFilter) +BBTK_BLACK_BOX_IMPLEMENTATION(TubeFilter,bbtk::AtomicBlackBox); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void TubeFilter::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') + + printf("EED TubeFilter::Process start \n"); + + tubefilter->SetvtkRenderer( bbGetInputRenderer() ); + tubefilter->SetlstPoints( bbGetInputlstPointX(), bbGetInputlstPointY(), bbGetInputlstPointZ() ); + tubefilter->SetlstRadius( bbGetInputlstRadio() ); + tubefilter->Run(); + bbSetOutputOutAxis( NULL ); + + printf("EED TubeFilter::Process end \n"); +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void TubeFilter::bbUserSetDefaultValues() +{ + +// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX +// Here we initialize the input 'In' to 0 +// bbSetInputIn(0); + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void TubeFilter::bbUserInitializeProcessing() +{ + +// THE INITIALIZATION METHOD BODY : +// Here does nothing +// but this is where you should allocate the internal/output pointers +// if any + + tubefilter = new MaracasTubeFilter(); + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void TubeFilter::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/bbcreaMaracasVisuTubeFilter.h b/bbtk/src/bbcreaMaracasVisuTubeFilter.h new file mode 100644 index 0000000..fe6d8d8 --- /dev/null +++ b/bbtk/src/bbcreaMaracasVisuTubeFilter.h @@ -0,0 +1,84 @@ +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +#ifndef __bbcreaMaracasVisuTubeFilter_h_INCLUDED__ +#define __bbcreaMaracasVisuTubeFilter_h_INCLUDED__ +#include "bbcreaMaracasVisu_EXPORT.h" +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include +#include +#include + +namespace bbcreaMaracasVisu +{ + + class MaracasTubeFilter + { + public: + MaracasTubeFilter(); + ~MaracasTubeFilter(); + + void SetvtkRenderer( vtkRenderer *render); + void SetlstPoints( std::vector lstPointX , std::vector lstPointY , std::vector lstPointZ ); + void SetlstRadius( std::vector lstRadius ); + void Run(); + + vtkRenderer *renderer; + + std::vector lstPointX; + std::vector lstPointY; + std::vector lstPointZ; + std::vector lstRadius; + + }; + +class bbcreaMaracasVisu_EXPORT TubeFilter + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(TubeFilter,bbtk::AtomicBlackBox); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== + 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_OUTPUT(OutAxis,vtkProp3D *); + BBTK_PROCESS(Process); + void Process(); + + MaracasTubeFilter *tubefilter; + +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(TubeFilter,bbtk::AtomicBlackBox); + BBTK_NAME("TubeFilter"); + BBTK_AUTHOR("Info-Dev"); + BBTK_DESCRIPTION("vtk Tube Filter"); + BBTK_CATEGORY("actor"); + BBTK_INPUT(TubeFilter,Renderer,"Renderer",vtkRenderer*,""); + BBTK_INPUT(TubeFilter,lstPointX,"lstPointX",std::vector,""); + BBTK_INPUT(TubeFilter,lstPointY,"lstPointY",std::vector,""); + BBTK_INPUT(TubeFilter,lstPointZ,"lstPointZ",std::vector,""); + BBTK_INPUT(TubeFilter,lstRadio,"lstRadio",std::vector,""); + BBTK_INPUT(TubeFilter,Colour,"Colour",std::vector,""); + BBTK_INPUT(TubeFilter,Transform,"vtkTransform", vtkLinearTransform *,""); + BBTK_OUTPUT(TubeFilter,OutAxis,"Tube Actor",vtkProp3D *,""); + BBTK_END_DESCRIBE_BLACK_BOX(TubeFilter); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +} +// EO namespace bbcreaMaracasVisu + +#endif // __bbcreaMaracasVisuTubeFilter_h_INCLUDED__ + diff --git a/bbtk/src/bbmaracasvisuDrawAxe3D.cxx b/bbtk/src/bbmaracasvisuDrawAxe3D.cxx index 5736969..cd9997b 100644 --- a/bbtk/src/bbmaracasvisuDrawAxe3D.cxx +++ b/bbtk/src/bbmaracasvisuDrawAxe3D.cxx @@ -15,6 +15,8 @@ BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,DrawAxe3D) BBTK_BLACK_BOX_IMPLEMENTATION(DrawAxe3D,bbtk::AtomicBlackBox); void DrawAxe3D::Process() { + printf("EED DrawAxe3D::Process start \n"); + std::vector< double > vectx = bbGetInputlstPointX(); std::vector< double > vecty = bbGetInputlstPointY(); std::vector< double > vectz = bbGetInputlstPointZ(); @@ -59,6 +61,9 @@ void DrawAxe3D::Process() firsttime=false; bbGetInputRenderer()->AddActor( mvtkactor ); } + + printf("EED DrawAxe3D::Process end \n"); + } void DrawAxe3D::bbUserSetDefaultValues() diff --git a/bbtk/src/bbmaracasvisuDrawAxisTree3D.h b/bbtk/src/bbmaracasvisuDrawAxisTree3D.h index 01a0f75..8dca163 100644 --- a/bbtk/src/bbmaracasvisuDrawAxisTree3D.h +++ b/bbtk/src/bbmaracasvisuDrawAxisTree3D.h @@ -48,16 +48,16 @@ BBTK_NAME("DrawAxisTree3D"); BBTK_AUTHOR("InfoTeam CREATIS-LRMN"); BBTK_DESCRIPTION("Draw Axis Tree 3D"); BBTK_CATEGORY("actor"); -BBTK_INPUT(DrawAxisTree3D,Renderer,"Renderer",vtkRenderer*,""); -BBTK_INPUT(DrawAxisTree3D,lstIndexs,"Indexs",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,lstPointX,"lstPointX",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,lstPointY,"lstPointY",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,lstPointZ,"lstPointZ",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,lstRadio,"lstRadio",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,Colour,"Colour",std::vector,""); -BBTK_INPUT(DrawAxisTree3D,Transform,"vtkTransform", vtkLinearTransform *,""); -BBTK_INPUT(DrawAxisTree3D,iAxis,"iAxis",int,""); -BBTK_OUTPUT(DrawAxisTree3D,OutAxis,"Axis[iAxis]",vtkProp3D *,""); + BBTK_INPUT(DrawAxisTree3D,Renderer,"Renderer",vtkRenderer*,""); + BBTK_INPUT(DrawAxisTree3D,lstIndexs,"Indexs",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,lstPointX,"lstPointX",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,lstPointY,"lstPointY",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,lstPointZ,"lstPointZ",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,lstRadio,"lstRadio",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,Colour,"Colour",std::vector,""); + BBTK_INPUT(DrawAxisTree3D,Transform,"vtkTransform", vtkLinearTransform *,""); + BBTK_INPUT(DrawAxisTree3D,iAxis,"iAxis",int,""); + BBTK_OUTPUT(DrawAxisTree3D,OutAxis,"Axis[iAxis]",vtkProp3D *,""); BBTK_END_DESCRIBE_BLACK_BOX(DrawAxisTree3D); } // EO namespace bbcreaMaracasVisu -- 2.45.2