[vtkusers] cloud of points into surfaces
Dominik Szczerba
domi at vision.ee.ethz.ch
Tue Jan 2 04:09:50 EST 2007
Alpha shapes in Delaunay3D is what I am using and am relatively
sucessful. But it's quite sensitive to the alpha parameter.
D.S.
João Figueiredo wrote:
> hello my name is João,
>
> i'm trying to tranform a cloud of points into a surface...
> my program reads coordinates from a *.txt file.
> then i´m using the delaney2d and delaney3d to transform this cloud of
> points into surface...
> but unfortunately, it is not working...
> could anyone help me please...maybe another Vtk classe??
>
> my source code:
>
> #include <stdio.h>
> #include "vtkActor.h"
> #include "vtkRenderWindow.h"
> #include "vtkRenderer.h"
> #include "vtkRenderWindowInteractor.h"
> #include "vtkUnstructuredGrid.h"
> #include "vtkFloatArray.h"
> #include "vtkPoints.h"
> #include "vtkPointData.h"
> #include "vtkDataSetMapper.h"
> #include "vtkProperty.h"
> #include "vtkPolyDataMapper.h"
> #include "vtkGaussianSplatter.h"
> #include "vtkContourFilter.h"
> #include "vtkPlaneWidget.h"
> #include "vtkCellArray.h"
> #include "vtkDelaunay2D.h"
> #include "vtkPolyDataWriter.h"
> #include "vtkShrinkFilter.h"
>
>
> int main()
> {
> float f1, f2, f3;
> FILE * pFile;
>
> pFile = fopen ("tunel_5cm.txt","r");
> rewind (pFile);
>
> int i=0;
> int numpontos=0;
> vtkPoints *pontos = vtkPoints::New();
> vtkCellArray *Vertices = vtkCellArray::New();
>
> while (fscanf (pFile, "%f,%f,%f\n", &f1, &f2, &f3)!=EOF)
> {
> /*if ((i%5)==0)
> {*/
> pontos->InsertNextPoint(f1, f2, f3);
> Vertices->InsertNextCell(1);
> Vertices->InsertCellPoint(numpontos);
> numpontos++;
> /*}
> i++;*/
> }
> fclose (pFile);
>
>
>
> vtkPolyData *polydata= vtkPolyData::New();
>
>
> polydata->SetPoints(pontos);
> polydata->SetVerts(Vertices);
>
>
>
> //delaunay
> vtkDelaunay2D *del2D = vtkDelaunay2D::New();
>
> del2D = vtkDelaunay2D::New();
> del2D->SetInput(polydata);
> del2D->SetTolerance(0.002);
> del2D->BoundingTriangulationOff();
> del2D->SetAlpha(2);
> //del2D->Update();
>
>
> vtkRenderer *renderer = vtkRenderer::New();
> vtkRenderWindow *renWin = vtkRenderWindow::New();
>
> renWin->AddRenderer(renderer);
>
>
> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
> iren->SetRenderWindow(renWin);
>
>
>
> vtkDataSetMapper *mapper = vtkDataSetMapper::New();
> mapper->SetInput(del2D->GetOutput());
>
>
> vtkActor *actor= vtkActor::New();
>
> actor->SetMapper(mapper);
>
> actor->GetProperty()->SetColor(1,0,0);
> actor->GetProperty()->SetOpacity(0.9);
> actor->GetProperty()->SetAmbient(0.5);
> actor->GetProperty()->SetDiffuse(0.3);
> actor->GetProperty()->SetSpecular(0.2);
>
>
>
> actor->SetMapper(mapper);
>
> renderer->AddActor(actor);
> renderer->SetBackground(1,1,1);
> renWin->SetSize(300,300);
>
> iren->Initialize();
>
>
> renWin->Render();
> iren->Start();
>
> return 0;
>
> }
>
> _________________________________________________________________
> MSN Messenger: converse com os seus amigos online.
> http://messenger.msn.com.br
>
> _______________________________________________
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list