Examine tessellation performance
Based on feedback about load times for large geometries in the VTK session, it might be necessary to change smtk::model::Tessellation
.
For the VTK session, there are 2 copies:
- From the
vtkDataObject
instances internal to the session tosmtk::model::Tessellation
- From
smtk::model::Tessellation
tovtkDataObject
instances in the multiblock source used for rendering.
Even for other sessions, there is still an issue even though the original tessellation may not be in VTK format. One approach would be to store a functor rather than actual points/triangles. The functor may hold on to point/triangle arrays internally in whatever format is required. Then, SMTK's multiblock source can either zero-copy the result into a VTK dataset or deep-copy it depending on what the functor provides. This also delays tessellation from the time at which the model is read to the time at which the tessellation is needed.
We had thought to eliminate smtk::model::Tessellation
and replace it with smtk::mesh
, but given the performance of MOAB for this kind of thing perhaps that is a longer term goal than SMTK 3.