VTK/Polyhedron Support: Difference between revisions

From KitwarePublic
< VTK
Jump to navigationJump to search
No edit summary
No edit summary
Line 43: Line 43:




Schedule
'''Schedule'''
* Working on core functionality which should be done by mid 2010. Completion of all work depends on funding, schedule and customer support.  
* Working on core functionality which should be done by mid 2010. Completion of all work depends on funding, schedule and customer support.  



Revision as of 16:37, 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 (and vtkUnstructuredGrid::GetCell() methods) 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 - should work once vtkCell::GetCellNeighbors() is implemented
    • Contouring - some work required
    • Clipping - serious work required
    • Search (vtkDataSet::FindCell() and FindPoint()) - should work once evaluation functions are implemented
  • 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


Schedule

  • Working on core functionality which should be done by mid 2010. Completion of all work depends on funding, schedule and customer support.


Contacts:

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