[vtkusers] tessellation with maximum edge requirement

Alex Malyushytskyy alexmalvtk at gmail.com
Mon Nov 9 23:02:35 EST 2009


I have poly data ( with only triangles) defined surface.
Such triangles define desired Geometrical approximation of the surface.
But to display scalars surface require additional tessellation, so the
maximum edge in any triangle is not higher than user specified
absolute value.

I tried to use vtkLinearSubdivisionFilter, but results are not
satisfactory due to the fact that same triangles from original set are
way far away from equilateral (relation between edges may even 1/200)
and
area of the different triangles is also very different, so I was
receiving huge number of triangles in attempt to satisfy my criteria.

To achieve the goal efficiently I need an algorithm which subdivide
some edges, but leaves some edges untouched.
Only working solution I can currently can  think about is for each triangle:

1) Check if any edge require subdivision, if not - add triangle to new
dataset, if yes:
2) Create polygon by inserting points to the triangular edges using
interpolation (according to the maximum edge criteria)
3) Tessellate polygon ( vtkDelaunay2D triangulation.)
4) repeat procedure for each newly generated triangles until all the
triangles are subdivided.

Such solution should work, requires more time to implement but it
might be extremely slow especially for large data. Also vtkDelaunay2D
is pretty sensitive.

I am looking for  faster and easier to implement approach, probably
based on subdivision only.
I thought to vtkSimpleCellTessellator , but could not find the way to
use it to achieve what I want.

Any help is appreciated.

Best regards,
   Alex



More information about the vtkusers mailing list