[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