1 #include "bbmaracasvisuDrawAxe3D.h"
2 #include "bbcreaMaracasVisuPackage.h"
4 #include "vtkImageData.h"
7 #include "vtkCellArray.h"
8 #include "vtkProperty.h"
10 #include "vtkLinearTransform.h"
11 namespace bbcreaMaracasVisu
14 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,DrawAxe3D)
15 BBTK_BLACK_BOX_IMPLEMENTATION(DrawAxe3D,bbtk::AtomicBlackBox);
16 void DrawAxe3D::Process()
18 std::vector< double > vectx = bbGetInputlstPointX();
19 std::vector< double > vecty = bbGetInputlstPointY();
20 std::vector< double > vectz = bbGetInputlstPointZ();
22 // vtkImageData* img = bbGetInputImage();
25 // img->GetSpacing(spc);
30 if(!vectx.empty()&&!vecty.empty()&&!vectz.empty()){
31 vtkPoints* allPoints = vtkPoints::New( );
32 vtkCellArray* allTopology = vtkCellArray::New( );
33 allTopology->InsertNextCell( vectx.size() );
35 for( i = 0; i < vectx.size( ); i++) {
36 //multiplicar ver parametros spacing, en maracas cuando se toca la imagen y se ve dycom
37 //hay parametro dicom, vtkImagedata valor spacing y esos datos hay que multiplicar al polydata
38 allPoints->InsertNextPoint( vectx[i]*spc[0], vecty[i]*spc[1], vectz[i]*spc[2] );
39 allTopology->InsertCellPoint( i );
41 mallData->SetPoints( allPoints );
42 mallData->SetLines( allTopology );
44 allTopology->Delete();
47 mvtkactor->GetProperty()->SetColor( bbGetInputColour()[0],
48 bbGetInputColour()[1],
49 bbGetInputColour()[2] );
51 if ( bbGetInputTransform()!=NULL )
53 mvtkactor->SetUserTransform( bbGetInputTransform() );
57 if ((firsttime==true) && (bbGetInputRenderer()!=NULL ))
60 bbGetInputRenderer()->AddActor( mvtkactor );
64 void DrawAxe3D::bbUserSetDefaultValues()
68 polydatamapper = NULL;
71 std::vector<double> colour;
72 colour.push_back(1.0);
73 colour.push_back(0.0);
74 colour.push_back(0.0);
75 bbSetInputColour(colour);
80 //-----------------------------------------------------------------
81 void DrawAxe3D::bbUserInitializeProcessing()
83 mallData = vtkPolyData::New( );
84 polydatamapper = vtkPolyDataMapper::New();
85 mvtkactor = vtkActor::New();
87 polydatamapper->SetInput(mallData);
88 mvtkactor->SetMapper(polydatamapper);
89 bbSetOutputOut(mvtkactor);
92 //-----------------------------------------------------------------
93 void DrawAxe3D::bbUserFinalizeProcessing()
101 if (polydatamapper!=NULL)
103 polydatamapper->Delete();
114 //-----------------------------------------------------------------
117 // EO namespace bbcreaMaracasVisu