4 #include "bbmaracasvisuContourToControlPoints.h"
5 #include "bbcreaMaracasVisuPackage.h"
6 namespace bbcreaMaracasVisu
9 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ContourToControlPoints)
10 //BBTK_USER_BLACK_BOX_IMPLEMENTATION(ContourToControlPoints,bbtk::AtomicBlackBox);
11 BBTK_BLACK_BOX_IMPLEMENTATION(ContourToControlPoints,bbtk::AtomicBlackBox);
13 //------------------------------------------------------------
14 void ContourToControlPoints::Process()
16 if ( bbGetInputSampling() >= 3.0 )
21 _ext2D->SetContour( bbGetInputInContourX(),bbGetInputInContourY(),bbGetInputInContourZ() );
22 _ext2D->SetSamplingControlPoints( bbGetInputSampling() );
23 _ext2D->GetSamplingControlPoints( &OutContourX,&OutContourY,&OutContourZ );
25 if(bbGetInputSampling() == 2.0)
30 _ext2D->SetContour( bbGetInputInContourX(),bbGetInputInContourY(),bbGetInputInContourZ() );
31 _ext2D->GetControlPoints( &OutContourX,&OutContourY,&OutContourZ );
34 //Liberates the memory from the VTK's objects. Always must do that!!
35 if ( bbGetInputLoadContour()== 1 )
46 fd = fopen("C:/bbtk_JS/data/SavedContours.txt","r");
47 _propgdata->ReadKeyContour( fd );
49 _propgdata->GetKeyContours(&KeyContourX,&KeyContourY,&KeyContourZ,&KeySizes);
50 if(KeySizes.size() == 1)
53 // _imagedata = _propgdata->method_RBF(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
55 if(KeySizes.size() >= 2)
58 //_imagedata = _propgdata->method_RBF_3D(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
59 // _imagedata = _propgdata->method_RBF_3D_ThinPlate(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
62 if ( bbGetInputLoadContour()== 2 )
69 fd = fopen("C:/bbtk_JS/data/SavedManualPoints.txt","r");
70 _propgdata->ReadKeyContour( fd );
72 _propgdata->GetKeyContours(&KeyContourX,&KeyContourY,&KeyContourZ,&KeySizes);
73 if(KeySizes.size() == 1)
76 // _imagedata = _propgdata->method_RBF(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
78 if(KeySizes.size() >= 2)
81 //_imagedata = _propgdata->method_RBF_3D(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
82 // _imagedata = _propgdata->method_RBF_3D_ThinPlate(bbGetInputRadRBF(),&KeyContourX,&KeyContourY,&KeyContourZ);
86 if ( bbGetInputLoadContour()== 3 )
92 vtkImageData *itemp = vtkImageData::New();
93 _contprop->appendContour();
94 _contprop->setInterpolationNumber(300);
95 itemp = _contprop->GetKeyContours(&KeyContourX,&KeyContourY,&KeyContourZ,&KeySizes);
96 if(KeySizes.size() == 1)
99 if(KeySizes.size() >= 2)
103 _contprop->resetAppend();
104 _contprop->appendContour(&KeyContourX,&KeyContourY,&KeyContourZ);
105 //_contprop->GetContour(bbGetInputSlice(),&OutContourX,&OutContourY,&OutContourZ);
106 _contprop->GetControlPoints(bbGetInputSlice(),&OutContourX,&OutContourY,&OutContourZ);
107 printf("\n Size OutContourX = %d",(int)(OutContourX.size()));
111 bbSetOutputControlPointX( &OutContourX );
112 bbSetOutputControlPointY( &OutContourY );
113 bbSetOutputControlPointZ( &OutContourZ );
114 bbSetOutputImagePropg( _imagedata );
118 //------------------------------------------------------------
119 void ContourToControlPoints::bbUserSetDefaultValues()
121 bbSetInputSampling(5.0);
123 bbSetInputInContourX(NULL);
124 bbSetInputInContourY(NULL);
125 bbSetInputInContourZ(NULL);
126 bbSetInputRadRBF(1000.0);
128 bbSetInputLoadContour(0);
140 //-----------------------------------------------------------------
141 void ContourToControlPoints::bbUserInitializeProcessing()
143 _contprop = new ContourPropagation();
144 _propgdata = new PropContour();
145 _imagedata = vtkImageData::New();
146 _ext2D = new ExtractControlPoints2D();
149 //-----------------------------------------------------------------
150 void ContourToControlPoints::bbUserFinalizeProcessing()
152 if (_contprop!=NULL) delete _contprop;
153 if (_propgdata!=NULL) delete _propgdata;
154 if (_imagedata!=NULL) _imagedata->Delete();
155 if (_ext2D!=NULL) delete _ext2D;
163 //-----------------------------------------------------------------
168 // EO namespace bbcreaMaracasVisu