[vtkusers] Proving a surface mesh of closeness

pam papereyra at gmail.com
Fri Oct 3 15:04:31 EDT 2008


Hi, I 'm Pamela and I was trying to get the boundary cells, i found a
solution to my problem that maybe could help you.

I finally used vtkUnstructuredGridGeometryFilter because
vtkFeaturedFilter only works with structured data like vtkPolyData.
Here is the code and how to go through the cells.

vtkUnstructuredGridGeometryFilter*
filter=vtkUnstructuredGridGeometryFilter::New();
   filter->SetInputConnection(delny->GetOutputPort());
   filter->Update();
  cout<<"filtro"<<endl;
   nroceldas=filter->GetOutput()->GetNumberOfCells();
  for(t=0;t<nroceldas;t++)
  {   celda=filter->GetOutput()->GetCell(t);
	   list=celda->GetPointIds();
	   points=celda->GetPoints();
	   ids=list->GetNumberOfIds();
	   cout<<"celda "<<t<<endl;
	   cout<<"numero de faces "<<celda->GetNumberOfFaces()<<endl;
	   cout<<"numero de edges "<<celda->GetNumberOfEdges()<<endl;
	   for(k=0;k<ids;k++)
	   {	
	          points->GetPoint(k,punto);
			  int verticeid= delny->GetOurput()->FindPoint(punto); //I do this
because this filter change the original id
			  cout <<"vertice id numero " << verticeid <<endl ;
			  cout<<" x "<<punto[0]<<" y "<<punto[1]<<" z "<<punto[2]<<endl;
	   }
   }


Hope it helps!

Pamela

2008/10/3 Michael Jackson <mike.jackson at bluequartz.net>:
> T=2V-4
>
> Where T is the number of triagles and V is the number of vertices. Something
> about Euler's Polyhedra equation...
>
>
> Mike
>
> On Oct 3, 2008, at 1:14 PM, Marie-Gabrielle Vallet wrote:
>
>>
>> I think there is a easier way of checking the surface closeness. I mean
>> using vtk facilities, instead of writing a (yet another) new algorithm.
>>
>> VTK library has algorithms to extract a mesh boundary, i.e. the set of
>> faces (in 3D) or edges (in 2D) that are not shared by two cells. See
>> vtkFeatureEdges. The mesh is close if and only if this set is empty. If it
>> not, you can visualize the holes that must still be closed.
>>
>> Pamela is trying to do the same thing today. Have a look at the thread
>> "get boundary triangles from a mesh" on this mailing list.
>>
>> By the way, Charles, are you sure you are not re-inventing the wheel ?
>>
>> Marie-Gabrielle
>>
>> >  Date: Fri, 3 Oct 2008 08:17:31 +0200
>> >  From: Dominik Szczerba <dominik at itis.ethz.ch>
>> >  Subject: Re: [vtkusers] Proving a surface mesh of closeness
>> >  To: vtkusers at vtk.org
>> >  Message-ID: <200810030817.31796.dominik at itis.ethz.ch>
>> >  Content-Type: text/plain;  charset="utf-8"
>> >
>> >  If it is manifold then pick the 1st element and make sure each one it
>> > has the
>> >  proper number of neighbors (for triangles: 3). Mark the element as
>> > 'visited'
>> >  and visit all his neighbors, repeating the procedure. At the end, if
>> > number
>> >  of visited elements equals to number of elements in the mesh and all
>> > have
>> >  their expected neighbors the mesh is closed.
>> >
>> >  DS
>> >
>> >  On Friday 03 October 2008 02:48:59 am Charles Monty Burns wrote:
>> >  > Hello,
>> >  >
>> >  > I repaired a surface mesh and want to prove whether the mesh is
>> > totally
>> >  > closed or not. Save is save ...
>> >  >
>> >  > How can I do this?
>> >  >
>> >  > Greetings
>> >
>> >
>> >
>> >  --
>> >  Dominik Szczerba, Ph.D.
>> >  Computational Physics Group
>> >  Foundation for Research on Information Technologies in Society
>> >  http://www.itis.ethz.ch
>> _______________________________________________
>> 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
>
> _______________________________________________
> 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