1 #include "bbmaracasvisuDrawAxe3D.h"
2 #include "bbcreaMaracasVisuPackage.h"
5 #include "vtkImageData.h"
8 #include "vtkCellArray.h"
9 #include "vtkProperty.h"
12 #include "vtkLinearTransform.h"
13 namespace bbcreaMaracasVisu
17 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,DrawAxe3D)
18 BBTK_BLACK_BOX_IMPLEMENTATION(DrawAxe3D,bbtk::AtomicBlackBox);
19 void DrawAxe3D::Process()
22 std::vector< double > vectx = bbGetInputlstPointX();
23 std::vector< double > vecty = bbGetInputlstPointY();
24 std::vector< double > vectz = bbGetInputlstPointZ();
26 // vtkImageData* img = bbGetInputImage();
29 // img->GetSpacing(spc);
34 if(!vectx.empty()&&!vecty.empty()&&!vectz.empty()){
35 vtkPoints* allPoints = vtkPoints::New( );
36 vtkCellArray* allTopology = vtkCellArray::New( );
37 allTopology->InsertNextCell( vectx.size() );
39 for( i = 0; i < vectx.size( ); i++) {
40 //multiplicar ver parametros spacing, en maracas cuando se toca la imagen y se ve dycom
41 //hay parĀ·metro dycom, vtkImagedata valor spacing y esos datos hay que multiplicar al polydata
42 allPoints->InsertNextPoint( vectx[i]*spc[0], vecty[i]*spc[1], vectz[i]*spc[2] );
43 allTopology->InsertCellPoint( i );
45 mallData->SetPoints( allPoints );
46 mallData->SetLines( allTopology );
48 allTopology->Delete();
51 mvtkactor->GetProperty()->SetColor( bbGetInputColour()[0],
52 bbGetInputColour()[1],
53 bbGetInputColour()[2] );
55 if ( bbGetInputTransform()!=NULL )
57 mvtkactor->SetUserTransform( bbGetInputTransform() );
61 if ((firsttime==true) && (bbGetInputRenderer()!=NULL ))
64 bbGetInputRenderer()->AddActor( mvtkactor );
69 void DrawAxe3D::bbUserSetDefaultValues()
73 polydatamapper = NULL;
76 std::vector<double> colour;
77 colour.push_back(1.0);
78 colour.push_back(0.0);
79 colour.push_back(0.0);
80 bbSetInputColour(colour);
85 //-----------------------------------------------------------------
86 void DrawAxe3D::bbUserInitializeProcessing()
88 mallData = vtkPolyData::New( );
89 polydatamapper = vtkPolyDataMapper::New();
90 mvtkactor = vtkActor::New();
92 polydatamapper->SetInput(mallData);
93 mvtkactor->SetMapper(polydatamapper);
94 bbSetOutputOut(mvtkactor);
97 //-----------------------------------------------------------------
98 void DrawAxe3D::bbUserFinalizeProcessing()
106 if (polydatamapper!=NULL)
108 polydatamapper->Delete();
120 //-----------------------------------------------------------------
127 // EO namespace bbcreaMaracasVisu