[vtk-developers] polyhedral cells
Jeff Lee
jeff at cdnorthamerica.com
Fri Feb 22 08:05:52 EST 2002
Hi All,
I am messing with the idea of what it would take to support arbitrary
convex polyhedral cells in vtk. My current thinking is as follows:
1. Create new cell type VTK_CONVEX_POINT_SET and let it be derived
from vtkCell3D.
2. The default behavior of this cell will be to use the
vtkOrderedTriangulator to break the cell into tets, and then be
able to delegate much of the interface of vtkCell to the new tets.
Things like the number of faces and edges might be answered by
passing the triangulation through a geometryfilter. Clip and
contour could also be delegated to the tets, however there are
issues with contouring because the triangulation will likely split
faces (unless they are already tri's) and cause artifacts in
isosurfacing. The artifacts could be removed by the following item.
3. Alternatively allow the face information to be passed into the
cell i.e. another vtkCellArray specifying the face polygons. This
would allow the contouring to be done on the face edges, and then
form a closed-loop (not trivial) to form the isosurface. This
would ensure that the face information is preserved and that the
isosurface extraction would be continuous across these arbitrary
cell-types and known cell-types.
4. The alternative face information could be stored with
vtkUnstructuredGrid and when GetCell is called, it can pass out
this new cell and give it the face information at that time. The
cell should store its triangulation and only change it if the
points somehow change in the dataset. There could be an
alternative pre-processing stage where the dataset forces the new
cells to triangulate and from then on the cell is accessed like
any other. The unstructured dataSet would be specified in the
same way as it is today: with a CellArray for point ids, one for
cellTypes, one for Offsets - and additionally/alternatively one
for Faces.
These are just my current thoughts. There are many issues which I
haven't addressed but I think this would be a good addition to vtk and I
welcome any comments, concerns, criticism, or ideas.
-Jeff
More information about the vtk-developers
mailing list