[vtkusers] GenericDataSetTessellator question

Soeren Gebbert soeren.gebbert at inpro.de
Thu Mar 24 10:00:51 EST 2005


Dear developers and user,
i have a question about the integration of new nonlinear celltypes in 
vtk and the GenericDataSetTessellator.
I'm using vtk 4.5.0-cvs (28.02.2005) at a linux (Suse 9.0) dual P4.

I have implemented new nonlinear celltypes in vtk:

#define VTK_BIQUADRATIC_QUAD       28
#define VTK_TRIQUADRATIC_HEXAHEDRON 29
#define VTK_QUADRATIC_LINEAR_QUAD      30
#define VTK_QUADRATIC_LINEAR_WEDGE      31

2D:
-- a biquadratic quad --> thats a quadratic quad with a face-center 
point (9 points, 4 edges)
     o - o - o
      |          |
     o    o    o
      |          |
     o - o - o

-- a linear quadratic quad --> a quad with two linear and two quadratic 
edges (6 points, 4 edges)
     o - o - o
      |          |
      |          |
     o - o - o

3D:
-- a triquadratic hexahedron --> a quadratic hexahedron with 6 
face-center points  and 1 volume-center
      point (27 points, 6 faces (biquadratic), 12 edges (quadratic))

-- a quadratic linear wedge --> like a normal quadratic wedge, except 
the quad faces are quadratic lineare quads
     (12 points, 9 edges - 6 quadratic and 3 quadratic linear,  5 faces)

I had to modify the following files:

Filtering/VtkCellType.h
Filtering/vtkUnstructuredGrid .cxx .h
Filtering/vtkGenericCell.h .cxx
Graphics/VtkDataSetSurfaceFilter.cxx
Graphics/vtkCutter.cxx
Graphics/vtkGeometryFilter.cxx
Graphics/vtkBoxClipDataSet.cxx


The new nonlinear cells are working very well with a lot of filters 
(extract edges, contouring, surfacefilters ....), so i think i have 
implementetd them correct. (except the derivation ... ) The 
visualisation/triangulation is also ok. But i have a problem with the 
GenericDataSetTessellator.
I have used the GenericFilteringCxxTests to tessellate the new nonlinear 
celltypes. I had to modify vtkBridgeCell.cxx to add the new celltypes.

When i try to tessellate the biquadratic quad i get a triangulation 
warning and the result looks horrrible.

"Warning: In VTK/Filtering/vtkPolygon.cxx, line 562
vtkPolygon (0x887f5a0): Degenerate polygon encountered during triangulation"

with SetSubdivisionLevels(0,1) i get an output with 6 points and 4 
faces? But this cell has 9 points?

I checked the called methods of my new cell (GetEdges, 
GetParametricCoords, EvaluateLocation, InterpolationFunctions) and i 
think there are correct.

Can somebody please tell me what i did wrong or which class ore method i 
should modify to get the GenericDataSetTessellator work with the new 
celltypes.

Thanks a lot and
Best regards
Soeren Gebbert



More information about the vtkusers mailing list