X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkCreateMeshFromPoints.cxx;h=b141e0257287999a8a218992cb9262b1171750cc;hb=08782c0d31c11a62a886395873580e394b3a9dcd;hp=34c6e66fd584cf9d9dec835ad3a23b6bebcb105b;hpb=27cd1709e7cd62aa62f02df8abecdd8bea1d8767;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.cxx index 34c6e66..b141e02 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.cxx @@ -4,12 +4,7 @@ #include "bbcreaVtkCreateMeshFromPoints.h" #include "bbcreaVtkPackage.h" -#include "vtkPoints.h" #include "vtkTriangleStrip.h" -#include "vtkCellArray.h" - -#include "vtkCleanPolyData.h" - namespace bbcreaVtk { @@ -36,53 +31,44 @@ void CreateMeshFromPoints::Process() // bbSetOutputOut( bbGetInputIn() ); // std::cout << "Output value = " < lstX = bbGetInputLstX(); std::vector lstY = bbGetInputLstY(); std::vector lstZ = bbGetInputLstZ(); std::vector lstIndexs = bbGetInputLstIndexs(); - - if ( (lstIndexs.size()<=1) || (lstX.size()==0) || (lstX.size()!=lstY.size()) || (lstY.size()!=lstZ.size()) ) { printf("Warnning! CreateMeshFromPoints::Process: List of points X Y Z and LstIndexes is not correct\n"); } else { - int ii,sizeSegment1,sizeSegment2; int endSegment; - - vtkSmartPointer points = vtkSmartPointer::New(); +// vtkSmartPointer points = vtkSmartPointer::New(); + if (points!=NULL) points->Delete(); + points = vtkPoints::New(); int i,sizeLstX = lstX.size(); for (i=0;iInsertNextPoint(lstX[i],lstY[i],lstZ[i]); } // for i - - vtkSmartPointer cells = vtkSmartPointer::New(); +// vtkSmartPointer cells = vtkSmartPointer::New(); + if (cells!=NULL) cells->Delete(); + cells = vtkCellArray::New(); int maxElements; int maxSegment1,maxSegment2; int iSeg1,iSeg2; - int iGeneral = 0; int sizeLstIdexes=lstIndexs.size(); for (i=0; i triangleStrip = vtkSmartPointer::New(); triangleStrip->GetPointIds()->SetNumberOfIds(sizeSegment1+sizeSegment2); - maxElements=sizeSegment1; if (maxElementsGetPointIds()->SetId(ii*2 ,iSeg1); @@ -94,24 +80,24 @@ printf("EED CreateMeshFromPoints::Process Start\n"); } // for ii iGeneral=iGeneral+sizeSegment1; cells->InsertNextCell(triangleStrip); - } //for LstIndexs - - vtkPolyData *polydata = vtkPolyData::New(); +// vtkPolyData *polydata = vtkPolyData::New(); + if (polydata!=NULL) polydata->Delete(); + polydata = vtkPolyData::New(); polydata->SetPoints(points); polydata->SetStrips(cells); - - vtkCleanPolyData *clean=vtkCleanPolyData::New(); +// vtkCleanPolyData *clean=vtkCleanPolyData::New(); + if (clean!=NULL) clean->Delete(); + clean = vtkCleanPolyData::New(); clean->SetInputData(polydata); clean->Update(); - +// vtkTriangleFilter *triangle = vtkTriangleFilter::New(); + if (triangle!=NULL) triangle->Delete(); + triangle = vtkTriangleFilter::New(); + triangle->SetInputData( clean->GetOutput() ); + triangle->Update(); bbSetOutputOut( clean->GetOutput() ); - }// if listXYZ size - -printf("EED CreateMeshFromPoints::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) @@ -122,7 +108,11 @@ void CreateMeshFromPoints::bbUserSetDefaultValues() // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 // bbSetInputIn(0); - + points = NULL; + cells = NULL; + polydata = NULL; + clean = NULL; + triangle = NULL; } //===== // 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)