Difference between revisions of "VTK/Polyhedron Support"

From KitwarePublic
< VTK
Jump to navigationJump to search
Line 11: Line 11:
** Triangle meshes ([http://www.cs.wustl.edu/~taoju/research/meanvalue.pdf paper] by Tao Ju et al.)
** Triangle meshes ([http://www.cs.wustl.edu/~taoju/research/meanvalue.pdf paper] by Tao Ju et al.)
** Arbitrary polyhedron ([https://domino.mpi-inf.mpg.de/intranet/ag4/ag4publ.nsf/AuthorEditorIndividualView/9144c5ff262d3f9cc12571be00348ddf/$FILE/paper.pdf?OpenElement paper] by Torsten Langer et al.)
** Arbitrary polyhedron ([https://domino.mpi-inf.mpg.de/intranet/ag4/ag4publ.nsf/AuthorEditorIndividualView/9144c5ff262d3f9cc12571be00348ddf/$FILE/paper.pdf?OpenElement paper] by Torsten Langer et al.)
* Implement interpolation functions & filters
** vtkMeanValueCoordinatesInterpolator
** vtkProbePolyhedron
** vtkDeformPointSet
* Polyhedron cell support
* Polyhedron cell support
** vtkPolyhedron - more complex cell in that it requires explicit face representation
** vtkPolyhedron - more complex cell in that it requires explicit face representation
** vtkUnstructuredGrid - modified to support polyhedron cell, new InsertNextCell() and related methods
** vtkUnstructuredGrid - modified to support polyhedron cell, new InsertNextCell() and related methods (e.g., GetFace()).
** vtkGenericCell expanded to include vtkPolyhedron
** vtkGenericCell expanded to include vtkPolyhedron
** vtkCellTypes.h has new #define VTK_POLYHEDRON
** vtkCellTypes.h has new #define VTK_POLYHEDRON
* Implement cool related interpolation functions & filters
** vtkMeanValueCoordinatesInterpolator
** vtkProbePolyhedron - probe the region (interior, surface, exterior) around a polyhedral mesh for data values.
** vtkDeformPointSet - use MVC to deform any vtkPointSet using control mesh
** vtkExtractPolyhedralMesh - for debugging, convert 3D cells to vtkPolyhedron
** Would like to implement some VTK widgets to manipulate meshes
*** vtkPancakeWidget (local surface deformation)
*** vtkControlMeshWidget (for global deformation of geometry)




Line 30: Line 34:
** Contouring
** Contouring
** Clipping
** Clipping
** Search (vtkDataSet::FindCell and FindPoint)
** Search (vtkDataSet::FindCell() and FindPoint())
* Impact on previous code
* Impact on previous code
** Previous vtkClipDataSet can now produce polyhedron as output
** Previous vtkClipDataSet can now produce polyhedron as output, is this desirable?




'''Auxiliary Tasks'''
'''Auxiliary Tasks'''
* vtkPolygon basis functions: replace 1/r^2 with the MVC 2D equivalent
* vtkPolygon basis functions: replace silly 1/r^2 with the MVC 2D equivalent





Revision as of 11:33, 18 February 2010

Goals:

  • Add support for arbitrary polyhedral cell (manifold, watertight, may be concave)
  • Develop smooth interpolation functions for polyhedron
  • Create filters, examples and testing infrastructure supporting this technology
  • Application goal: support CFD solvers (finite volume methods for computational fluid dynamics and similar)


Summary of Implementation Plan:

  • Identify interpolation functions
    • Mean Value Coordinates
    • Triangle meshes (paper by Tao Ju et al.)
    • Arbitrary polyhedron (paper by Torsten Langer et al.)
  • Polyhedron cell support
    • vtkPolyhedron - more complex cell in that it requires explicit face representation
    • vtkUnstructuredGrid - modified to support polyhedron cell, new InsertNextCell() and related methods (e.g., GetFace()).
    • vtkGenericCell expanded to include vtkPolyhedron
    • vtkCellTypes.h has new #define VTK_POLYHEDRON
  • Implement cool related interpolation functions & filters
    • vtkMeanValueCoordinatesInterpolator
    • vtkProbePolyhedron - probe the region (interior, surface, exterior) around a polyhedral mesh for data values.
    • vtkDeformPointSet - use MVC to deform any vtkPointSet using control mesh
    • vtkExtractPolyhedralMesh - for debugging, convert 3D cells to vtkPolyhedron
    • Would like to implement some VTK widgets to manipulate meshes
      • vtkPancakeWidget (local surface deformation)
      • vtkControlMeshWidget (for global deformation of geometry)


Implementation Issues:

  • VTK File formats and IO
    • XML formats
    • Legacy formats
  • Critical filters /functionality
    • Geometry Filter
    • Contouring
    • Clipping
    • Search (vtkDataSet::FindCell() and FindPoint())
  • Impact on previous code
    • Previous vtkClipDataSet can now produce polyhedron as output, is this desirable?


Auxiliary Tasks

  • vtkPolygon basis functions: replace silly 1/r^2 with the MVC 2D equivalent


Contacts:

  • Will Schroeder (will.schroeder at kitware.com)
  • Hua Yang (hua.yang at kitware.com)