[vtkusers] Decimation problems
Frederic DANESI
frederic.danesi at dinccs.com
Tue Mar 11 11:42:55 EDT 2008
In fact, if you just need the points as an input to Delaunay3D, try this :
extern "C" _declspec(dllexport) bool delaunay3D(float tol, float alpha, bool
bound);
vtkPolyData *poly = vtkPolyData::New();
bool loadFromOff(){
bool state = false;
int n_pts,n_polys,i,j,anz = 0;
float p[3], n[3], t[2];
vtkIdType n_vertices = 0;
vtkIdType v[3];
vtkIdType vertex_id = 0;
vtkPoints *points = vtkPoints::New();
points->Allocate(100,100);
poly->Allocate(100,100);
FILE *in = fopen("c:/surface.off","r");
if(!in){
state = false;
}
else {
fscanf(in,"NOFF\n");
fscanf(in,"%d %d 0\n",&n_pts,&n_polys);
// read the points from the file
for(i=0;i<n_pts;i++)
{
fscanf(in,"%f %f %f %f %f %f %f
%f\n",&p[0],&p[1],&p[2],&n[0],&n[1],&n[2],&t[0],&t[1]);
vtkIdList *lst = vtkIdList::New();
lst->InsertNextId(points->InsertNextPoint(p));
poly->InsertNextCell(VTK_VERTEX, lst);
}
poly->SetPoints(points);
state = true;
}
return state;
}
bool delaunay3D(float tol, float alpha, bool bound){
bool state = false;
vtkDelaunay3D *del3D;
if (!loadFromOff()){
return state;
} else {
//poly->GetPolys()->Delete();
del3D = vtkDelaunay3D::New();
del3D->SetInput(poly);
del3D->Update();
// del3D->GetOutput();
writeTest();
state = true;
return state;
}
}
-------- Original-Nachricht --------
> Datum: Tue, 11 Mar 2008 15:35:08 +0100
> Von: "Frederic DANESI" <frederic.danesi at dinccs.com>
> An: "\'Stefan Huber\'" <Huber.Ste at gmx.at>
> CC: "\'vtkusers\'" <vtkusers at vtk.org>
> Betreff: RE: [vtkusers] Decimation problems
> Why did you delete your polys before calling Delaunay ?
> > > poly->GetPolys()->Delete();
>
> Be aware that Delaunay does not really work on vtkPoints included in
> the input, but on Points that are actually used by at least one cell
> in the input ...
>
> You should simply try for example :
> vtkDelaunay3D *delaunay = vtkDelaunay3D::New();
> delaunay->SetInput(poly);
> //delaunay->SetTolerance(0.01); WARNING : this is relative to the
> bounding box !!!
> //delaunay->SetAlpha(0.2);
> //delaunay->BoundingTriangulationOn();
> delaunay->Update();
>
> without further parameters, and without deleting the polys ...
> just to see if it works ...
>
> For more help, we may need more code or data example ...
> HTH
> Fred.
>
>
> > -----Message d'origine-----
> > De : vtkusers-bounces at vtk.org [mailto:vtkusers-bounces at vtk.org] De
> > la
> part
> de
> > Amy Squillacote
> > Envoyé : mardi 11 mars 2008 15:02
> > À : Stefan Huber
> > Cc : vtkusers
> > Objet : Re: [vtkusers] Decimation problems
> >
> > Please keep the discussion on the vtkusers list. I'm posting your
> > response back to the list so other people may be able to help you
> > find an answer.
> >
> > - Amy
> >
> > Stefan Huber wrote:
> > > Hi Amy,
> > >
> > > Thanks for your answer. i am sorry that i didnt give you a good
> > > enough
> > discription of the problem.
> > >
> > > But now the problem with the decimation works. I don't know why (i
> didn't do
> > changes) but it works.
> > >
> > > The problem with the delaunay is still existing.
> > > my code:
> > >
> > > poly->GetPolys()->Delete();
> > > vtkDelaunay3D *delaunay = vtkDelaunay3D::New();
> > > delaunay->SetInput(poly);
> > > delaunay->SetTolerance(0.01);
> > > delaunay->SetAlpha(0.2);
> > > delaunay->BoundingTriangulationOn();
> > > delaunay->Update();
> > >
> > > When i want to call the Dll (which contains the code) i only get
> > > an
> access
> > violation.
> > >
> > >
> > > thanks,
> > > Stefan
> > > -------- Original-Nachricht --------
> > >
> > >> Datum: Tue, 11 Mar 2008 08:00:17 -0500
> > >> Von: Amy Squillacote <ahs at cfdrc.com>
> > >> An: Stefan Huber <Huber.Ste at gmx.at>
> > >> CC: vtkusers at vtk.org
> > >> Betreff: Re: [vtkusers] Decimation problems
> > >>
> > >
> > >
> > >> Hi Stefan,
> > >>
> > >> You have not provided enough information for anyone to help. What
> > >> is
> the
> > >> problem you are seeing with the two lines of code you listed below?
> For
> > >> example, do you get an error message? If so, what message? Does
> > >> your code segfault? If so, please provide a stack trace.
> > >>
> > >> - Amy
> > >>
> > >> Stefan Huber wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> i have to call the decimationPro algorithm and a delaunay3d
> algorithm
> > >>>
> > >> but i always get problems when i run the application.
> > >>
> > >>> I have a polydata object which contains the points, normals and
> Tcoords.
> > >>>
> > >>> i always get the problem when i run following code:
> > >>> decimate->Update();
> > >>> poly= decimate->GetOutput();
> > >>>
> > >>> can somebody help me please? whats wrong?
> > >>>
> > >>> thanks, Stefan
> > >>>
> > >>>
> > >>>
> > >> --
> > >> Amy Squillacote Phone: (256) 726-4839
> > >> Computer Scientist Fax: (256) 726-4806
> > >> CFD Research Corporation Web: http://www.cfdrc.com
> > >> 215 Wynn Drive, Suite 501
> > >> Huntsville, AL 35805
> > >>
> > >>
> > >
> > >
> >
> > --
> > Amy Squillacote Phone: (256) 726-4839
> > Computer Scientist Fax: (256) 726-4806
> > CFD Research Corporation Web: http://www.cfdrc.com
> > 215 Wynn Drive, Suite 501
> > Huntsville, AL 35805
> >
> >
> > _______________________________________________
> > 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
>
--
Psst! Geheimtipp: Online Games kostenlos spielen bei den GMX Free Games!
http://games.entertainment.gmx.net/de/entertainment/games/free
_______________________________________________
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