VTK/Polyhedron Support: Difference between revisions
From KitwarePublic
< VTK
Jump to navigationJump to search
No edit summary |
m (green is better visible than yellow) |
||
Line 16: | Line 16: | ||
** vtkGenericCell (and vtkUnstructuredGrid::GetCell() methods) expanded to include vtkPolyhedron | ** vtkGenericCell (and vtkUnstructuredGrid::GetCell() methods) expanded to include vtkPolyhedron | ||
** vtkCellTypes.h has new #define VTK_POLYHEDRON | ** vtkCellTypes.h has new #define VTK_POLYHEDRON | ||
* Implement cool related interpolation functions & filters ''(note items in | * Implement cool related interpolation functions & filters ''(note items in green are complete)'' | ||
** <span style="color: | ** <span style="color:green">vtkMeanValueCoordinatesInterpolator</span> | ||
** <span style="color: | ** <span style="color:green">vtkProbePolyhedron - probe the region (interior, surface, exterior) around a polyhedral mesh for data values.</span> | ||
** <span style="color: | ** <span style="color:green">vtkDeformPointSet - use MVC to deform any vtkPointSet using control mesh</span> | ||
** <span style="color: | ** <span style="color:green">vtkExtractPolyhedralMesh - for debugging, convert 3D cells to vtkPolyhedron</span> | ||
** Would like to implement some VTK widgets to manipulate meshes | ** Would like to implement some VTK widgets to manipulate meshes | ||
*** vtkPancakeWidget (local surface deformation) | *** vtkPancakeWidget (local surface deformation) | ||
Line 31: | Line 31: | ||
** Legacy formats | ** Legacy formats | ||
* Critical filters /functionality | * Critical filters /functionality | ||
** <span style="color: | ** <span style="color:green">Geometry Filter - should work once vtkCell::GetCellNeighbors() is implemented</span> | ||
** Contouring - some work required | ** Contouring - some work required | ||
** Clipping - serious work required | ** Clipping - serious work required |
Revision as of 15:40, 23 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
- 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 (note items in green are complete)
- 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.
- Basics- polygon2d, data API and integration, Mesh2Polyhedra filter, Evaluate/Location/Position functions() in vtkPolyhedron, GetCellNeighbors(), GetFace(), GetFaceIds() (Early March)
- Core- geometry filter, IO (mid-March)
- Algorithms- (clipping, contouring) (early to mid April)
- Final tuning (mid to late April)
Contacts:
- Will Schroeder (will.schroeder at kitware.com)
- Hua Yang (hua.yang at kitware.com)